NEWS
MQTT Adapter SetState wird nicht verarbeitet
-
Hallo,
ich habe den MQTT Adapter installiert und sende damit Nachrichten an das Programm AlsavoCtrl von Strandborg in Github, um meine Pool Wärmepumpe zu steuern.
Das Topic zum Steuern Ein/Aus ist "mqtt.1.homie.alsavo.controls.power.set". Das ist ein Boolean Typ. Wenn ich den Wert manuell im Objekt Browser oder per Javascript auf "false" setze erwarte ich, dass die Pumpe ausgeschaltet wird. Das tut sie aber NUR wenn ich die Instanz mqtt.1 neustarten, im laufenden Betrieb funktioniert es nicht. Komisch...
Auf der Gegenseite kommt die Nachricht auch an und die Status Informationen von der Gegenseite werden auch sauber übertragen...
Wie kann ich mich dem Problem nähern?
Das Log der Gegenseite:

-
Hallo,
ich habe den MQTT Adapter installiert und sende damit Nachrichten an das Programm AlsavoCtrl von Strandborg in Github, um meine Pool Wärmepumpe zu steuern.
Das Topic zum Steuern Ein/Aus ist "mqtt.1.homie.alsavo.controls.power.set". Das ist ein Boolean Typ. Wenn ich den Wert manuell im Objekt Browser oder per Javascript auf "false" setze erwarte ich, dass die Pumpe ausgeschaltet wird. Das tut sie aber NUR wenn ich die Instanz mqtt.1 neustarten, im laufenden Betrieb funktioniert es nicht. Komisch...
Auf der Gegenseite kommt die Nachricht auch an und die Status Informationen von der Gegenseite werden auch sauber übertragen...
Wie kann ich mich dem Problem nähern?
Das Log der Gegenseite:

-
@vippis Wahrscheinlich schicktst Du den Wert aus Deinem JS nicht unbestätigt (ACK=false) und hast mit Retain rumgespielt. Ich empfehle Dir alle Haken zu deaktivieren in den mqtt-Einstellungen.
-
Ich löse gleich mal auf. Ja es funktioniert jetzt mit JS wenn ich sendTo nutze statt setState.
sendTo('mqtt.1', 'sendMessage2Client', { topic: 'homie/alsavo/controls/power/set', message: 'false', retain: false });Funktioniert!
@vippis Das ist aber einfach nur ein alternativer Weg. Mit setState muss es genauso klappen. Teil gerne mal deinen Code und die Instanzeinstellungen.
-
@vippis Das ist aber einfach nur ein alternativer Weg. Mit setState muss es genauso klappen. Teil gerne mal deinen Code und die Instanzeinstellungen.
Gerne, hier einmal die Objekte:

Hier die MQTT Einstellungen für Instanz mqtt.1:


Da ich per JS ohne Retain Flag sende, habe ich auch mal
probiert, aber das funktioniert auch nicht.Komisch ist auch, dass die Instanz die ganze Zeit das gelbe Symbol zeigt, das liegt wohl daran, dass das MQTT Format von AlsavoCtrl nicht ganz dem erwarteten Format des Adapters entspricht (Homie Konvention):

Die Connectet Liste ist leer:

-
Gerne, hier einmal die Objekte:

Hier die MQTT Einstellungen für Instanz mqtt.1:


Da ich per JS ohne Retain Flag sende, habe ich auch mal
probiert, aber das funktioniert auch nicht.Komisch ist auch, dass die Instanz die ganze Zeit das gelbe Symbol zeigt, das liegt wohl daran, dass das MQTT Format von AlsavoCtrl nicht ganz dem erwarteten Format des Adapters entspricht (Homie Konvention):

Die Connectet Liste ist leer:

-
@vippis lies dir noch mal den 2. Beitrag von @mickym durch.
Wenn du einSetStatean einem MQTT-Datenpunkt machst (also unterhalb vonmqtt.0.xxxodermqtt.1.xxx) und das mit dem Bestätigung / ACK Flag, passiert genau nichts. Du musst immer unbestätigt hineinschreiben. Dann reagiert der Adapter, sendet den Wert und schreibt den Wert noch mal bestätigt in den gleichen Datenpunkt (womit du überprüfen kannst das er das registriert und reagiert hat).Falls du Blockly nutzt musst du "steuere" nehmen, NICHT "aktualisiere"
Edit wegen Rechtschreibung
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden