NEWS
MQTT Adapter sendet keine Befehle
-
Hallo Schwarm,
ich habe mir den MQTT Adaper installiert um die Sonoff B1 sowie Arilux LC-06 zu steuern. Bei beiden habe ich sowohl Tasmota sowie ESPURANA getestet.
Die beide Gerät liefern wunderbar ihr MQTT werte richtung IOBroker und sobald man was am Gerät ändert werden die Daten sofort an den IObroker übertragen.
Nur leider funktioniert der umgekehrte Weg nicht. Das heist es wird nur ein einziger Wert gesendet (im Bild Lampen). Dadurch wird die Lampe ein und ausgeschaltet. Alle Befehle die einen Ordner tiefer liegen werden nicht gesendet. (Wenn man sich per Telnet drauf stellt sieht man auch das tatsächlich nichts empfangen wird).
Ich habe mir extra einen zweiten Raspberry organisiert iobroker frisch installiert und nur den MQTT Adapter installiert und das verhalten ist genau das gleiche.
4677_mqtt.jpg -
Zeigst du uns bitte mal die Konfiguration deines MQTT-Adapters?
-
Log ist auf Debug um alles abzufangen
4677_mqtt.jpg
4677_mqtt2.jpg -
Siehst du denn dann im Log was dass die Änderungen überhaupt gesendet werden?
Die Einstellungen sehen erstmal nicht schlecht aus. Wobei du mal testen könntest wenn du auf der zweiten Einstellungsseite alle Haken rausnimmst. Bei mir funktioniert es jedenfalls wenn ich keine Haken drin habe.
-
Ich habe mal alle Haken heraus genommen. Keine Änderung.
Stehe "ich in der ersten Ebene" wie die Makierung im Bild bei Lampen und ändere den Wert zwischen 0 und 1 wird der Wert gesendet und die Lampe geht an und aus.
Log:
mqtt.0 2018-01-14 07:57:35.668 debug stateChange mqtt.0.Lampen: {"val":"0","ack":false,"ts":1515913055663,"q":0,"from":"system.adapter.admin.0","lc":1515912967601}
mqtt.0 2018-01-14 07:57:35.667 debug redis pmessage io.mqtt.0.* io.mqtt.0.Lampen {"val":"0","ack":false,"ts":1515913055663,"q":0,"from":"system.adapter.admin.0","lc":1515912967601}
Will ich irgendetwas anderes ändern zb die Farben in den Channels wird das nicht gesendet bzw es kommt nicht an der Lampe an.
Log:
mqtt.0 2018-01-14 07:57:57.056 debug onStateChange mqtt.0.RGBLED.Ankleide_Licht.channel.4: {"val":255,"ack":false,"ts":1515913077051,"q":0,"from":"system.adapter.admin.0","lc":1515913077051}
mqtt.0 2018-01-14 07:57:57.056 debug stateChange mqtt.0.RGBLED.Ankleide_Licht.channel.4: {"val":255,"ack":false,"ts":1515913077051,"q":0,"from":"system.adapter.admin.0","lc":1515913077051}
mqtt.0 2018-01-14 07:57:57.056 debug redis pmessage io.mqtt.0.* io.mqtt.0.RGBLED.Ankleide_Licht.channel.4 {"val":255,"ack":false,"ts":1515913077051,"q":0,"from":"system.adapter.admin.0","lc":1515913077051}
Das kann ich verifizieren wenn ich mit Telnet auf der Lampe stehe. Es kommt in dem Falle wirklich nichts an.
-
Von Seitens ioBroker wird da aber IMO schon was gesendet:
` > Will ich irgendetwas anderes ändern zb die Farben in den Channels wird das nicht gesendet bzw es kommt nicht an der Lampe an.Log:
mqtt.0 2018-01-14 07:57:57.056 debug onStateChange mqtt.0.RGBLED.Ankleide_Licht.channel.4: {"val":255,"ack":false,"ts":1515913077051,"q":0,"from":"system.adapter.admin.0","lc":1515913077051}
mqtt.0 2018-01-14 07:57:57.056 debug stateChange mqtt.0.RGBLED.Ankleide_Licht.channel.4: {"val":255,"ack":false,"ts":1515913077051,"q":0,"from":"system.adapter.admin.0","lc":1515913077051}
mqtt.0 2018-01-14 07:57:57.056 debug redis pmessage io.mqtt.0. io.mqtt.0.RGBLED.Ankleide_Licht.channel.4 {"val":255,"ack":false,"ts":1515913077051,"q":0,"from":"system.adapter.admin.0","lc":1515913077051}* `
Ich hätte die vage Vermutung dass einer der Beteiligten die Punkte in der Unterstruktur nicht mag. Ich erinnere mich dunkel dass es hier im Forum dazu schon mal was gab. Vielleicht kannst du schon mal suchen - ich hab erst heute abend wirklich Zeit. Hab gerade mal bei mir geschaut - ich hab in MQTT keine Unterstrukturen verwendet, von daher könnte das ein Grund sein…
-
Ja vom Iobroker wird gesendet aber wenn ich in der Console auf dem Ziel stehe sehe ich das nichts ankommt. Ich brauche die unterpunkte auch nicht, aber die werden automatisch so angelegt.
Habe schon mal probiert die in die Wurzel zu kopieren oder neu anzulegen aber klappt leider nicht.
-
Welche Version des MQTT-Adapters hast du denn?
In einem anderen Thread hier hat es bei einem User geholfen dass er den MQTT-Adapter komplett de- und wieder neuinstalliert hat…
-
Version 1.4.1
Ich habe zu meinem Raspberry mit iobroker noch einen neuen Raspberry genommen und iobroker installiert danach nur den MQTT Adapter installiert. Selbes Problem. Ich sag mal es liegt am MQTT Adapter. Ist der Programmierer hier vertreten?
-
Hmmm - viele Ideen hab ich auch nicht mehr.
Aber schau dir vielleicht mal noch diesen Thread http://forum.iobroker.net/viewtopic.php … ack#p17842 an. Das könnte einen Zusammenhang haben.
-
Hi,
eine neue Vermutung ist das Objekte mit "mixed" als Typ vllt noch korrekt übertragen werden.
Also bitte wenn jemand Probleme hat das Daten nicht gesendet werdeneinmal das "ack"-Thema checken und auch was der Datentyp des betroffenen Objekts ist. Wenn es "mixed" ist dann bitte mal auf einen "echten" Datentyp setzen und neu versuchen. Dann besser?
-
Ich habe ein anderen Phänomen festgestellt, vielleicht ist es auch das Problem bei dir.
Wenn Nachrichten die " enthalten ankommen, dann akzeptiert der mqtt Adapter diese anscheinend nicht.
zB {"tool":20} kommt nicht an.
Ersetze ich die " durch ' oder entferne sie, dann klappt es. Auch kommt die Nachricht an, wenn ich sie mit " sende aber die
geschweifte Klammer zu entferne.
Es scheint also ein Problem mit den " zu sein. Habe auf Github auch schon was dazu geschrieben.
-
Fixed.
-
Hallo,
bin leider gerade über gleiches Phänomen gestolpert.
Meine States der Feuchtigkeitssensoren wurden nur 2 mal bei Start des mqtt servers gesendet und dann nicht mehr.Meine Werte sind allerdings Zahlen
"common": {
"name": "Humidity",
"role": "value.humidity",
"type": "number",
"unit": "%",
"min": 0,
"max": 100,erst seit ich das ack=true gesetzt habe werden die Daten auch bei Änderung gesendet...
QoS ist aber auf 0Was bedeutet die Option ack hier?
Verstehe auch nicht warum die Werte initial gesendet werden!?!MQTT broker 2.03