Rule mit received command... Stehe auf dem Schlauch?
Verfasst: 8. Feb 2023 15:10
Hallo zusammen,
habe hier ein kleines Problem, das mich fast irre macht...
Hintergrund:
Bin von DeConz auf zigbee2mqtt umgestiegen, alles kein großes Ding, innerhalb in openhab funktioniert alles so wie es soll.
Da ich jedoch natürlich auch alle vorhandenen Regeln anpassen muss hier mein Problem:
Per MQTT kommt von einem Schalter ein Command "on" als String. Diesen will ich per Rule abgreifen um z.B. eine Leuchte zu schalten.
Mit "received command" bekomme ich das aber irgendwie nicht hin?
Rule sieht z.B. so aus:
Das Item ist der Action-Channel des Buttons, innerhalb von openhab wird das gesendete Command auch korrekt angezeigt.
Hab schon diverse Schreibweisen getestet, also mit "" und ohne, klein/groß, ohne Angabe bei when und dafür mit if(receivedCommand == "on") bei then....
Mit received update klappt alles, allerdings gehen damit auch sämtliche Lampen an wenn MQTT mal neu gestartet wird... deswegen wollte ich das mit received command machen.
Kann mir irgendjemand bitte einen kleinen Schubs in die richtige Richtung geben, irgendwie stehe ich mittlerweile völlig auf dem Schlauch warum das so nicht funktioniert!
Danke,
Gruß Manuel
habe hier ein kleines Problem, das mich fast irre macht...
Hintergrund:
Bin von DeConz auf zigbee2mqtt umgestiegen, alles kein großes Ding, innerhalb in openhab funktioniert alles so wie es soll.
Da ich jedoch natürlich auch alle vorhandenen Regeln anpassen muss hier mein Problem:
Per MQTT kommt von einem Schalter ein Command "on" als String. Diesen will ich per Rule abgreifen um z.B. eine Leuchte zu schalten.
Mit "received command" bekomme ich das aber irgendwie nicht hin?
Rule sieht z.B. so aus:
Code: Alles auswählen
rule "Tischlampe Manu Büro"
when
Item TRADFRI_Button_1_A received command "on"
then
if(TRADFRI_E14_W_1_SW.state == ON) {
sendCommand(TRADFRI_E14_W_1_SW, OFF)
} else {
sendCommand(TRADFRI_E14_W_1_SW, ON)
}
end
Hab schon diverse Schreibweisen getestet, also mit "" und ohne, klein/groß, ohne Angabe bei when und dafür mit if(receivedCommand == "on") bei then....
Mit received update klappt alles, allerdings gehen damit auch sämtliche Lampen an wenn MQTT mal neu gestartet wird... deswegen wollte ich das mit received command machen.
Kann mir irgendjemand bitte einen kleinen Schubs in die richtige Richtung geben, irgendwie stehe ich mittlerweile völlig auf dem Schlauch warum das so nicht funktioniert!

Danke,
Gruß Manuel