NEWS
MQTT oder MQTT-Client
-
Hallo, ich möchte Daten aus ioBroker an einen Mosquitto-MQTT-Broker übergeben bzw. abrufen. Ich habe dazu dem MQTT als Client installiert. Die Werte die ich übergeben möchte schreibe ich per Script in den Ordner MQTT und subscribe die Werte.
Bsp.:Code hierzu:
on({ id: [].concat(['alias.0.Verbrauch.Strom.HWR.Strom_Bezug']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; setState('mqtt.0.strom.stromzaehler.bezug' /* strom/stromzaehler/bezug */, (obj.state ? obj.state.val : "")); });
Nun habe ich Posts gefunden, dass der Adapter "MQTT-Client" die Möglichkeit bietet, in den Einstellungen (Zahnrad) des Datenpunktes das subscriben in MQTT zu aktivieren. Das würde mir die Arbeit erleichtern.
Auf der anderen Seite gibt es Posts, die von einem veralteten Adapter schreiben und auf den neuen (MQTT Broker/Client" hinweisen.
Die Frage ist: kann ich den MQTT-Client einsetzen? Wie lange wird er noch unterstützt oder wird in absehbarer Zeit nur noch der neue weiterentwickelt? Wie gesagt, ich habe einen eigenen MQTT Server auf einer eigenen Maschine.
Was ratet ihr mir?
-
@martybr sagte in MQTT oder MQTT-Client:
Die Frage ist: kann ich den MQTT-Client einsetzen? Wie lange wird er noch unterstützt oder wird in absehbarer Zeit nur noch der neue weiterentwickelt?
wiso ???sollte das passieren ??
-
Ich verstehe dein Problem gerade nicht.
Du hast den MQTT-Adapter gewählt den man als Broker oder Client laufen lassen kannst. Diesen als Client zu deinem vorhandenen Mosquitto-Broker. So habe ich das auch. Und zwar über/
, also alles was auf dem Mosquitto läuft.Und wen ich auf einen der MQTT-Datenpunkte reagieren will nutze ich genau wie du die "Falls Objekte" aka
on()
Anweisung, das ist ja die Art wie man in ioBroker / JavaScript auf Änderungen von Datenpunkten reagiert. -
@bananajoe
Der MQTT-Client bietet die komfortable Lösung, die Datenpunkte die ich publizieren möchte, direkt im Datenpunkt zu subscriben. Das funktioniert vergleichbar zu SourceAnalytix oder anderen Adaptern.
Im Adapter muss ich dazu jeweils ein Script erstellen. -
@arteck
Es gibt ja die beiden Adapter "MQTT Server/Client" und den "MQTT-Client". Im Forum finde ich in letzter Zeit nur Beiträge Tim ersten Adapter, daher die Rückfrage. Da ich noch am "experimentieren" bin, kann ich noch ohne großen Aufwand vom ersten zum zweiten Adapter wechseln. -
@martybr sagte in MQTT oder MQTT-Client:
Der MQTT-Client bietet die komfortable Lösung, die Datenpunkte die ich publizieren möchte, direkt im Datenpunkt zu subscriben. Das funktioniert vergleichbar zu
Ich verstehe dich immer noch nicht. Was hast du denn im Adapter eingestellt? per Voreinstellung subscribted der alles. was auf dem Broker läuft. Sehen kann der natürlich nur dinge wo schon mal was gekommen ist
Edit: Default siehst du also jede Änderung auf dem Broker sofort als Datenpunkt unterhalb von
mqtt.x.
Natürlich nur von Dingen die schon mal was gepublisht haben.
Neue Datenpunkte kannst erstellen und danach nutzen. Ich nutze das genauso mit einem Mosquitto und habe etwas bessere Erfahrungen damit gemacht neue Topics perSendTo
anzulegen, soll aber egal sein.Ich verstehe nicht was du da noch extra subscriben willst.
-
@bananajoe sagte in MQTT oder MQTT-Client:
Ich verstehe nicht was du da noch extra subscriben willst.
So, wie ich das verstehe geht es um das Publishen, im Beispiel ist es
alias.0.Verbrauch.Strom.HWR.Strom_Bezug
. Dazu werden die Daten von ihm nachmqtt.0. ..
"kopiert". Der Adapter sorgt dann dafür, dass die Werte an den Broker gehen.In der Tat wäre hierfür wohl der MQTT client-Adapter die einfachere Variante, da man hier pro DP festlegen kann, mit welchem (frei konfigurierbaren) Topic die Daten published werden sollen.
@MartyBr: Die entscheidende Frage, die @arteck schon stellte: warum gehst du davon aus, dass einer der Adapter nicht weiter gepflegt wird? Siehst du irgendwo eine Aussage eines Entwicklers dazu?
-
@marc-berg Nein, ich sehe hierzu keine Aussage. Im Forum sehe ich aber überwiegend nur den Einsatz des kombinierten Adapters MQTT Broker/Client. Ich möchte nur, so weit es eben geht, sicherstellen, dass ich einen Adapter benutze, der auch langfristig gepflegt wird. Da ich gerade mit dem Einsatz von MQTT beginne, kann ich noch ohne großen Aufwand auf dem MQTT Client wechseln.
Vielleicht eine Frage dazu:
Gibt es außer der Github Seite Doku zu dem Adapter? Gerade zu den Einstellungen? Wenn ich nach MQTT-Client suche, dann finde ich zu 99% nur Seiten und Beiträge zu dem kombinierten Adapter. -
@martybr sagte in MQTT oder MQTT-Client:
Gibt es außer der Github Seite Doku zu dem Adapter?
Was anderes kenne ich nicht. Unter https://www.iobroker.net/#en/adapters/adapterref/iobroker.mqtt-client/README.md liegt ja auch nur die Readme.
-
@martybr sagte in MQTT oder MQTT-Client:
Wenn ich nach MQTT-Client suche, dann finde ich zu 99% nur Seiten und Beiträge zu dem kombinierten Adapter.
Der ioBroker.mqtt / https://github.com/ioBroker/ioBroker.mqtt ist sicherlich der populärere. Wenn du auf Github schaust wird der zum einen immer noch angepasst an neuere JavaScript und NodeJS Versionen, zum anderen siehst du dort 33 Contributors unter den sich auch viele aus dem "Who is who" der ioBroker Entwickler befinden.
Das es nur wenig bis keine neuen Features bei dem Adapter gibt heißt ja nicht zwangsläufig das der nicht weiter entwickelt wird. Ich wüsste jetzt auch nicht was da noch fehlen sollte, die Updates beim Mosquitto sind zur Zeit auch nur ich Fehlerbehandlungen oder Sicherheitslücken.
Wenn man einen Adapter hat der nur von einer Person gepflegt wird und diese das dann nicht kann oder will, kann das natürlich ein Problem sein. Das man dann immer noch angehen kann.
Edit: Es gibt eine Seite wo man die Anzahl der Installationen eines Adapters sehen kann, die finde ich gerade nur nicht.
Das wäre sonst auch ein Anhaltspunkt -
-
@bananajoe
@Marc-Berg
Danke euch allen. Ich habe nun die Doku von @Homoran und die von @smile gefunden:https://forum.iobroker.net/topic/24020/mqtt-grundlagen-einrichtung-apps
Mein Gefühl sagt auch, bei dem kombinierten Adapter zu bleiben. Die Mehrarbeit bleibt im Rahmen.
-
@martybr sagte in MQTT oder MQTT-Client:
Mein Gefühl sagt auch, bei dem kombinierten Adapter zu bleiben
Du könntest ja noch den Zwischenweg gehen und einzelne States über diese Einstellung hier zusätzlich zu mqtt.0.* publishen.
-
Na für einzelne States - würde ich den MQTT-Client nutzen- Das mit dem Publishen über Wildcards macht für einzelne States keinen Sinn. Der Grund warum die meisten den anderen Adapter nutzen (ich auch) - weil sie mosquitto also Broker nutzen und dann den Client/Server Adapter als Spiegel.
Ich würde sogar beide Adapter nutzen, wobei ich halt sowieso nur mit Node-Red in mqtt publishe, deswegen macht der mqtt-Client für mich keinen Sinn.
-
@mickym @Marc-Berg
Ihr macht es mir wirklich schwerBei mir geht es um zwei Werte vom Stromzähler und 10 Werte Temperatursensoren (CuXD).
Ich schalte testweise mal den MQTT-Client an und schaue, ob ich hier weiterkomme.
-
@martybr Was ist denn schwe daran. Mit dem MQTT-Client kannst Du über das Zahnrad einzelne States publishen. Den anderen Adapter kannst Du als Spiegel nehmen vom Mosquitto nehmen - musst Du aber nicht.
Im mqtt-client gibst Du nur Deinen Broker ein in den Adaptereinstellungen:
Ansonsten kannst Du mit dem Zahnrad mit dem mqtt-Client viel feiner steuern:
Das topic flexibel gestalten, nur Änderungen publishen wenn Du willst - definieren, ob Du publishen oder subscriben willst (beides würde ich Dir nicht empfehlen - habs aber noch nicht ausprobiert, ob das dann mit dem ACK Flag funktioniert).
-
@mickym
Ich habe das mal so eingetragen, nun werden auch die Werte angezeigt: -
@martybr Wie gesagt ich würde NICHT beides ankreuzen - sundern nur publishen - oder erhälst Du Deine Werte über mqtt? - Wenn nicht, dann mach den Haken weg.
-
@mickym
Bisher sah das sauber aus. Ich schalte mal einen DP auf deine vorgeschlagene Einstellung. -
@mickym Eine Frage noch: Die Temperaturwerte bekomme ich über den MQTT. Soll ich hier "abonnieren" anklicken?