NEWS
Steuerung der Zwave JS-UI mit MQTT
-
Ich versuche, eine eigenständige Zwave JS-Benutzeroberfläche über MQTT von ioBroker aus zu steuern. Ich sehe, dass ich separate /SET-Themen zum Einstellen von Werten in den Z-Wave-Geräten benötige. Der MQTT-Broker hat Optionen nur dafür, aber ich bekomme es nicht zum Laufen. Ich habe die Einstellungen auch gemäß den empfohlenen Einstellungen vorgenommen.
Ich habe einen Fibaro WallPlug, den ich ein-/ausschalten möchte:
und im MQTT Explorer sieht es so aus ... anscheinend genau so, wie es die Zwave JS-Benutzeroberfläche will. Die Änderung wird jedoch im SmartPlug nicht wirksam
Ich kann nicht herausfinden, was ich falsch mache?
-
@tnesheim Mach bitte alle Haken weg in den optionen. Du machst mehr kaputt, also dass Du ganz machst.
Dann stelle bitte den Experten Modus ein.
Das ist der Kopf, der muss grün sein.
Dann gehst du auf die Zeile mit endpoint_0 und erstellst einen neuen Datenpunkt. Da Du "leider" nur Datenpunkte in "foldern" erstellen kannst, muss man einen Trick anwenden.
Wenn du auf einem folder bist, dann sollte das + aktiv sein (Expertenmodus vorausgesetzt).
Anschliessend trägst Du dann als Datenpunkt den verbleibenden Pfad ein:
Also: targetValue.set
-
@mickym Danke! Ja, ich habe festgestellt, dass es beim manuellen Erstellen des /SET- (oder .SET-)Topics einwandfrei funktioniert. Was ich nicht verstehe, ist, dass die Einstellung (in Gelb)
genau(?) dasselbe mit dem Topic machen sollte, aber anscheinend gibt es Unterschiede in der Funktionsweise. Der Nachteil beim Erstellen des .SET-Topic ist, dass es sich um eine manuelle Aufgabe für 80 Geräte handelt. Außerdem könnte es in VIS zu einigen Schwierigkeiten führen, wenn Werte angezeigt werden, die sowohl eingestellt als auch gelesen werden müssen, z. B. meine Klimaanlage, die von mehreren Quellen gesteuert werden kann.
Hier denke ich, dass ein gemeinsames Set/Get-Topic am besten wäre?
-
@tnesheim
Wenn du die Option "Use different topic names for set and get" aktivierst benötigst du das .SET Topic nicht es genügt dann das "targetValue" zu steuern.
Das mit SET geschieht dann automatisch im Hintergrund.Ich habe dass über einen ALIAS Datenpunkt verknüpft.
-
@tnesheim Gut Du kannst es mit dem Automatismus versuchen, obwohl ich da immer Schwierigkeiten habe, ob das so funktioniert, da Du Deine Werte ja ggf. auch nicht über get bekommst? Da dieser Haken keine mqtt Funktion ist und ich mit diesem Adapter als Broker schon so manche Merkwürdigkeiten erlebt habe, würde ich mich auf diesen Haken nicht verlassen, zudem andere Geräte, die mqtt sprechen nicht über die set Option arbeiten, sondern eigene topics für Kommandos haben. In diesem Fall benötigst Du dann einen extra Port und eine neue Instanz. Wenn Du keine weiteren Geräte über mqtt steuern willst bzw. nur über andere Adapter gehen willst, ist das natürlich kein Argument.
Wenn Dir das zu umständlich ist, die topics zu erstellen, dann kannst Du die auch bei Bedarf über ein Script und mqtt Publish erstellen. Das ist ja eine einmalige Sache.Wenn ein Datenpunkt gleichzeitig zum Lesen und Schreiben gedacht ist, dann wird der iobroker das normalerweise über das ACK Flag regeln. (VIS sendet immer alles ohne ACK Flag, also unbestätigt) Sowas kennt aber mqtt nicht, deswegen gibt es dieses set Flag.
-
Danke für Ihre Antworten. Ich möchte wirklich, dass das System so funktioniert, wie Sie es eingerichtet haben, @peppino, aber ich schaffe es nicht, es so zum Laufen zu bringen. Können Sie bitte Ihre Einstellungen auf beiden Seiten anzeigen? Ich schätze, die Alias-Verbindung dient nur der Bequemlichkeit?
@mickym, ja, ich stimme zu, der Broker scheint manchmal etwas schwierig zu handhaben zu sein. In diesem speziellen Fall kann ich den Unterschied zwischen dem „anderen Topic für Set/Get“ und dem manuellen Erstellen des .set Topic nicht erkennen … beide erscheinen (anscheinend) identisch im MQTT Explorer. -
@tnesheim
Die Alias Adressen verwende ich wenn Änderungen an der Datenstruktur/Schnittstelle vornehme diese schnell durchführen kann, das war bereits der Fall wie ich vom zwave2-Adpater auf mqtt und zwave-js ui umgestiegen bin.Hier meine Einstellungen:
-
@peppino Ich vermute, dass es hier auch einen MQTT-Broker gibt, da sowohl die Zwave JS-Benutzeroberfläche als auch der MQTT-Snapshot ein Client sind? Spiegeln die Einstellungen auf dem Broker die Einstellungen auf dem Client wider?
Die Verwendung von Alias erscheint mir durchaus sinnvoll, das werde ich wohl auch tun!
-
@tnesheim
Ich verwende: zwave-js-ui <--> eclipse-mosquitto <--> iobroker-mqtt-adapter -
@peppino said in Steuerung der Zwave JS-UI mit MQTT:
eclipse-mosquitto
Danke! Die Tatsache, dass Eclipse Mosquitto in der Schleife ist, kann wahrscheinlich erklären, warum dies bei Ihnen funktioniert und bei mir nicht, da ich versucht habe, ioBroker MQTT im „Broker-Modus“ zu verwenden.
Haben Sie spezielle Einstellungen im Eclipse Mosquitto Broker oder haben Sie nur in Ihrem ioBroker MQTT-Client die „separaten Topics für Set/Get“ aktiviert?
Ist der Grund, warum Sie Eclipse Mosquitto verwenden, dass dies die einzige Möglichkeit ist, es zum Laufen zu bringen, oder könnte ein ähnliches Setup mit einer separaten Instanz von Broker und Client in ioBroker funktionieren?
-
Es funktioniert jedoch, wenn ich einen ioBroker MQTT-Broker erstelle (mit unterschiedlichen Themen zum Deaktivieren von Set/Get) und einen MQTT-Client erstelle (mit unterschiedlichen Themen zum Aktivieren von Set/Get).
Dies impliziert, dass etwas mit dem aktuellen ioBroker MQTT Broker nicht stimmt ... Ich habe dies als Problem gemeldet, also schauen wir mal, was passiert.