Closed Tscherno closed 4 years ago
Issue-Label Bot is automatically applying the label feature_request
to this issue, with a confidence of 0.90. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!
Links: app homepage, dashboard and code for this bot.
Da ich kein hassio verwende müsste dieser Beitrag aus der Community kommen. Welchen Wert würde dieses Addon bringen, außer dass das UI integriert wäre?
OK, war erstmal nur als Ideensammlung gedacht. Ich schaue mir das Thema an. Wie funktioniert dein Dockerimage? Zieht sich das automatisch das aktuellste Release von Github?
Ein Dockerimage ist ein Release. Ein neues ziehen musst Du selber. Aber im Ernst: was ist der Nutzen eines Hassio Dockers? Ich habs nicht rausgefunden 😳
Spannend- die ganzen Infrastrukturthemen sind gute Argumente. Die Zielgruppe- EV Nutzer die evcc einsetzen und dann auch noch HA haben dürfte sehr klein sein :O. Der Aufwand allerdings auch- anscheinend braucht es nicht mehr als eine config.json
. Falls Du dafür einen Vorschlag machen möchtest könnte ich Dir helfen wir ein entsprechendes Docker Image gebaut werden könnte. Wenns fertig ist und funktioniert können wir das gerne hier integrieren.
Die Zielgruppe- EV Nutzer die evcc einsetzen und dann auch noch HA haben dürfte sehr klein sein
Anders rum wird ein Schuh draus: Es gibt sehr viele HA Nutzer die auch EV haben und evcc gar nicht kennen. Ich bin auch nur zufällig über das tolle Projekt gestolpert.
Ich schaue auf jeden Fall mal, wie weit ich komme. Ich habe schon ein paar Container gebaut, aber noch nie spezifisch für HA.
Ich denke der Knackpunkt für die eigentliche Veröffentlichung ist dann die (fehlende) Mehrsprachigkeit des Frontend. Oder habe ich da was übersehen?
@Tscherno wie startest Du das eigentlich? Mir fehlt das "Supervisor" control unten wenn ich homeassistant/home-assistant
auf dem Mac launche?
Das geht nur wenn Du Hass.io verwendest. Das ist ein fertiges OS mit Supervisor, der eben die Addons verwaltet. Bei mir läuft das virtualisiert auf der Synology. Ursprünglich war es als fertiges Raspberry-Image gedacht.
Mittlerweile heisst HASS.io auch nur noch Home Assistant und ist die bevorzugte Variante.
Home Assistant vs. Home Assistant Core
Home Assistant Core is a Python program, in simple words. It can be run on various operating systems and provide the ability to track, control and automate your devices. When people talking about Home Assistant Core they usually refer to a standalone installation method.
Home Assistant is a combination of Home Assistant Core and tools which allows one to run it easily on a Raspberry Pi and other platforms without setting up an operating system first. Home Assistant is an all-in one-solution and has a management user interface that can be used from the Home Assistant frontend. This interface is not present in a Home Assistant Core setup.
Be aware that add-ons are only available in regular Home Assistant installations.
Wie installierst Du denn das virtualisierte Hass.io? Ich kann dazu nix finden, es sei denn für Ubuntu. Scheint jedenfalls ein tieferer Eingriff zu werden den ich mir nicht antun möchte.
https://www.home-assistant.io/hassio/installation/
bei Virtual Appliance gibt's fertige Disk-Images.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
@Tscherno Arbeitest du noch an dem Home Assistant Addon? Ich habe Home Assistant bereits am laufen (auf einem Raspi 4b) und würde gegebenenfalls noch etwas abwarten, wenn ich mir dafür eine separate EVCC Installation ersparen kann.
Moin @henning89 kannst du mal versuchen ob du das addon in hass.io mit diesem Custom Repository https://github.com/cathiele/evcc installieren kannst? ich habe das gerade mal versucht aber mein test hass.io ist nur ein alter RPI und der hat nicht genug Speicher um evcc zu bauen. dein Raspi 4b sollte das aber hinbekommen
@cathiele ich hab mir Deinen Fork angeschaut- damit ginge ja nicht mehr als das UI aufzurufen. Ich hatte irgendwie die Hoffnung, dass sich mit Integration mehr erreichen ließe, z.B. dass auch /api direkt in hassio einbindbar wäre. Gibt die Integration das prinzipiell her?
Das UI in Home Assistant aufzurufen ist genau der Sinn dieser Integrationsmöglichkeit. Damit kann man nämlich die Sicherheit der Home-Assistant-Anmeldung für den Aufruf von unterwegs nutzen. Für eine Funktionsintegration könnte man eine Custom Integration so ähnlich wie diese hier https://www.home-assistant.io/integrations/ bauen.
Hallo @cathiele ich hab es eben versucht. Leider ist er relativ lange (3-4min) mit der Installation beschäftigt und bricht dann mit folgender Fehlermeldung ab:
„Failed to install addon The command '/bin/sh -c AUDI_HASH_SECRET={{ env "AUDI_HASH_SECRET" }} make build' returned a non-zero code: 127“
Mein Raspi 4b hat allerdings nur 2GB und keine 4GB RAM, könnte hier ein Problem liegen?
@henning89 danke für den test. dann schaue ich erstmal weiter
@cathiele ich hab mir Deinen Fork angeschaut- damit ginge ja nicht mehr als das UI aufzurufen. Ich hatte irgendwie die Hoffnung, dass sich mit Integration mehr erreichen ließe, z.B. dass auch /api direkt in hassio einbindbar wäre. Gibt die Integration das prinzipiell her?
Wie @Caibuk sagt, ist die UI-Integration der Sinn eines Addons. Wenn wir das im sinne einer "integration" in Home Assistant haben wollen, dann kann ich es so wie meine go-eCharger integration bauen, aber was wäre denn der Mehrwert evcc aus Home Assistant heraus steuern zu können?
Der Hashkram war mein Fehler. Ich habe git 2 commits zurück gesetzt und gehoben. Sorry für die Verwirrung.
Ich setze in HA mit einigen Logiken die Lademodi in Abhängigkeit von "dies und das". Durch die Webservices von evcc ist das sehr einfach zu integrieren. Eine custom integration würde es "nur" noch einfacher machen.
An sowas hatte ich gedacht. Den Nutzen des Logins hatte ich bisher nicht gesehen, dafür nutze ich Traefik Forward Auth in Docker, allerdings nicht ganz trivial...
Ich denke in der Version von @cathiele fehlen die weiteren Ports aus dem Dockerfile- TCP wie UDP- damit z.B. auch die SHM Integration von außen funzt. Ich vermute, dass hass dann entsprechende Portregeln für Docker aufsetzt?
@henning89 bitte einmal mit dem Repo https://github.com/cathiele/hassio-addons testen.
Die Konfiguration muss unter /config/evcc.yaml in der hass.io installation liegen (z.B. mit dem "File editor" Addon zu bearbeiten).
Wenn beim ersten Start keine Datei gefunden wird, wird eine einfache default-config dort hinkopiert.
die von hass.io vorgesehene Konfiguration über den entsprechenden Tab bei den Addons geht leider nicht, da dort nur zwei ebenen der Verschachtelungstiefe möglich sind und es eine json und keine yaml Datei sein muss.
Json geht auch- evcc sollte das Format egal sein ;)
Json geht auch- evcc sollte das Format egal sein ;)
ok das ist schonmal gut 👍 Aber es ist leider weiter mehr als zwei Ebenen tief verschachtelt.
Servus,
danke an @cathiele für die Mühe :) Bei mir war das Thema leider eingeschlafen, aber die Updates hier im Thread haben mich wieder geweckt. Ich habe es eben ausprobiert. Der Ansatz mit der ausgelagerten Config ist auf jeden Fall sinnvoll. Ich habe mir damals auch den Kopf zerbrochen wie man die dynamische Config von evcc in HA config abbilden kann - IMO gar nicht sinnvoll. Da würde ich nur sowas wie logging reinnehmen.
Nach der Installation und Ablage von vorhandener config sieht alles erstmal gut aus im Log:
[core ] INFO 2020/10/27 08:09:11 site config:
[core ] INFO 2020/10/27 08:09:11 grid ✓
[core ] INFO 2020/10/27 08:09:11 pv ✓
[core ] INFO 2020/10/27 08:09:11 battery ✓
[core ] INFO 2020/10/27 08:09:11 grid meter config:
[core ] INFO 2020/10/27 08:09:11 power ✓
[core ] INFO 2020/10/27 08:09:11 energy ✓
[core ] INFO 2020/10/27 08:09:11 currents —
[lp-1 ] INFO 2020/10/27 08:09:11 loadpoint 1 config:
[lp-1 ] INFO 2020/10/27 08:09:11 vehicle ✓
[lp-1 ] INFO 2020/10/27 08:09:11 charge ✓
[lp-1 ] INFO 2020/10/27 08:09:11 charge meter config:
[core ] INFO 2020/10/27 08:09:11 power ✓
[core ] INFO 2020/10/27 08:09:11 energy —
[core ] INFO 2020/10/27 08:09:11 currents ✓
[lp-1 ] INFO 2020/10/27 08:09:11 charger config:
[lp-1 ] INFO 2020/10/27 08:09:11 power ✓
[lp-1 ] INFO 2020/10/27 08:09:11 energy —
[lp-1 ] INFO 2020/10/27 08:09:11 currents ✓
[lp-1 ] INFO 2020/10/27 08:09:11 timer —
[core ] DEBUG 2020/10/27 08:09:11 ----
[core ] DEBUG 2020/10/27 08:09:12 pv power: 223W
[core ] DEBUG 2020/10/27 08:09:12 grid power: 910W
[core ] DEBUG 2020/10/27 08:09:13 battery power: -157W
[core ] DEBUG 2020/10/27 08:09:13 site power: 753W
[lp-1 ] DEBUG 2020/10/27 08:09:13 charge power: 0W
[lp-1 ] DEBUG 2020/10/27 08:09:16 vehicle soc: 34%
[lp-1 ] DEBUG 2020/10/27 08:09:16 charger status: B
[lp-1 ] DEBUG 2020/10/27 08:09:16 max charge current: 0A = 0A + -2A (753W @ 3p)
[lp-1 ] DEBUG 2020/10/27 08:09:16 target charge current: 0A
Leider klappt der Zugriff dann nicht. Beim Aufruf über HA bekommt man: "Request failed with status code 401" und "server unavailable". Die Oberfläche ist dann ziemlich leer. Bei Konfiguraiton ist auch nichts sichtbar.
Der fehlschlagende Aufruf ist GET | http://hass.fritz.box:8123/api/config
Ich bekomme die gleichen Fehlermeldungen wie @Tscherno
Durch das ingress mapping von hass wird evcc mit der Url (bei meinem TestPi):
http://homeassistant.fritz.box:8123/api/hassio_ingress/fkcZnkj5OdOzGmQi0sviYfRSnDxp3OyzwXqgnp6Qtow
aufgerufen. Hieran schließt sich dann die relative evcc url für die API-Zugriffe an, also z.B. für health:
evcc greift aber mit absolutem Pfad per axios auf die api zu. Somit kommt dann am hass-Server das hier an:
http://homeassistant.fritz.box:8123/api/health
@andig kannst du die API-Aufrufe in evcc relativ zu dem Pfad unter dem evcc erreichbar ist durchführen?
An der Stelle müsste das dann angepasst werden:
axios.defaults.baseURL = loc.protocol + "//" + loc.hostname + (loc.port ? ":" + loc.port : "") + "/api";
Das Problem ist aus dem Weg, siehe https://github.com/andig/evcc/commit/e52f68798874669458186176feb4f73e2aa5a1a2. Bin aber nicht sicher, ob das mit dem Websocket auch klappt, käme auf einen Test an. Vmtl. abhängig davon, wie Hassio das durch routet.
@henning89 @Tscherno bitte nochmal testen.
@cathiele Ich bekomme leider immer die Fehlermeldung "502 bad gateway", sowohl mit der default evcc.yaml als auch mit meiner customized Variante. Ich greife per https auf Home Assistant zu, ist das möglicherweise ein Problem?
Ich mit http ging es bei mir. Dann richte ich auf dem Test Raspberry https zum testen ein.
Vielleicht hab ich auch die URL falsch zusammengebastelt?
uri: https://xyz.duckdns.org:8123/hassio/ingress/08a511dd_evcc # uri for ui
xyz ist in Wirklichkeit meine Duckdns Url, auf diese läuft das https Zertifikat.
Sinnvoll wäre mal die Sachen einzeln zu testen. Ohne duckdns, ohne Zertifikat...
duckdns und externen Zugriff von außen habe ich nicht, daher kann ich das nicht testen. @henning89 Kannst du mal die genaue Fehlermeldung senden?
achso: und was ist das für eine URI-Konfiguration? bei mir steht in der evcc.yaml das hier so wie in der Beispielkonfig:
uri: 0.0.0.0:7070 # uri for ui
Ich hab nochmal die default evcc.yaml geladen und das addon neu installiert. Leider stoppt das addon ein paar Sekunden nach dem Start.
Im Log steht: starting evcc --config /config/evcc.yaml [main ] FATAL 2020/10/31 00:04:42 cannot create renault vehicle: missing personID
Ich habe leider noch kein Elektroauto (kommt in einer Woche), kann daher keine richtige Konfiguration für ein Fahrzeug hinterlegen.
Wenn ich direkt nach dem Start (bevor es wieder stoppt) das UI öffne, dann kommt nur die Meldung "502: bad gateway".
versuche mal diese Datei:
https://github.com/cathiele/hassio-addons/blob/master/evcc/evcc.dist.yaml
Nimm das Auto einfach raus...
Update auf neuestes Addon hat bei mir nicht funktioniert: "404 Client Error: Not Found ("No such image: 08a511dd/amd64-addon-evcc:latest")"
Deinstallieren und Neuinstallieren hingegen hat funktioniert.
Mit der aktuellen Version läuft es für mich perfekt. Sowohl lokal ohne HTTPS als auch über HA-Cloud-Reverse-Proxy und die App klappt es wie es soll.
Danke für die Mühe!
Jetzt läuft es auch bei mir, hatte noch einen Fehler in meiner evcc.yaml. Vielen Dank für die Integration @cathiele !
@andig jetzt wo das addon funktioniert bleibt die Frage wo wir das dauerhaft hinterlegen. Der Punkt ist, dass bei einem evcc-Update auch die Version in dem addon hochgezogen werden muss. Aktuell geht es einfach auf latest. Daher denke ich, dass es wohl besser ist das aus meinem Report in dein Repo zu verschieben und in Deinen Releaseprozess zu integrieren. Was denkst du?
Wenn die Versionsnummer im config.json hochgezogen würde, würde auch die Autoupdate-Funktion vom HA-Supervisor funktionieren.
Es sieht jetzt übrigens so aus:
Das Icon im Menü gibt es leider in der HA Version nicht. Ich ändere es gerade auf mdi:ev-station passt eh besser.
Ansonsten würde ich gerne den Config-File Pfad als Konfigurationsoption hinterlegen. Damit ist erstens klar wo es standardmäßig liegen muss und zweitens kann man leicht zwischen mehreren Configs wechseln.
config path ist eine gute Idee. Baue ich ein. Und dann auch gleich loglevel
Ich habe es mal versucht einzubauen. Ich kann es leider nicht von meinem Fork aus testen. Den nimmt HA warum auch immer nicht als gültiges Repository. Ich kann dir einen Pull-Request schicken, dann könnte man es ausprobieren.
https://github.com/Tscherno/hassio-addons/blob/master/evcc/config.json https://github.com/Tscherno/hassio-addons/blob/master/evcc/scripts/run.sh
Kannst gerne einen PR machen. In config.json ist aber bei dir options doppelt drin und Schema sollte dann auch definiert werden.
@cathiele Das Startupscript scheint nicht richtig zu funktionieren. Komischerweise werden nicht mal die beiden Echos am Anfang geloggt. Es steht nur "standard_init_linux.go:211: exec user process caused "no such file or directory"" drin.
Ich denke es liegt an bashio. Das Image hat das vermutlich nicht drin, korrekt? Eventuell gibt es auch eine andere Möglichkeit an die Konfigurationswerte zu kommen?
Home-Assistant (genau genomme Hass.io) bietet die Möglichkeit Addons ins Frontend zu integrieren und vollständig über HA zu verwalten. Dazu müssen die Applikationen als speziell angepasste Dockercontainer bereitgestellt werden. Es wäre genial, wenn das für evcc klappen würde.
Beispiel für Grafana: https://github.com/hassio-addons/addon-grafana/