Homeassistant "Victron GX modbusTCP integration" - Tipps und Tricks gesucht

Würde mich freuen wenn hier ein Austausch über die Homeassistant-Integration “Victron GX modbusTCP integration” stattfindet.
(GitHub - sfstar/hass-victron: Integration for Home Assistant to fetch data from the victron gx device via modbusTCP)

Ich habe vor kurzem diese Integration installiert da ich alles über HA steuern möchte wie
eben Pytes V5a-Akkus, Warmwasserboiler, Whirlpool, elektrische Fußbodenheizung und bald auch mein E-Auto.

Wer benützt die Victron-Integration über HA und möchte seine Erfahrung und was damit gesteuert wird mitteilen?

Vorweg:
Ich kann zur Integration nur technisch etwas sagen, habe aber keinerlei Erfahrungen damit.
Vielleicht hilft dir das hier aber ja trotzdem weiter.

Ich hab letztes Jahr Ende Oktober mit HomeAssistant angefangen aus ähnlichen Gründen (Nachtspeicherheizungen via Shelly, Whirlpool via esp32, Diverse komponenten via esphome/libretiny und esp, E-Auto via goE Charger).

Da ich Liontron Batterien verwende (mit Pace BMS) und dazu ein Tool habe um die per RS232 einzeln mit allen Parametern auszulesen brauchte ich auch etwas um die Daten sinnvoll anzuzeigen (so gings dann mit dem Homeassistant los).

Um Daten aus der Victron Welt in den HomeAssistant reinzubekommen hab ich mir die Integration damals auch angesehen und später dann verworfen.

Die Cerbo ist ja mit der “normalen” Steuerung schon relativ gesehen reichlich ausgelastet (Normalload liegt irgendwo um die 1,2-1,5 bei load5, allerdings bei mir mit Node Red)

Imho, wenn dann dort noch eine Modbus Integration mit drauf kommt die quasi den DBUS Tree abfragt, dann wird das relativ schnell zu überlast und durch den Watchdog zu unerklärlichen reboots führen. Der hat leider out of the box bei der Cerbo eine relativ kurze Lunte.
Sofern Raspberry mit VenusOS mag das wiederum anders aussehen…

Da ich aber sowieso auf der Cerbo ein NodeRed UI benutze für nen Short Overview über einige Parameter und aus dem Homeassistant in der Cerbo nichts umkonfiguriert werden soll ist meine Wahl dann hinterher auf MQTT gefallen. Ich hab bisher halt keinen wirklichen nutzen darin gesehen die Cerbo vom Homeassistant umzukonfigurieren (die sollte imho das führende System sein und nicht von aussen konfiguriert werden).

Die Daten kommen über die Victron Nodes im Node Red auf einen MQTT Server der im Homeassistant läuft und über die MQTT Integration im Homeassistant abgefragt wird.

Also:
NodeRed (Cerbo) → MQTT (Homeassistant) → Homeassistant (MQTT Integration)

Funktioniert seit nun rund einem Jahr sauber und ohne Probleme.
Da die MQTT Integration nativ im Homeassistant ist und nicht unter Umständen bei neuen Versionen angepasst werden muss sehe ich da auch in Zukunft relativ wenig Probleme…

Wenn dich und andere hier das im Detail interessiert, mache ich gern ein paar Screenshots bzw. detailiertere Erklärungen hier dazu.

Liebe Grüße,
Dierk

Hallo Dierk!

Vielen Dank für deinen interessanten Einblick und Erfahrung.

D.h. MQTT wird bei dir über NodeRed erzeugt, leider habe ich NodeRed noch nie probiert.

Hast du dir auch diese Victron-MqTT angeschaut und wenn ja, was hältst du davon?

Hey Chris,
gerne.
Wie gesagt, muss jeder selbst wissen was er verwendet, das ist ja das geile an solchen offenen Systemen.

Wenn ich das richtig sehe ist das der Connector von Victron selbst der im Venus OS läuft und zwischen DBUS und MQTT vermittelt (seit Firmware ---- Ich habs leider vergessen. AFAIK ist die Umstellung von Mosquitto auf FlashMQ noch nicht abgeschlossen…).

Das Ding ist:
Der verwendet keepalive.
Bedeutet, du musst immer eine keepalive Meldung in regelmäßigen intervallen senden sonst kommen irgendwann keine Daten mehr.

Das Node Red lief, wie gesagt, bei mir sowieso schon.
Ich hatte einfach dadurch die Möglichkeit die Last vergleichsweise gering zu halten weil die Victron Nodes nur Daten senden, wenn sie sich auch ändern. Durch den externen und von der Cerbo unabhängigen MQTT Broker ist die Last also von der Cerbo schonmal weg und ich kann den auch noch für andere Sachen verwenden (Whirlpool schreibt auf eigene Topics bzw. Trees im gleichen Broker).

Viele Sachen die im FlashMQ drin sind brauchte ich aber gar nicht.

Ich entscheide eben welche Werte ich brauche und die Daten werden, bei Wertänderung, gesendet.
Da der Broker extern ist, ist mir egal was die MQTT Integration im Homeassistant macht, betrifft die Cerbo an der Stelle einfach nicht bzw. nimmt die Last von ihr weg.
Das ganze dann noch mit Keepalive Topic und Co damit ich von der Cerbo dauerhaft Daten bekomme war mir ehrlicherweise zu kompliziert.

So hab ich nur Sachen, die von allen Beteiligten Komponenten quasi nativ unterstützt werden.

Ich mach mal ein paar Screenshots…

GridSetPoint aus VenuOS nach MQTT:

MQTT Settings für den MQTT out im NodeRed:
image

MQTT Config im Homeassistant für dieses Topic:
image

Alle Values im Homeassistant:

Danke für die Info über MqTT.
Da muss ich mir wirklich überlegen wie ich das angehen werde.

Ich habe seit einigen Wochen die Integration von modbusTCP in HA installiert und habe die Abfrage von 30 s auf 15s reduziert und bis heute kein einziges Problem bzw. Reboot vom Cerbo obwohl an die 350 Entitäten alle 15 s abgefragt werden.
Wie und wo kann ich die CPU-Auslastung vom Cerbo GX abfragen?

Wie würdest du diese Aufgabe lösen?
Ich bekomme in 2 Wochen meinen Stromflextarif von smartENERGY.at
Wenn ich z.B. bei der günstigsten Stunde meinen Warmwasserboiler aufheizen möchte muss ich ja auch verhindern dass der Strom aus dem Akku kommt.
Wie wäre das am einfachsten zu bewerkstelligen?
ModbusTCP (alle Entitäten sind wahrscheinlich von Haus aus vorhanden) oder MqTT über NodeRed?

Wenn Du Dich auf dem GX einloggst, kannst Du den Befehl top aufrufen, das zeigt dir die Auslastung des Devices (ähnlich dem Taskmanger unter Windows, aber ohne Grafiken) was genau was bedeutet ist im Manual beschrieben https://man7.org/linux/man-pages/man1/top.1.html aber auf die schnelle, in der Zeile Load average: 0.13 0.39 0.54 siehst Du 3 Werte, der 1. Wert ist die aktuelle Auslastung (wie viele Prozesse sind in der Warteschlange) der 2. Wert ist die Auslastung der letzten Minute und der 3. Wert die Auslastung der letzten 15 Minuten.

Danke für die Info, so schaut es aus:

Sieht unauffällig aus :+1:

@EmptySoft: Fein, dann bin ich wirklich beruhigt.

Hier möchte ich die vorhandenen HA-Steuerelemente von der modbusTCP-Intergration kurz zeigen falls wer diese noch nicht kennt:




und jede Menge Sensoren.

Ausschnitt:

Ich würde mir bei einem Abfrageintervall von 15s keinen Kopf machen, ich frage seit ca. 2 Jahren im Intervall von 1000ms (1s) 25 Register via ioBroker ab, das macht also ~375 Abfragen in 15s. Läuft völlig problemlos…

1 Like

Also ich frage den Cerbo über diese Modbus Integration mit einer Taktrate von 1s ab und der Cerbo läuft bei mir absolut stabil.

Die Integration kann man auf jeden Fall nutzen.

1 Like

Ich nutze den HA interne Modbus Client um die Daten vom Cerbo GX abzufragen. Meiner Meinung nach ist das einfacher als MQTT.

Ich möchte den Diesel Tankstand vom HomeAssistant an den Cerbo GX über Modbus weitergeben um es als Tank anzeigen zu lasen. Die Daten bekomme ich von der Mercedes ME Integration in HomeAssistant.
Siehe auch hier: Sprinter (VS30/W910) Diesel tank level

Hat da jemand Erfahrung mit Daten an Cerbo GX Modbus zu senden?

Hallo Gabriel,

dieser Thread beschäftigt sich ja mit Modus TCP, warum stellst du dann hier eine Frage zu MQTT?

Dafür gibt es sicher einen besseren Ort die Frage zu stellen. Zumal auch nicht klar wird, wo dein Problem ist, beim publish oder beim richtigen topic. :wink:

Die Frage bezieht sich auf Modbus.

Hab nur die Aussage gemacht, dass ich Modbus einfacher finde als MQTT, da weiter oben die Frage MQTT oder Modbus aufgetaucht ist.

Also wenn ich die Tabelle hier (dbus_modbustcp/CCGX-Modbus-TCP-register-list.xlsx at master · victronenergy/dbus_modbustcp · GitHub) richtig interpretieren, dann sind die Tank-Values nicht selber zu setzten via ModBus.

Aber ich könnte einen Modbus Server im HomeAssistant laufen lassen, welche ich dann über das gui reinziehen kann.