NEWS
[gelöst] Victron MP2 MQTT Anbindung
-
Hallo, hat schon mal jemand einen Multiplus 2 GX an den ioBroker via MQTT angebunden?
Wenn ich den Adapter auf Server/Broker einstelle , bekomme ich gar keine Daten und als Client nur die Portalnummer und ein keepalive value.
Dieser steht auf 1.
Wie muss man den. Den Adapter einstellen?
Broker?
Der weiteren…. Muss ich erst das Keepalive irgendwie beschreiben?Ich habe gelesen, man soll auf diese Topic was schreiben:
„ R/<your VRM-Portal ID>/keepalive“
Aber wo gebe ich an, dass er was schreiben soll und wo hin?
Stehe bissi auf dem Schlauch.Subscribt eigentlich ein Client seinen Wert selbst, wenn dieser geschrieben wird?
Oder wie geht das? -
@ben1983 du publishenst einen Wert wenn du iden Datenpunkt unbestätigt beschreibst. Wenn Victron selbst als Broker dient, subscribst Du halt alles mit der Hash Wildcard.
-
@mickym ich habe schon mehrer aussagen gehört… das es ein Broker wäre, dann ein Client…
Fakt ist, dass ich nur etwas empfange, wenn ich den Adapter als Client konfiguriere und die ip vom victron angebe.
Das Problem ist ja, dass man auf eine topic schreiben soll (damit der victron alles published) die der Adapter noch gar nicht kennt. Wie soll ich dann da rein schreiben? -
@ben1983 na du kannst doch im mqtt Adapter diesen keepalive Datenpunkt mit ACK=false beschreiben. Du programmierst doch gerne mit Javascript- also schreib da halt immer true in den keepalive Datenpunkt
Wenn der keepalive Datenpunkt noch nicht da ist, dann halt manuell anlegen. Wenn der Broker was sendet tauchen die Datenpunkte automatisch auf.
-
@mickym ach den kann man einfach anlegen?
Habe in nem anderen Beitrag gesehen, dass die Konfiguration als Client besser wäre…
Anfängerfrage: geht das Client <-> Client ohne Broker?
Ist der Shelly Adapter auch ein client? -
@ben1983 der shelly Adapter verhält sich wie ein Broker. Deswegen Clients können mehrfach auf Port 1883 laufen, aber keine Broker. Kommt also nicht mit dem Shelly Adapter in Konflikt. Außerdem läuft der glaube inzwischen standardmäßig auf 1882.
In dem <Fall ist aber der Client/Server <Adapter als Client besser, da du ja gar nicht weißt welche topics von Victron gepublished werden.
-
@ben1983 sagte in Victron MP2 MQTT Anbindung:
Ich habe gelesen, man soll auf diese Topic was schreiben:
„ R/<your VRM-Portal ID>/keepalive“Für das topic halt eine Folder R, darin Folder mit der Id und dann einen Datenpunkt keepalive, den Du beschreibst.
Victron subscribed automatisch vordefinierte Topics. Topics die Du publishen willst musst du immer selbst anlegen, das macht nie der subscriber, sonst gäbe es Endlosschleifen. ACK-Flags kenn MQTT nicht. -
@ben1983 sagte in Victron MP2 MQTT Anbindung:
einen Multiplus 2 GX
der sollte sich doch so verhalten wie gedes GX Gerät, also auch wie ein Cerbo.
Dort ist es IMHO ein Broker.Greifst du auf das GX oder auf die Cloud via VRM zu?
-
@homoran auf das GX Gerät…. Ist das jetzt ein Client oder Broker… müsste ja eigentlich ein Client sein… wenn bspw. 3 Stück im Netz sind.
Aber ich kann den Adapter immer als Client konfigurieren mit der ip des gewünschten Ziel Clients und brauche dazu keinen Broker, oder?
-
@ben1983 sagte in Victron MP2 MQTT Anbindung:
das GX Gerät…. Ist das jetzt ein Client oder Broker
@homoran sagte in Victron MP2 MQTT Anbindung:
ist es IMHO ein Broker.
-
@ben1983 Nein das hat doch mit der Anzahl nichts zu tun. Kann doch jeder Broker sein.
-
-
@ben1983 Du kannst doch mehrere Geräte im Netz haben, die auf den gleichen Port hören? Du kannst nur nicht auf EINEM Gerät mehrere Programme haben, die auf einen PORT hören. Du brauchst halt im Gegenteil für jede Maschine in Deinem iobroker eine eigene Client Instanz. Jeder Client verbindet sich dann ja über verschiedene IPs mit einem anderen Broker. Es gibt die Möglichkeit, wenn DU mosquitto verwendest - einen Broker zu definieren, der als Brücke dienen kann, aber das ist dann komplexer aufzubauen.
-
@mickym ja, ich dachte ich richte einfach den Adapter als Broker ein und bekomme von allen die Daten… wenn ich den Shelly Adapter deaktiviere und den Adapter Port auf 1882 stelle bekomme ich die ja auch alle.
Naja so ganz habe ich es noch nicht geschnallt warum das bei dem victron nur als Client geht.Egal.
Was mir aber aufgefallen ist:
Auf L3 werden nicht die Werte von L3 ausgegeben, sondern von der Gesamtleistung. -
@ben1983 sagte in Victron MP2 MQTT Anbindung:
also dürfte im Netz mit dem gleichen Port nicht mehr Geräte sein, weil die dann alle auf dem Broker vom gx gerät gehen?
warum??
wenn du verschiedene MQTT Geräte hast, weist du denen einen Broker zu.
Und alle Geräte nutzen denselben Port.nur auf einem Gerät darf derselbe Port nicht für verschiedene Aufgaben genutzt werden.
edit: hat @mickym ja wchon geschrieben.
-
@ben1983 sagte in Victron MP2 MQTT Anbindung:
ich dachte ich richte einfach den Adapter als Broker ein und bekomme von allen die Daten…
ist ja auch so, wenn alle anderen Clients sind und den ioBroker Server als Broker-Adresse nutzen.
Aber der GX ist ein Broker
-
@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.
-
-
@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 ok verstanden…. Allerdings sendet das GX gerät ja Daten…. Liegt es daran, das ich „#“ subscibt habe?
Wenn das so ist, dass er nichts sendet, es sei denn es wäre subscribt, warum dann ein keepalive?