NEWS
[gelöst] Victron MP2 MQTT Anbindung
-
@ben1983 sagte in Victron MP2 MQTT Anbindung:
@mickym eine Frage noch.. es braucht immer einen Broker… Client <=> Client geht nicht, oder?
lies dich mal ein, wie schon @mickym geschrieben hat!
Das MQTT-Protokoll erfordert einen Datenbroker. Dies ist die zentrale Idee der Technologie.
https://www.iobroker.net/#de/adapters/adapterref/iobroker.mqtt/README.md
einiges steht auch im GX Handbuch von victronenergy.de
-
@mickym
Lieber mickym.
Ich habe mit großem Interesse all Deine Post gelesen, scheinbar fehlt mir da noch ein wesentlicher Punkt.
Ich habe auch ein Victron System mit einer "Venus GX" (Visualisierungs Zentrale von Victron mit LAN, MODBUS und MQTT) sowie einer Synology mit IO-Broker-Docker.
Die Modbus Verbindung läuft seit Jahren ist aber nicht gut zu warten und Victron ändert da immer wieder Adressen also will ich auf MQTT umsteigen.
@Homoran hat bereits herausgefunden, dass die Venus ein MQTT-Broker ist. Also Habe ich einen MQTT-Adapter als Client angelegt und die Verbindung hergestellt.
Als Subscription ist # voreingestellt und ich bekomme bereits das hier angezeigt:
Wie subscribe ich nun all die anderen Werte?
Angeblich sollen alle verfügbaren Werte mit dem '#' angezeigt werden - tun sie aber nicht. -
@fichtendickicht Du musst dem Victron das KeepAlive setzen.
ich habe dazu alle 30s einfach "" gesxhrieben.
das funktioniert und er liefert alle anderen daten.schedule('*/30 * * * * *',()=>{ setState("mqtt.0.R.c0619ab24727.keepalive",""); });
natürlich musst Du vorher diesen state anlegen.
-
@ben1983 said in Victron MP2 MQTT Anbindung:
schedule('*/30 * * * * *',()=>{
Danke für Deine rasche Antwort. Ich denke da hakt´s bei mir.
Wie lege ich den Datenpunkt an?
Wo gebe ich Deine Befehlszeile ein?
Ich verwende auch den MQTT Explorer:
-
@fichtendickicht mit dem Mqtt Explorer publishst du einfach ein topic. In dem Fall von Ben wäre das Topic
R/c0619ab24727/keepalive
Sobald einmal gepublished dann taucht der DP im Adapter auf. Du musst ihn nur unbestätigt beschreiben
-
@mickym said in Victron MP2 MQTT Anbindung:
keepalive
das "keepalive" gibt´s wohl schon:
Und wie beschreibe ich den Punkt? Mit Blockly?
-
@fichtendickicht mit Blockly oder JavaScript. Mit NodeRed kannst auch direkt ohne iobroker beschreiben. Aber der Datenpunkt sollte ja auch im Adapter auftauchen
-
-
@fichtendickicht dazu kann ich nicht viel sagen. Veröffentlichen muss die Info das Gerät selbst.
-
Ich glaube dein Blockly ist falsch. Du musst doch sendTo nehmen. Ich an deiner Stelle würde einfach das JavaScript von @Ben1983 nehmen und den Pfad anpassen.
Edit: ich habe mal das sendTo Blockly zusammengebastelt
-
@tt-tom @Fichtendickicht
Es muss lediglich der State über die Objekte angelegt werden.
Dann kannst Du diesen normal mit einem setState beschreiben.
Du kannst es auch mittels MQTT Explorer machen, aber glaube nach einer Minuta verschwinden die Werte dann wieder.
Deshalb "Keepalive" -
Wenn ich es richtig Verstanden habe, hat er ja schon den keepalive. Nur mit dem setzten/schreiben hapert es.
-
-
Dein Script als Blockly. Na mal sehen was jetzt raus kommt.
-
@tt-tom Ich habe es nicht also blockly, sondern damals so gelöst.
schedule('*/30 * * * * *',()=>{ setState("mqtt.0.R.c0619ab24727.keepalive",""); });
-
@ben1983 Es gab hier (Kärnten) gestern ein großes Unwetter und ein Blitzschlag hat mir mehrere Victron-Geräte zerstört. Ich kann erst nach Wiederherstellung weiter testen.
-
@fichtendickicht Oh Nein, das ist ja ärgerlich.
-
@tt-tom So, habe nun eine CERBO-GX eingebaut und das Script laufen lassen. Sieht nun so aus:
Im IO-Broker hab ich aber dennoch nicht mehr Punkte:
Auch de MQTT-Explorer zeigt nicht viel mehr an:
Über MODBUS habe ich allerdings bereits Kontakt:
-
deine Bilder sind vom State her nicht identisch. Im ioBroker hast du den Keepalive Datenpunkt und im MQTT-Explorer nicht.
das Script stoppen und den Keepalive im ioBroker nochmal löschen.
Dann mit dem MQTT - Explorer noch einmal anlegen. -
@tt-tom Danke für den Hinweis. Ich habe interessante Infos über "keepalive" auf folgender Seite gefunden: github. Wenn ich nun im "MQTT Explorer" folgenden Befehl "R/c0619ab363c9/system/0/Serial" publishe, so bekomme ich alle Datenpunkte die das Victron System zu liefern im Stande ist:
Leider verschwinden alle Punkte nach ca. 30 Sekunden wieder und alles ist wieder weg:
Diesen Befehl habe ich auch versucht im Script unterzubringen, leider ohne Erfolg.
Im IOBroker erscheinen nun auch alle Datenpunkte - zumindest im "mqtt-client". Auch mit live-Werten, leider nur für ca. 30 Sekunden. Danach ist alles tot: