Modul für Steuerung einer Go-ECharger Wallbox [= go-e oder go-echarger]

Begonnen von LR66, 16 April 2020, 19:50:12

Vorheriges Thema - Nächstes Thema

LR66

Anmerkung: Den go-ECharger kann man auch über MQTT oder HTTPMOD einbinden, siehe Thread https://forum.fhem.de/index.php?action=post;topic=105457.30;last_msg=1043399 !

Modul 46_GoECharger.pm    (siehe https://github.com/LuRhe/fhem-46_GoECharger)

zur Steuerung wichtiger Funktionen und zum Auslesen der go-eCharger Home+ 11kW / Home+ 22kW / Homefix 11kW / Homefix 22kW in FHEM
(E-Auto Ladestationen bzw. Wallboxen der Firma go-e® GmbH).

Es lassen sich alle API-Werte auslesen (default nur die m.E. wichtigsten) und wesentliche Funktionen in der Box zum Setzen des Ladestromes, zum Aktivieren, zur Kabelverriegelung, zur Mengenladung, zu preisgesteuerter Naturstromladung (Anbieter aWattar ), PV-Überschussladung u.v.m. steuern.
Die Funktionen sind ähnlich der App, dienen aber der Anbindung an Fhem, um im Zsh. mit anderen Geräten und Sensoren noch mehr Möglichkeiten zur Automatisierung (und zum Loggen) zu haben.
Mit Fhem ist dann quasi alles möglich... vor allem eine Anpassung der Ladeleistung an einen PV-Überschuss, die Berücksichtung der Hauslast, Berücksichtigung von Speicher- oder Auto-Ladestand, zeitgesteuerte Aktivierung, Lastmanagement...
Es wird empfohlen, die jeweils aktuelle go-eCharger Firmware einzusetzen.
Auf der Webseite von go-e.co findet man die Bedienungsanleitung zur Wallbox und die Http-API-Beschreibung (die in der Hilfe des Moduls weitgehend beschrieben ist). Der go-E kann nur drei- ODER einphasig an das Stromnetz angeschalten werden (Aussage go-e), vor Änderung der Phasenzahl sollte ein Ladevorgang beendet und die Box stromlos gemacht werden.
Seit Modulversion 0.1.8 wird für amp_current ein neues payload command verwendet - es wurde von go-E zum Schonen des Flash-Speichers eingeführt (s.a. Hilfe zum Modul).


Installation und Update:
Die Box sollte bereits im gleichen LAN eingebunden sein und Verbindung zu Fhem haben.

Entweder manueller Download aus github https://github.com/LuRhe/fhem-46_GoECharger mit Kopieren in FHEM-Ordner oder besser
über Kommandozeilenbefehl mit Hinzufügen zum Update-Repository:
update add https://raw.githubusercontent.com/LuRhe/fhem-46_GoECharger/main/controls_46_GoECharger.txt

dann FHEM update:
update

und Neustart:
shutdown restart

Device anlegen:
define myGoE GoECharger 192.168.1.34

... und sichern mit save nicht vergessen.

Viele Grüße,
Lutz
Anhänge:
- Screenshot eines goECharger-Devices



EDIT 14.05.2021: Version 0.2.2
- "set <device> restart" für gezielten Neustart eingefügt
EDIT 03.02.2021: Version 0.2.1 und Überführung nach github
- Korrekturwert für gemessene Leistung als Attribut möglich (Meßwert ist aufgrund der IC's des goE meist niedriger als real),
- Hilfe und Code für Attribut used_api_keys korrigiert (nun default, minimal, all);
- devStateIcon geändert auf ev_car_charger.svg (Download s. github);
- diverse Attribute vorbelegt,




CoolTux

Ich kann mir das die Tage gerne mal anschauen.
Welches Modul hast Du als Basis genommen?


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

LR66

Hi Cooltux,
hab ja gehofft, dass Du das ggf. auch adoptierst ;)
Basis war Dein TeslaPowerwallAC-Modul - wegen der JSON-Auswertung und NonBlocking Http...
und weil es überschaubar und gut strukturiert ist (aber mit einer Unmenge Readings, die ja per JSON zwangsläufig so rüberkommen).
Viele Grüße,
Lutz

CoolTux

Ich schaue die Tage erstmal. Wenn brauchen wir wenigsten 5 User die das ein paar Tage testen.
Aber ein Schritt nach dem anderen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Hallo Lutz,

Ich habe mir Dein Modul angeschaut und eine Frage.
Möchtest Du mehr über FHEM Modulentwicklung wissen oder reicht es Dir wenn dieses eine Modul für Dich so funktioniert wie es funktioniert.


Grüße
Marko
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

LR66

Das Modul ist hoffentlich nicht nur für mich nützlich, sondern auch für andere. Wenn es über die Distro/Update mitkommt, ist die Installation für viele einfacher.
Ansonsten würde ich natürlich gern tiefer einsteigen, weil ich noch paar offene bessere Lösungen anstelle HttpMod suche (Fronius PV, Tesla). Hab auch noch ein altes Modul für Wärmepumpe, was mit Blocking arbeitet. Leider ist es so, dass ich zu selten was mache und oft wieder von vorn reindenken muß, Fhem intern zu verstehen und Perl zu lernen. Soll ich in der Developer-Ecke mal ein Thread zu der Modul-Progr. aufmachen?
Ansonsten würde ich schauen, wo Du was schicker machst: sicher die Set-Funktion und Def/Attr.
Danke, Lutz

CoolTux

Also eigentlich habe ich nicht die Zeit da was zu machen. Deswegen habe ich Dich gefragt ob Du Interesse hast tiefter in FHEM Modulentwicklung ein zu steigen. Dann zeige ich Dir gerne wie Du wo was machen kannst.
Aber das ganze Modul zu pflegen schaffe ich aktuell nicht. Wenn Du also Lust hast mehr zu lernen und zu machen dann wäre mein erster Ansatz ein VideoCall da ich einige Fragen habe.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

LR66

Danke für die Hilfe.
Habe damit einiges optimiert. Das einzig ungewöhnliche im Code ist m.E. noch das Löschen aller Readings, wenn man die Anzahl der auszulesenden API-Keys/Readings über Attr anpasst. Dies soll aber ewige Reading-Leichen verhindern. Die ActionQueue ist im Code noch drin (schadet nicht), da das Herausnehmen aufwendiger ist. Wäre höchstens schöner für Lesbarkeit des Moduls.

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

LR66

Die Fhem interne Funktion deleteReading erwartet ja den genauen einzelnen Readingname (um dann reading und oldreading dazu zu löschen). Es gelingt mir nach wie vor nicht, eine Schleife durch alle Readings des Hashes zu machen, um jeden Readingnamen als String dabei zu erhalten und zu prüfen (Dein letzter Tip aus PM ging auch nicht).
Also hab ich mal noch den externen fhem-Aufruf zum löschen der Readings in der Attr-Funktion drin ( {fhem ("deletereading $name .*")}; ).

CoolTux

Das ist seltsam. Bei mir geht mein Code. Eventuell liegt es daran wo Du ihn ausführen lässt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

satprofi

#11
danke für das neue modul, verwende noch das alte hier.
aber "verbindung abgelehnt", was muss man noch definieren?

lg

[edit] klappt jetzt. wlan verbindung des go-E ist sehr misaerabel......
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

LR66

Sorry, die Version oben 0.1.5 ist grad noch fehlerbehaftet, die Hilfe-Anzeige geht nicht auf allen Systemen. Hab ja zwischenzeitlich auch nicht gehört, dass es jemand überhaupt nutzt.

Ja, der go-E braucht starkes WLAN, hat nur schwachen Sender/Empfänger. Ich hab ein Repeater gebraucht und musste wieder lokal in den Hotspot und Neustart machen...

Edit: Wenn man das Modul neu reinkopiert und nur reload... macht, reicht das nicht. Es braucht ein löschen des Gerätes oder ein Restart. Ggf. noch ein deletereading für das device mit .* (wenn man es nicht neu anlegt).
Die Hilfe wird auf meinem Pi nicht kpl. angezeigt, anders als auf meinem Testsystem unter Win...

LR66

Hier mal ein raw - Beispiel zum define mit Modifikation der Icon-Anzeige...
EDIT: nochmal korrigiert an Version 0.1.5:


defmod myGoE GoECharger 192.168.0.xxx
attr myGoE devStateIcon disabled.*:ev-station@darkgrey not_allowed.*:ev-station@white ready_no_car.*:ev-station@blue charging.*:ev-station@darkorange waiting_for_car.*:ev-station@pink finished.*:ev-station@lime error.*:ev-station@red .*:ev-station@yellow
attr myGoE interval 60
attr myGoE room Energie
attr myGoE used_api_keys default

LR66

Hier ein Raw eines DOIF für Überschuß-Laden eines Tesla Model3 (unter Mitnutzung und Auswertung Tesla Powerwall) inkl. des nötigen Weckens des M3 über Modul Teslacar aus github. Die VIN_des_Teslacar muss entsprechend angepasst werden. Für die Powerwall2 hab ich separate HttpMod (hier im Bsp. PW2_Meters und PW2_SOC) definiert, die mir Info's zum Hausverbrauch und zur Powerwall liefern. Schön ist was anderes - es funktioniert aber zunächst erstmal so, wie ich es gerade brauche...

Als Code konnte ich das nicht einfügen (Fehler Textfeld wurde nicht ausgefüllt), daher als Anhang die Textdatei des Raw (als Template für Anpassung an eigene Bedürfnisse...).