Easee Home (Laderoboter / Wallbox) anbinden

Begonnen von Prof. Dr. Pia-Una Fög-Fay, 13 Februar 2022, 22:11:35

Vorheriges Thema - Nächstes Thema

CoolTux

Solange es eine eindeutige Unterscheidung gibt, so eine Art ID, ist das kein Problem.
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

strategy

Hallo zusammen,

dank der vielen Tipps und Best Practices von CoolTux habe ich das Modul einem Update unterzogen.
Vieles ist Modul-intern und dient maßgeblich einer besseren Struktur und Qualität des Moduls.

Allerdings ergeben sich damit auch ein paar Changes die nach außen sichtbar sind und die Eigenschaften des Moduls ändern (Breaking Changes):


  • Das Update Interval konnte bisher über ein Set gesetzt werden. Das geschieht jetzt über ein Attribute.
  • Bisher wurden die Session Readings (session_xxx) gelöscht, wenn kein Fahrzeug angeschlossen ist. Jetzt werden die Readings in diesem Fall mit N/A beschrieben1
  • Die boolschen Werte waren bisher 0/1 codiert. Jetzt wird stattdessen true/false verwendet.
  • Das Logging habe ich auch überarbeitet

Bei Fragen oder Problemen meldet Euch gerne.

Gruß,
Matthias

strategy

Hallo Marco,

bzgl. deiner Frage:

Zitat von: xschmidt am 23 März 2022, 20:33:26
Einzige Herausforderung die ich noch habe ist die Anbindung der zweiten Wallbox. Da beide Boxen unter der gleichen site hängen bräuchten ich eigentlich ein Sub Modul Konstrukt...

stellt sich die Frage wie flexibel wir hier sein wollen.
Grundsätzlich kann es ja sowohl mehrere Sites als auch mehrere Charger geben:

Account
  - Site 1
    - Charger A
    - Charger B
  - Site 2
    - Charger C

Das obige Setup könnte auftreten, wenn du Hauptwohnsitz und Zweitwohnsitz mit einer Wallbox ausstattest und am Hauptwohnsitz zudem noch 2 Wallboxen installiert sind.
Dein Szenario habe ich so verstanden, dass es sich um obiges Beispiel aber ohne eine zweite Site handelt.

Da die Charger alle eine eindeutige ID haben, sollte es kein Problem sein beide zu erkennen. Mehrere Sites würde ich aber bis auf weiteres nicht unterstützen, denn das würde die Suche verkomplizieren. Ich würde dann zudem dazu tendieren 2 Instanzen des Moduls zu verwenden und die Charger ID bei der Definition mit anzulegen. Die Readings auf Site-ebene (maßgeblich die eingestellten Preise) würden dann von jedem der Module abgerufen. Aber die übrigen Daten sind ohnehin Charger spezifisch...


Gruß,
Matthias

xschmidt

Hallo Matthias,

genauso ist es in meinem Fall, beide Wallboxen hängen an der gleichen Site, die ID in die Definition zu übernehmen würde das Problem bereits lösen. Wie gesagt ist nicht dringend, die jetzige Lösung ist schon super!
Ich spiel nachher die neue Version ein und teste weiter.
Super Arbeit! Vielen Dank!
LG
Marco

xschmidt

Hi Matthias,

ein einfaches "drüberkopieren" hat mir mein FHEM übel genommen, ist danach abgestürzt. Hab jetzt mal die Fehlermeldungen aus dem log gezogen:
2022.03.27 12:44:53 1: PERL WARNING: Use of uninitialized value $retVal in concatenation (.) or string at ./FHEM/98_EaseeWallbox.pm line 245.
2022.03.27 12:44:54 1: PERL WARNING: Use of uninitialized value $number in numeric eq (==) at ./FHEM/98_EaseeWallbox.pm line 1294.
2022.03.27 12:45:16 1: RMDIR: ./restoreDir/save/2022-03-08
Modification of non-creatable array value attempted, subscript -6 at ./FHEM/98_EaseeWallbox.pm line 1044.

Bei mir startet FHEM noch, und erst sieht es so aus, als ob er alle Werte ziehen kann, kurz darauf stürzt es dann aber ab.
Ich mach die nächsten Test mal auf meiner Spielumgebung  :)
LG Marco

strategy

Hallo Marco,

ich hab mir das log und die Stelle im Code angeschaut.
Vermutlich hast du Deine Wallboxen noch keine 6 Monate im Betrieb?
Der Code war dahingehend fehlerhaft, dass Daten der letzten 6 Monate vorausgesetzt wurden, was natürlich nicht immer der Fall ist.
Ich habe das jetzt dahingehend geändert, dass die vorhandenen Monate angezeigt werden, jedoch maximal die letzten 6.

Kannst du das geänderte Modul bitte nochmal testen?

Danke
Matthias

strategy

Hallo Marco,

basierend auf diesem Scenario habe ich eine Umsetzung vorbereitet:

Zitat von: xschmidt am 27 März 2022, 10:59:10
genauso ist es in meinem Fall, beide Wallboxen hängen an der gleichen Site, die ID in die Definition zu übernehmen würde das Problem bereits lösen. Wie gesagt ist nicht dringend, die jetzige Lösung ist schon super!

Ich kann das ja selbst nur bedingt testen, da ich nur eine Box habe, aber ich bin zuversichtlich das der Code so funktioniert.

Die Testversion liegt in einem eigenen Branch im Repository:

https://github.com/MrStrategy/easee/tree/multiple_boxes_by_chargerid

Wenn alles läuft wir erwartet bringe ich das feature mit in den main branch...

Ich habe der Definition einfach einen weiteren Parameter angefügt.
Damit musst du aktuell leider auch immer einen Interval setzen, denke das ist zu Testzwecken aber zu verkraften...
Die neue Definition muss dann wie folgt aussehen:

define <name> EaseeWallbox <username> <password> [interval] [chargerID]

Die ChargerID findest du in der App -> Einstellungen Laderoboter -> Über

Ich freu mich auf Feedback,
Matthias

xschmidt

Hallo Matthias,

super, hab es gerade installiert und läuft erstmal mit beiden Boxen, bisher ohne Abstürze! Ich lass das auf der Spielumgebung mal bis heute Abend laufen und gebe dann Bescheid ob es noch Fehler gab, bisher gibt es nur nach dem FHEM Start die zwei Warnungen für nicht intitialisierte Variablen:
2022.03.28 11:38:24 1: PERL WARNING: Use of uninitialized value $retVal in concatenation (.) or string at ./FHEM/98_EaseeWallbox.pm line 246.
2022.03.28 11:38:21 1: PERL WARNING: Use of uninitialized value $number in numeric eq (==) at ./FHEM/98_EaseeWallbox.pm line 1333.


Denke aber das ist nicht kritisch.
Super Job, vielen Dank!

LG
Marco

strategy

Hallo Marco,

gerne doch.

Leider kommen die beiden Fehler bei mir im Log nicht. Aber ich hab mir die Stellen im Code angeschaut und Anpassungen vorgenommen.
Du darfst gerne nochmal testen...

Gruß,
Matthias

xschmidt

Sieht gut aus, die Fehler erscheinen nicht mehr im Log. Als nächstes würde ich mir noch die Verbrauchsdaten zu Gemüte führen - die Werte dort kann ich noch nicht nachvollziehen, aber da brauch ich erstmal a bissle Ruhe :-)
Ich melde mich heute Abend!

LG
Marco

Feller

Hallo,

ich teste auch gerade das Modul. In meiner easee-App habe ich unter "Einstellungen Laderoboter/Über" kein Feld "ID". Ist damit die Seriennummer gemeint?

Wenn ich testweise

define Wallbox_1 EaseeWallbox <userid> <password> 60 <seriennummer>

eingebe, kommen nach kurzer Zeit im Log folgende Fehlermeldungen:

2022.04.04 11:57:13 1: HTTPS error while requesting https://api.easee.cloud/api/accounts/chargers - 401
2022.04.04 11:57:36 1: Error on EaseeWallbox_WriteToCloudAPI. Missing charger_id. Please ensure basic data is available.


Danke für das Modul und eure Hilfe.


LG
Feller

strategy

Zitat von: Feller am 04 April 2022, 12:14:04
Wenn ich testweise

define Wallbox_1 EaseeWallbox <userid> <password> 60 <seriennummer>

eingebe, kommen nach kurzer Zeit im Log folgende Fehlermeldungen:

2022.04.04 11:57:13 1: HTTPS error while requesting https://api.easee.cloud/api/accounts/chargers - 401
2022.04.04 11:57:36 1: Error on EaseeWallbox_WriteToCloudAPI. Missing charger_id. Please ensure basic data is available.




Hallo Feller,

du benutzt aber die Version aus dem Branch im Git und nicht aus dem Hauptzweig, oder?
Also https://github.com/MrStrategy/easee/tree/multiple_boxes_by_chargerid
Denn bisher habe ich die Versionen noch nicht zusammengeführt.

Du hast übrigens recht, das Feld heißt Seriennummer und nicht ID und da steht ein 8-stelliger alphanumerischer Wert drin.

Wenn du das Modul so definierst wie in deinem Beispiel sollte es klappen.
Danach gibt es ein Internal mit der Kennzeichnung FIXED_CHARGER_ID. Diese wird dann bei allen Service Calls verwendet.
Ein Beispiel findest du im Screenshot.

Wenn das nicht weiterhilft, sende mir mal bitte einen Screenshot deines Modulbildschirms bzw. ein list.
Password und ggf. Email magst du gerne aus-x-en...

Gruß,
Matthias









MiWe58

Hallo,
ich versuche gerade, das Easee Modul zu installieren.
Leider habe auch die die oben beschriebenen Probleme

"Cannot load module EaseeWallbox"

Gemäß dieses Beitrags habe ich dann auf dem RasPi versucht, die folgende Bibliothek zu installieren

"sudo apt-get install libdatetime-format-strptime-perl"

Dabei bekomme ich allerdings Fehlermeldungen: (Auszug)

"E: Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/libl/liblist-allutils-perl/liblist-allutils-perl_0.09-1_all.deb  404  Not Found [IP: 2a00:1098:0:80:1000:75:0:3 80]"

Liegt der Fehler bei mir oder was kann ich tun?
Ich bin nicht gerade der Linux-Profi.

Vielen Dank für die Unterstützung

Gruß
Michael
Devices: RasPi V, HomeMatic, PICCU, Modbus, Heliotherm-Wärmepumpe, SMA PV-Anlage, Easee Laderoboter
Steuerung: Rollos, Beleuchtung, Heizung-Heliotherm, Heizung-Heizkreise, PV-Anlage-Eigenverbrauch, Alarm, Zugang, Wasser

davedeluxe

Hi,

was genau es mit dem Fehler bei deinem apt aufsich hat kann ich dir nicht sagen, sollte normalerweise problemlos funktionieren. ggf. hilft vorher ein "sudo apt update"
Beim Installieren des Moduls bekam ich den gleichen Fehler, hast du einen Wert für Intervall eingegeben? Des Weiteren musst du deine Mailadresse als Username verwenden, nicht deine Telefonnummer o.ä.

Das war zumindest die Lösung bei mir...

Grüße, Dave

CGR

Hallo,

vielen Dank für das Modul. Es läuft seit einiger Zeit problemlos und ich kann den Ladevorgang starten, anhalten und stoppen.

Nun möchte ich gerne versuchen, den Ladevorgang an die Leistung unserer PV-Anlage anzupassen. Wenn ich es richtig verstehe, kann ich die Ladeleistung der Wallbox über ,,dynamicCurrent" steuern. Der zugehörige Wert taucht auch in den Readings auf, allerdings gibt es keinen zugehörigen Set-Befehl. Wäre es möglich, den Befehl einzubauen?

Vielen Dank!

Gruß
Christian