NEWS
[gelöst] Victron MP2 MQTT Anbindung
-
@mickym ok.
Also in meinem Fall wäre ja auch der Adapter ein Client, der die Topics vom Broker (GX) subscribt.
Möchte ich also dieNetzleistung schreiben nicht lesen, benötige ich einen anderen Topicnamen, als den der zum Lesen ist. Ok…. Also weis man den nicht, schade.@ben1983 sagte in Victron MP2 MQTT Anbindung:
Ok…. Also weis man den nicht, schade.
Ja wie die heißen muss der Hersteller in seiner API beschreiben. Das ist nicht selbsterklärend - ausser der Hersteller hat halt ein allgemeines Schema - wo du über einen topic verschiedene Parameter steuern kannst. Meist schickt man dann JSON Objekte an dieses topic. So kannst Du besipielsweise mit Zigbee2mqtt
{"state":"on","brightness":50)gleichzeitig die Lampe mit 50% Helligkeit einschalten und brauchst dafür nicht 2 Befehle.
-
@ben1983 NEIN - Es können beliebig viele Broker im Netz sein, aber nicht auf EINER Maschine. Ich dachte das hätte ich so gesagt. Wenn die, was auch immer GX Geräte sind, eigene IP Adressen haben, können diese auch alle MQTT- Broker sein.
Ich dachte das hätte ich so geschrieben: https://forum.iobroker.net/post/968502
Falls es nur ein GX Gerät (was auch immer das ist) im Netz geben sollte ??? , dann hängt das nicht an MQTT - sondern an anderen Dingen. Jedes Gerät mit einer eigenen IP-Adresse kann ein MQTT-Broker sein!!!
Was einem nur klar sein muss. MQTT-Broker senden nicht von sich aus, sondern nur wenn topics von MQTT-Clients subscribed werden (also abonniert werden). Du kannst Dich halt mit einem MQTT-Client nur mit EINEM Mqtt-Broker verbinden. Deswegen brauchst Du mehrere Instanzen des MQTT-Clients in deinem iobroker, wenn Du verschiedene MQTT-Broker erreichen willst.
@mickym sagte in Victron MP2 MQTT Anbindung:
ein GX Gerät (was auch immer das ist) i
das ist ein Gerät auf dem das Venus OS läuft und die Zentrale eines Victron Systems ist.
-
@mickym sagte in Victron MP2 MQTT Anbindung:
ein GX Gerät (was auch immer das ist) i
das ist ein Gerät auf dem das Venus OS läuft und die Zentrale eines Victron Systems ist.
@homoran sagte in Victron MP2 MQTT Anbindung:
@mickym sagte in Victron MP2 MQTT Anbindung:
ein GX Gerät (was auch immer das ist) i
das ist ein Gerät auf dem das Venus OS läuft und die Zentrale eines Victron Systems ist.
Gut und wenn ich mehrere Victron Systeme habe (weiß nicht ob das Sinn macht :grin:) - dann habe ich halt auch mehrere GX Geräte und somit auch mehrere MQTT-Broker. ;)
-
@mickym eine Frage noch.. es braucht immer einen Broker… Client <=> Client geht nicht, oder?
@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

-
@ben1983 sagte in Victron MP2 MQTT Anbindung:
ja, ich dachte ich richte einfach den Adapter als Broker ein und bekomme von allen die Daten
Na ja dann hast Du noch nicht richtig verstanden wie MQTT funktioniert. Ich hab da aber auch schon so oft was zu geschrieben, dass ich es inzwischen echt müde bin.
Hier mal ein paar Grundlagen; https://forum.iobroker.net/post/701654
Auch dass das Venus OS mit dem Victron (ich selbst hab keins) als Broker fungiert, wurde hier: https://forum.iobroker.net/post/803603
auch bis zum Excess durchgekaut.Vielleicht nimmst Dir einfach mal bissi Zeit und liest um zu verstehen, wie mqtt funktioniert.
@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. -
@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.
-
@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:

-
@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/keepaliveSobald einmal gepublished dann taucht der DP im Adapter auf. Du musst ihn nur unbestätigt beschreiben
-
@fichtendickicht mit dem Mqtt Explorer publishst du einfach ein topic. In dem Fall von Ben wäre das Topic
R/c0619ab24727/keepaliveSobald 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?
-
@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 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

-
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" ;-) -
@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.
-
@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.
-
@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.


