pvtom / rscp2mqtt

Bridge between an E3/DC home power station and an MQTT broker based on the RSCP protocol
MIT License
29 stars 7 forks source link

e3dc/set/wallbox/control stop #63

Open schnidrig opened 2 months ago

schnidrig commented 2 months ago

Hallo

Hab heute ein wenig mit der Wallbox gespielt. Dabei ist mir folgendes aufgefallen:

1) "e3dc/set/wallbox/control stop" ist eigentlich ein Schalter. Man kann damit das laden aus aber auch wieder einschalten. Daher ist der Name vielleicht etwas unglücklich.

2) "e3dc/set/wallbox/control stop" verändert den maximalen Strom. Dies ist ein unangenehmer Nebeneffekt. Könnte man nicht den aktuellen max_current beibehalten?

pvtom commented 2 months ago

Hallo Christian, da ich keine Wallbox von E3/DC besitze, kann ich das Verhalten leider nicht selbst testen. Ich kann im Programmcode aber nachvollziehen, dass der Stromwert und der Sonnen/Mix-Modus geändert wird. Ich bin davon ausgegangen, dass "stop" das Laden beendet und z.B. "e3dc/set/wallbox/control" "solar:16" das Laden startet. Funktioniert das Einschalten so? Wenn ja, sollte man überlegen, ob man "stop" umbenennt und die Werte rettet oder bei abgeschaltetem Laden den "stop"-Befehl einfach ignoriert. Gruß Thomas

schnidrig commented 2 months ago

Ja kann ich gut verstehen. Die TAG Namen in RSCP sind nicht selbsterklärend. Aber hey! Vielen Dank für diese Projekt. Ich finde es super hilfreich.

Nein die Schalter funktionieren nicht wie du denkst.

Insofern ist der Name von "e3dc/wallbox/canceled" eigentlich auch falsch. Es wäre eher "e3dc/wallbox/suspended". Im E3DC Portal steht dann "Ladevorgang pausiert".

Persönlich finde ich es eher mühsam, dass du Strom und Modus Config zusammenfasst. Im UI sind die auch getrennt und ich musste erst mal nachschauen gehn, welche Stromstärke bei mir eigentlich konfiguriert ist. Ich switche gelegentlich zwischen mix und solar, die Stromstärke verändere ich absolut nie. Wüsste nicht wozu.

Ich poste mal einen Screenshot des UIs:

Screenshot 2024-04-26 at 09 03 35
schnidrig commented 2 months ago

ich bin dabei dies in Openhab zu integrieren. Es wäre einfacher, wenn da einfach ein Schalter für Sonnenmodus ein/aus wäre wie im UI anstatt solar/mix.

Wie wäre es mit:

Dann folgende Topics:

Dann könntest du e3dc/set/control in Rente schicken.

Im UI kann man auch minimal Stromstärke setzen. Im Code hast du 6A als Minimum hardcodiert. Ich weiss nicht wieso man diese Werte verändern sollte, aber vielleicht weiss das ja sonst jemand hier.

Bei e3dc/set/suspended weiss ich nicht ob dies in RSCP nur ein Toggle ist oder ob du den gewünschten Status setzen kannst.

pvtom commented 2 months ago

Hallo Christian, ich habe mit dem neuen Release v3.21 einige Deiner Ideen umgesetzt, siehe WALLBOX.md. Ich hoffe, es funktioniert alles?! Es gibt zur Steuerung jetzt diese Topics:

schnidrig commented 2 months ago

Hallo Thomas

Vielen Dank für die Anpassungen

Bei meinen ersten Tests hab ich folgendes gefunden:

1) Ich hab jede Sekunde folgenden Fehler im log:

rscp2mqtt-1  | [2024-04-28 16:29:35] pid=1 ppid=0 RscpMqttMain.cpp(1871) Error: Container >TAG_WB_DATA< Tag >TAG_WB_REQ_AVAILABLE_SOLAR_POWER< received error code >UNKNOWN_TAG<.

2) Das Setzen von e3dc/set/wallbox/charge, e3dc/set/wallbox/toggle, e3dc/set/wallbox/sun_mode, e3dc/set/wallbox/max_current generiert folgenden Fehler:

rscp2mqtt-1  | [2024-04-28 16:43:36] pid=1 ppid=0 RscpMqttMain.cpp(1871) Error: Container >TAG_WB_DATA< Tag >TAG_WB_EXTERN_DATA< received error code >UNKNOWN_TAG<.

Dies scheint jedoch keinen Einfluss auf die Funktion zu haben. toggle, max_current und sun_mode funktionieren wie erwartet.

3) e3dc/set/wallbox/charge

4) Doku in der Datei: WALLBOX.md steht noch e3dc/wallbox/canceled anstelle von e3dc/wallbox/suspended


Noch ein Hinweis. Die Integration in Openhab ist ungleich schwerer, wenn das Kommando nicht dem Status entspricht:

Gruss & Danke Christian

pvtom commented 2 months ago

Hallo Christian, danke für Deinen Test. Schade, dass es keine Punktladung war... zu 1) ich habe den Tag TAG_WB_REQ_AVAILABLE_SOLAR_POWER neu aufgenommen. Frage wäre, ob der zugehörende Topic e3dc/wallbox/available_solar_power erzeugt wird? Wenn nein, nehme ich den Tag wieder raus. zu 2) gut, dass die drei set-Topics grundsätzlich funktionieren. Mal schauen, ob ich ermitteln kann, warum die Fehlermeldung auftaucht... oder ich fange sie ab.... zu 3) e3dc/set/wallbox/charge habe ich so umgesetzt, dass der toggle-Befehl ausgeführt wird, wenn der mit charge gewünschte Status true/false nicht mit dem Ladestatus, den e3dc/wallbox/charging meldet, übereinstimmt. Evtl. habe ich da noch einen Denkfehler. Kannst Du mal schauen, ob e3dc/wallbox/charging ausgegeben wird und zum Zustand der Wallbox (true = Laden, false = nicht Laden) übereinstimmt? zu 4) stimmt, die Doku sollte passend sein zu der Anmerkung, dass set/wallbox/charge zu wallbox/suspended passen sollte... kann ich anpassen. Was ist inhaltlich der Unterschied zwischen e3dc/wallbox/charging und e3dc/wallbox/suspended? Vielleicht liegt hier der Fehler beim charge-Befehl. Gruß Thomas

pvtom commented 2 months ago

Übrigens kann man das nervige Loggen des Fehlers mit LOG_LEVEL=0 in der .config unterdrücken... ;-)

pvtom commented 2 months ago

Hallo Christian, nochmal zu 3) kann es sein, dass e3dc/wallbox/charging dann true ist, wenn tatsächlich geladen wird, d.h. das Hauskraftwerk es entschieden hat, weil z.B. Überschuss da ist, und e3dc/wallbox/suspended heißt, wenn es true ist, dass das Laden unterdrückt wird (wie der Name schon sagt), d.h. der Anwender kein Laden wünscht... dann müsste ich den suspend-Wert bei e3dc/set/wallbox/charge benutzen... Gruß Thomas

schnidrig commented 2 months ago

Richtig. e3dc/wallbox/charging ist true wenn tatsächlich geladen wird und e3dc/wallbox/suspended ist true wenn der User das Laden unterdrückt.

On Sun, Apr 28, 2024 at 10:34 PM Thomas Heiny @.***> wrote:

Hallo Christian, nochmal zu 3) kann es sein, dass e3dc/wallbox/charging dann true ist, wenn tatsächlich geladen wird, d.h. das Hauskraftwerk es entschieden hat, weil z.B. Überschuss da ist, und e3dc/wallbox/suspended heißt, wenn es true ist, dass das Laden unterdrückt wird (wie der Name schon sagt), d.h. der Anwender kein Laden wünscht... dann müsste ich den suspend-Wert bei e3dc/set/wallbox/charge benutzen... Gruß Thomas

— Reply to this email directly, view it on GitHub https://github.com/pvtom/rscp2mqtt/issues/63#issuecomment-2081645721, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCANCBVEKCOK7IEUNNZH2TY7VMOJAVCNFSM6AAAAABGZPSMQOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBRGY2DKNZSGE . You are receiving this because you authored the thread.Message ID: @.***>

schnidrig commented 2 months ago

das Topic e3dc/wallbox/available_solar_power hab ich nie gesehn.

On Sun, Apr 28, 2024 at 10:05 PM Thomas Heiny @.***> wrote:

Hallo Christian, danke für Deinen Test. Schade, dass es keine Punktladung war... zu 1) ich habe den Tag TAG_WB_REQ_AVAILABLE_SOLAR_POWER neu aufgenommen. Frage wäre, ob der zugehörende Topic e3dc/wallbox/available_solar_power erzeugt wird? Wenn nein, nehme ich den Tag wieder raus. zu 2) gut, dass die drei set-Topics grundsätzlich funktionieren. Mal schauen, ob ich ermitteln kann, warum die Fehlermeldung auftaucht... oder ich fange sie ab.... zu 3) e3dc/set/wallbox/charge habe ich so umgesetzt, dass der toggle-Befehl ausgeführt wird, wenn der mit charge gewünschte Status true/false nicht mit dem Ladestatus, den e3dc/wallbox/charging meldet, übereinstimmt. Evtl. habe ich da noch einen Denkfehler. Kannst Du mal schauen, ob e3dc/wallbox/charging ausgegeben wird und zum Zustand der Wallbox (true = Laden, false = nicht Laden) übereinstimmt? zu 4) stimmt, die Doku sollte passend sein zu der Anmerkung, dass set/wallbox/charge zu wallbox/suspended passen sollte... kann ich anpassen. Was ist inhaltlich der Unterschied zwischen e3dc/wallbox/charging und e3dc/wallbox/suspended? Vielleicht liegt hier der Fehler beim charge-Befehl. Gruß Thomas

— Reply to this email directly, view it on GitHub https://github.com/pvtom/rscp2mqtt/issues/63#issuecomment-2081636592, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCANCGGBC7JYGMNVWVENBLY7VJAZAVCNFSM6AAAAABGZPSMQOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBRGYZTMNJZGI . You are receiving this because you authored the thread.Message ID: @.***>

pvtom commented 2 months ago

Hallo Christian, danke für die Aufklärung. Dann werde ich folgendes anpassen: zu 1) der Tag wird entfernt zu 3) aus "charge" wird "suspended". Dann passt der set-Befehl zum Status-Topic. zu 4) die Doku wird angepasst Ich werde versuchen, heute Abend ein neues Release zu veröffentlichen. Gruß Thomas

pvtom commented 2 months ago

Hallo Christian, die Anpassungen sind jetzt mit Release v3.22 verfügbar. Gruß Thomas

schnidrig commented 2 months ago

Hallo Thomas

Nun funktioniert e3dc/set/wallbox/suspended wie erwartet.

Es wird allerdings immer noch folgender Fehler geloggt:

rscp2mqtt-1  | [2024-04-30 11:23:48] pid=1 ppid=0 RscpMqttMain.cpp(1870) Error: Container >TAG_WB_DATA< Tag >TAG_WB_EXTERN_DATA< received error code >UNKNOWN_TAG<.

Vielen Dank & Gruss Christian

pvtom commented 2 months ago

Hallo Christian, dass der suspended-Befehl jetzt funktioniert, freut mich sehr. Kommt die Fehlermeldung nur einmalig, nachdem ein e3dc/set/wallbox/xyz gesendet wurde - also als Antwort auf den set-Befehl? Oder kommt der Fehler alle Sekunde (bzw. im konfigurierten Intervall)?

Gruß Thomas

schnidrig commented 2 months ago

Nur einmalig beim setzen.

pvtom commented 2 months ago

Okay, das ist ja dann nicht so dramatisch. Ich schaue mir das trotzdem an, vielleicht finde ich etwas...

timmost commented 2 months ago

Hallo Tom

zu 1. - sehe diese Entries im Log: rscp2mqtt [v3.22] (...) [2024-05-01 07:48:14] pid=1 ppid=0 RscpMqttMain.cpp(382) MQTT: starting listener loop [2024-05-01 07:48:15] pid=1 ppid=0 RscpMqttMain.cpp(1907) Error: Container >TAG_PVI_DATA< Tag >TAG_PVI_REQ_COS_PHI< received error code >NOT_AVAILABLE<. [2024-05-01 07:48:15] pid=1 ppid=0 RscpMqttMain.cpp(1907) Error: Container >TAG_PVI_DATA< Tag >TAG_PVI_REQ_VOLTAGE_MONITORING< received error code >NOT_AVAILABLE<. [2024-05-01 07:48:15] pid=1 ppid=0 RscpMqttMain.cpp(1907) Error: Container >TAG_PVI_DATA< Tag >TAG_PVI_REQ_FREQUENCY_UNDER_OVER< received error code >NOT_AVAILABLE<.

Wahrscheinlich ein Schönheitsfehler, hatte die WB heute wieder angestellt (ich stelle sie normalerweise an der Sicherung aus, da das E-Auto nicht vorhanden ist - und die WB ständig die Einfahrt mit der grünen Leuchte ausleuchtet). Könnte man evtl durch eine Verfügbarkeitsabfrage klären.

VG timmo

pvtom commented 2 months ago

Hallo Timmo, die Meldungen kommen beim Programmstart, wenn die Messeinrichtung des Hauskraftwerks die Werte z.B. zum cos phi nicht ausgibt. Ist bei meinem Hauskraftwerk auch so. rscp2mqtt fragt die Werte dann nicht mehr ab, nur beim Start. Das hat nichts mit der Wallbox zu tun. Die Meldungen wurden schon seit einigen Releases ausgegeben. Einfach ignorieren ;-) Gruß Thomas

timmost commented 2 months ago

Ok thx

Timmo Sturm Wittelsbacherstr. 8 85622 Feldkirchen +49 151 402 71 711

Thomas Heiny @.***> schrieb am Mi. 1. Mai 2024 um 10:21:

Hallo Timmo, die Meldungen kommen beim Programmstart, wenn die Messeinrichtung des Hauskraftwerks die Werte z.B. zum cos phi nicht ausgibt. Ist bei meinem Hauskraftwerk auch so. rscp2mqtt fragt die Werte dann nicht mehr ab, nur beim Start. Das hat nichts mit der Wallbox zu tun. Die Meldungen wurden schon seit einigen Releases ausgegeben. Einfach ignorieren ;-) Gruß Thomas

— Reply to this email directly, view it on GitHub https://github.com/pvtom/rscp2mqtt/issues/63#issuecomment-2088142433, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD4FS62L5SNGETJ6H5UFAZTZACQZTAVCNFSM6AAAAABGZPSMQOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBYGE2DENBTGM . You are receiving this because you commented.Message ID: @.***>