NEWS
[gelöst] Victron MP2 MQTT Anbindung
-
@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? -
@mickym ich habe eben gedacht nur ein Broker ist möglich, da er den Port belegt. Deswegen ist der Shelly standardmäßig auf 1882
-
@ben1983 sagte in Victron MP2 MQTT Anbindung:
Liegt es daran, das ich „#“ subscibt habe?
Ja - jeder Broker sendet an alle Clients die ein topic oder mehrere subscribed haben, die Daten die es interessiert. Und wenn Du an allem interessiert bist machst Du ein #.
Ein Broker verwaltet also nur die Kommunikation an die Clients und an diese sendet er auch aktiv.
-
@ben1983 sagte in Victron MP2 MQTT Anbindung:
@mickym ich habe eben gedacht nur ein Broker ist möglich, da er den Port belegt. Deswegen ist der Shelly standardmäßig auf 1882
Das hat der Entwickler einfach mal gemacht, da leider !!! viele Adapter keinen externen Broker erlauben (zigbee2mqtt ist da die erste löbliche Ausnahme) und selbst einen Broker simulieren (shelly, sonoff, mqtt, owntracks). In diesem Fall kommt es aber zu einem Port Konflikt, da alle Adapter ja auf der gleichen Maschine laufen. Wenn also ein Gerät einem Broker auf der IP-Adresse x unter dem Port 1883 sendet, wer soll denn bitte darauf antworten? Sonoff, shelly oder wen hätten sie denn gerne?
Also JA - auf EINEM Gerät mit EINER IP-Adresse kann es nur EINEN Broker geben. In einem NETZ kann es aber beliebig VIELE Broker mit jeweils EIGENER IP-Adresse geben. Es ist also ganz generell in einem TCP/IP Netz so, dass auf der Empfängerseite die Eindeutigkeit durch IP-Adresse und Port durch ein bestimmtes Programm oder Prozess gegeben sein muss!
-
@mickym ah ok. Top erklärt. Danke