Hallo zusammen,
ich hab schon viel gelesen und gesucht, aber es mag mir einfach nicht gelingen.
Ich habe zigbee2mqtt auf meiner FHEM Instanz installiert, eingerichtet und den angemeldeten gledopto Zigbee LED Controller kann ich auch bereits per FHEM schalten. An, Aus, Farbe ändern, alles kein Problem.
Wobei ich mich nun aber schwer tue, ist mehrere Befehle hintereinander zu senden.
Als Beispiel würde ich den angeschlossenen Strip erst zu blau und dann zu rot "faden" lassen.
Leider nimmt der Controller aber immer nur den letzten Befehl. Selbst wenn ich mehrere Befehle hintereinander an das Device schicke.
Als Beispiel:
set MQTT2_zigbee_0xa4c13850a55XXXX color FFFFFF;set MQTT2_zigbee_0xa4c13850a55XXXX color 4EFF47
Wird die Farbe des Strip nur zu "grün" geändert.
Sicher ist das ganz simpel, aber ich bekomme es einfach nicht hin. Hat jemand nen Tipp für mich?
Internals:
CFGFN
CID zigbee_0xa4c13850a55XXXX
DEF zigbee_0xa4c13850a55XXXX
DEVICETOPIC zigbee2mqtt/0xa4c13850a55XXXX
FUUID 66a3e662-f33f-c18f-0126-3903974491303df5
IODev myBroker
LASTInputDev myBroker
MSGCNT 143
NAME MQTT2_zigbee_0xa4c13850a55XXXX
NR 194429
STATE on
TYPE MQTT2_DEVICE
myBroker_MSGCNT 143
myBroker_TIME 2024-07-28 01:17:19
READINGS:
2024-07-26 20:09:38 IODev myBroker
2024-07-26 20:09:38 associatedWith MQTT2_zigbee_fhem
2024-07-26 20:11:45 attrTemplateVersion 20200904
2024-07-28 01:17:19 brightness 75
2024-07-28 01:17:19 color_mode xy
2024-07-28 01:17:19 color_x 0.1594
2024-07-28 01:17:19 color_y 0.0768
2024-07-28 01:17:19 linkquality 80
2024-07-28 01:17:19 state ON
2024-07-28 01:17:19 update_installed_version 620834817
2024-07-28 01:17:19 update_latest_version 620834817
2024-07-28 01:17:19 update_state idle
Attributes:
devStateIcon {zigbee2mqtt_devStateIcon255($name)}
devicetopic zigbee2mqtt/0xa4c13850a552900d
genericDeviceType light
homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
icon hue_filled_white_and_color_e27_b22
model zigbee2mqtt_light_rgb_rgb
readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
setList on:noArg $DEVICETOPIC/set {"state":"ON"}
off:noArg $DEVICETOPIC/set {"state":"OFF"}
brightness:colorpicker,BRI,0,5,255 $DEVICETOPIC/set {"state":"on","$EVTPART0":"$EVTPART1"}
color:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
stateFormat {lc ReadingsVal($name,"state",0)}
webCmd toggle:on:off:brightness:color
Danke und beste Grüße
Ich habe vorhin noch mal probiert ein sleep zwischen den beiden Befehlen einzufügen.
Dann funktioniert es "wie erwartet", aber das ist so sicher nicht im Sinne des Erfinders!
set MQTT2_zigbee_0xa4c13850a55XXXX color FFFFFF;sleep 2;set MQTT2_zigbee_0xa4c13850a55XXXX color 4EFF47
Die Frage wäre also, wie ich es hinbekomme, dass erst Befehl 1 und dann Befehl 2 abgearbeitet wird. Aktuell würde Befehl 2 dem Befehl 1 "in die Parade fahren"...
Gibt es da eine Art Queue?
habe das Thema mal nach MQTT verschoben. Hoffe und denke hier ist es besser aufgehoben.
Ich komme einfach nicht weiter. Kann fast nicht glauben das sonst noch nie jemand versucht hat dies einzubauen...
LG und besten Dank
Das ist normal. Nutze sleep oder ein anderes Modul wie DOIF mit wait.
Gruß schwatter
OK, danke dir, ich habs mir fast gedacht.
Hab es als seperaten Setlist umgesetzt, welche ich dann via DOIF aufrufe, so gehts
blau:noArg $DEVICETOPIC/set {"state":"on","brightness":"75","color":"#0305F9","transition":1}
rot:noArg $DEVICETOPIC/set {"brightness":"30","color":"#F01304","transition":1}
execute:noArg {fhem("set $NAME blau; sleep 1.2; set $NAME rot")}
Im DOIF dann der Auruf via:
set DEVICE execute