Seite 1 von 1
zigbee2mqtt: mqttActions val parsing error
Verfasst: 11. Jan 2026 23:38
von McMaster05
Hallo zusammen,
Ich versuche in V5.1.0 eine Payload an ein zigbee-Gerät, das über zigbee2mqtt angebunden ist, zu senden.
Aus der Doku vom MQTT-Binding habe ich unter Rule-Action nahezu den Code übernommen:
Code: Alles auswählen
val mqttActions = getActions('mqtt','mqtt:broker:a20379cddc');
mqttActions.publishMQTT("zigbee2mqtt/EsszimmerWandleuchteOst_Schalten/set","{\"effect\":\"colorloop\"}", true)
Aber nutze ich "val", bekomme ich gleich schon einen Parsing-Error.
Mache ich daraus ein "var", wird es akzeptiert, aber im Log bekomme ich dann ein
"Script execution of rule with UID 'WandleuchteAN' failed: ReferenceError: "getActions" is not defined in <eval> at line number 36 at column number 20
"
Gibt es jemand, der an MQTT payloads erfolgreich schickt?
Re: zigbee2mqtt: mqttActions val parsing error
Verfasst: 12. Jan 2026 14:52
von Harka
McMaster05 hat geschrieben: 11. Jan 2026 23:38
Gibt es jemand, der an MQTT payloads erfolgreich schickt?
Hier
Du kommst anscheinend mit den Programmiersprachen durcheinander. Nutzt Du DSL-Rule oder Javascript?
DSL:
Javascript:
Code: Alles auswählen
var mqttActions = actions.thingActions('mqtt','UID-broker');
Re: zigbee2mqtt: mqttActions val parsing error
Verfasst: 12. Jan 2026 19:41
von udo1toni
Ein weiterer Punkt: Es ist inzwischen schon bei mehreren Anwendern (bei mir auch...) passiert, dass beim Upgrade und dem damit verbundenen Austausch des mqtt Bindings die Actions verloren gingen.
Abhilfe: mqtt Binding deinstallieren, openHAB neu starten, mqtt Binding neu installieren.
Eventuell gibt es auch in der Karaf Konsole einen Befehl, der das reinitialisieren der Actions triggert, den kenne ich allerdings nicht.
Re: zigbee2mqtt: mqttActions val parsing error
Verfasst: 14. Jan 2026 21:57
von McMaster05
Harka hat geschrieben: 12. Jan 2026 14:52
Du kommst anscheinend mit den Programmiersprachen durcheinander. Nutzt Du DSL-Rule oder Javascript?
DSL:
Javascript:
Code: Alles auswählen
var mqttActions = actions.thingActions('mqtt','UID-broker');
Danke Dir, das war's! Toll, jetzt funktioniert's!
Zusätzlich muss ich bei den Paul Neuhaus Q-Mia-Leuchten erst ein Einschaltsignal senden, dann den Befehl zum Colorloop:
Code: Alles auswählen
var mqttActions = actions.thingActions('mqtt','mqtt:broker:a20379cddc');
mqttActions.publishMQTT("zigbee2mqtt/EsszimmerWandleuchteOst/set","{\"state\":\"ON\"}", true);
mqttActions.publishMQTT("zigbee2mqtt/EsszimmerWandleuchteOst/set","{\"effect\":\"colorloop\"}", true);
Aber noch eine Frage: Wenn ich in der Doku des Bindings den DSL-Code angezeigt bekomme, wie komme ich drauf, dass ich bei Javascript anstatt "getActions" "actions.thingActions" nutzen muss?
Re: zigbee2mqtt: mqttActions val parsing error
Verfasst: 15. Jan 2026 16:57
von Harka
Super
McMaster05 hat geschrieben: 14. Jan 2026 21:57
Aber noch eine Frage: Wenn ich in der Doku des Bindings den DSL-Code angezeigt bekomme, wie komme ich drauf, dass ich bei Javascript anstatt "getActions" "actions.thingActions" nutzen muss?
Ja, das ist etwas versteckt (
thingActions) und auf die Schnelle habe ich auch nur eine Bindingbeschreibung (
Pushover) gefunden, welche sowohl DSL als auch Javascript behandelt. Dürfte sich, meines Wissens nach, aber auch nur an dieser einen Stelle unterscheiden.