hoylabs / OpenDTU-OnBattery

Software for ESP32 to talk to Hoymiles/TSUN/Solenso Inverters, VE.Direct devices, battery management systems, and related peripherals
GNU General Public License v2.0
301 stars 63 forks source link

[Request] MQTT Topic für Lastausgang Ein/Aus #1256

Open openKimchi opened 3 weeks ago

openKimchi commented 3 weeks ago

Is your feature request related to a problem? Please describe.

No response

Describe the solution you'd like

Viele Victron Laderegler haben einen Lastausgang, mit dem man zB. auch ein Relais steuern kann, um beispielsweise eine Batterie mit einem Inverter zu verbinden. Dieser Lastausgang ist über den RX-Port des Ladereglers steuerbar:

signal-2024-09-15-073346_002

Es wäre schön, wenn ein MQTT Topic zu Verfügung gestellt würde, mit dem man den RX-Port steuern könnte. Dann könnte man für den Lastausgang beispielsweise über ioBroker individuelle Zeitpläne erstellen oder den Lastausgang abschalten, wenn eine bestimmte SOC der Batterie erreicht wäre. In einem anderen Projekt(Victron2mqtt) ist dieses Feature zB. implementiert.

Describe alternatives you've considered

No response

Additional context

No response

schlimmchen commented 3 weeks ago

Puh... Das ist aber keine Kleinigkeit: Da muss man beim Initialisieren der seriellen Schnittstelle prüfen, ob diese noch zu benennende Funktion "RX am Laderegler schalten statt Nachrichten zu schicken" eingeschaltet ist oder nicht. Das muss dann konfigurierbar sein (Web UI, boolean in der Konfig, etc.) Falls das eingeschaltet ist, muss man den TX-Pin am ESP32 freihalten (nicht an die Lib durchreichen) und würde stattdessen den Zustand herstellen, der im Falle von "Remote on/off" am Laderegler den Laderegler "on" schaltet. Also als Output und dann vermutlich "high" (nicht sicher). Anschließend kann man dann Topics subscriben und den TX Pin entsprechend umschalten. Die Topics können hard-coded sein (keine Konfig), aber müssen dokumentiert werden. Am besten nur ein einziges Topic, aber mit 1 und 0 als Payload. Dokumentiert werden muss auch, dass der ESP im Falle eines Neustarts einen definierten Default-Zustand herstellt (wie schon beschrieben). Bestenfalls würde man das Topic mit retain flag schreiben, sodass es beim Wiederverbinden zum Broker nach einem Neustart den zuletzt angeforderten Wert wieder einstellt.

openKimchi commented 3 weeks ago

kannst du hier nicht einfach etwas abgucken...;)

Ich habe momentan einlach ein ESP8266 an den ESP32 "angedockt" um das nutzen zu können. Aber es ist wirklich viel wert, ich kann für eine Nachteinspeisung über ioBroker nun wirklich bei Sonnenaufgang bzw. -untergang schalten und muss nicht mehr über die Spannung der Panels gehen. Außerdem kann ich festlegen, dass die Last nur zugeschaltet wird, wenn der SOC der Batterie beispielsweise über 70% liegt. Das ist schon sehr cool...vor allem im Winter.

schlimmchen commented 3 weeks ago

Es scheint nicht aus meinem niedergeschriebenen Denken klar geworden zu sein: Abgucken muss ich dafür nichts, ich muss "nur" drei Stunden Zeit investieren, um es gescheit zu implementieren und zu testen... Und nochmal eine, um es zu dokumentieren.

Es ist kein Hexenwerk und die Implementierung ist mit meinem Kommentar schon skizziert. Aber es muss dann auch jemand Bock haben, es umzusetzen... Da du bisher der erste bist, der sich meldet das nutzen zu wollen, ist meine Motivation jedenfalls eher klein.

openKimchi commented 3 weeks ago

Sorry, es sollte nicht so aussehen, als wenn ich an deinen Programmierkünsten gezweifelt hätte...mein Kommentar war wohl eher etwas dumm. Tut mir leid... ...und wenn ich tatsächlich der Einzige bin, der so ein Feature sinnvoll findet, ergibt es natürlich wenig Sinn das zu implementieren. Es gab aber in den Discussions mal eine ähnliche Anfrage

schlimmchen commented 3 weeks ago

Sorry, es sollte nicht so aussehen, als wenn ich an deinen Programmierkünsten gezweifelt hätte...

Nene, kein Stress :wink:

Danke für den Link zu der Discussion, dass schonmal jemand danach gefragt hat ist durchaus relevant.