zigbee2mqtt: mqttActions val parsing error

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
McMaster05
Beiträge: 23
Registriert: 9. Dez 2018 17:42
Answers: 0

zigbee2mqtt: mqttActions val parsing error

Beitrag 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?

Harka
Beiträge: 588
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: zigbee2mqtt: mqttActions val parsing error

Beitrag von Harka »

McMaster05 hat geschrieben: 11. Jan 2026 23:38 Gibt es jemand, der an MQTT payloads erfolgreich schickt?
Hier :mrgreen:
Du kommst anscheinend mit den Programmiersprachen durcheinander. Nutzt Du DSL-Rule oder Javascript?

DSL:

Code: Alles auswählen

val mqttActions  = getActions('mqtt','UID-broker')
Javascript:

Code: Alles auswählen

var mqttActions  = actions.thingActions('mqtt','UID-broker');

Benutzeravatar
udo1toni
Beiträge: 15639
Registriert: 11. Apr 2018 18:05
Answers: 254
Wohnort: Darmstadt

Re: zigbee2mqtt: mqttActions val parsing error

Beitrag 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.
openHAB5.1.2 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.5 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

McMaster05
Beiträge: 23
Registriert: 9. Dez 2018 17:42
Answers: 0

Re: zigbee2mqtt: mqttActions val parsing error

Beitrag von McMaster05 »

Harka hat geschrieben: 12. Jan 2026 14:52
Du kommst anscheinend mit den Programmiersprachen durcheinander. Nutzt Du DSL-Rule oder Javascript?

DSL:

Code: Alles auswählen

val mqttActions  = getActions('mqtt','UID-broker')
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?

Harka
Beiträge: 588
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: zigbee2mqtt: mqttActions val parsing error

Beitrag 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.

Antworten