NEWS
StateChange über MQTT
-
Hi zusammen,
ich habe heute erste Gehversuche mit iobroker angestellt. Aktuell hänge ich an folgendem Problem:
-
Ich habe den Adapter "TR 064" installiert. Das hat auch problemlos geklappt. Ich kann den GuestWlan-Status (tr-064.0.states.wlanGuest) auslesen und über die admin-view schreiben.
-
Dann habe ich den Adapter "MQTT Adapter" installiert. Soweit auch in Ordnung - ich kann mich über mein Client Tool MQTT.fx verbinden und auch die Status-Änderungen des Guest-WLANs verfolgen.
-
Wenn ich nun dort aber einen "Publish" abgesetze und tr-064.0.states.wlanGuest auf true setzen möchte, macht er dies auch in der admin-view (dort ist der Wert dann "true") aber nicht in der Fritzbox.
Habe ich irgendwelche Berechtigungen vergessen?
-
-
Hier noch mal dargestellt:
Die unteren beiden Zeilen wurden per MQTT gesetzt (Quelle mqtt.0). Dies hat zwar den Wert auf "true" oder "false" gesetzt, aber keine Änderung auf der Fritzbox ausgelöst.
Danach das gleiche durchgeführt über die Admin-Oberfläche (Quelle admin.0). Hier kam kurze Zeit später auch eine Bestätigung von der Fritzbox (tr-064.0). Alles geht.
Ich verstehe nicht, was den Unterschied zwischen "per MQTT gesetzt" und "per Adminoberfläche gesetzt" ausmacht. Warum verhält es sich so anders??
-
Vermutlich setzt der MQTT Adapter ack auf true. Du kannst dir das in etwa so vorstellen:
ack = false => SOLL
ack = true => IST
-
Hallo Pman,
Danke für den Tipp! Es ist tatsächlich so. Ich habe nun einen zusätzlichen Mosquitto installiert und mit dem Plugin MQTT-Client verbunden. Mit diesem kann man feingranular definieren, wann ein ACK gesetzt werden soll und wann nicht.
Nun kann ich das Gäste-WLAN einschalten. Soweit funktioniert es. Nur das ausschalten geht nicht. Den Grund habe ich auch schon gefunden: Es liegt daran, dass MQTT-Client "true" und "false" als String in das Feld schreibt, was in beiden Fällen den boolschen Wert true ergibt. Gibt es die Möglichkeit per MQTT boolsche Werte zu senden?
-
Ok .. habs .. einfach 0 oder 1 senden…
Thanks, thats it!
-
Oh Sorry, hatte das hier aus den Augen verloren. Gut, dass du schon die Lösung hast!
Vorrausgesetzt das zu beschreibende Object hat den Typ Boolean (auf Deutsch: Logikwert), und nicht etwa Mixed, sollten "true" und "false" funktionieren. Oder du hast einen Bug gefunden. :?: