Hallo zusammen,
ich möchte gerne meine Zigbee Lampe direkt einschalten lassen wenn eine Farbe ausgewählt wird.
Das Setlist dazu sieht aktuell wie folgt dazu aus.
rgb:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
Wie bekomme ich in diese Befehlszeile ein zweites Argument rein das er dabei zuerst auf on schaltet?
Bei der Helligkeit und Kelvin Auswahl geht das auch.
Nur kann ich das so nicht abbilden und bekomme immer Fehler.
brightness:colorpicker,BRI,0,5,255 $DEVICETOPIC/set {"state":"on","$EVTPART0":"$EVTPART1"}
ct:colorpicker,CT,154,2,370 $DEVICETOPIC/set {"state":"ON" , "color_temp":"$EVTPART1"}
Hier das List der gesamten Lampe:
Internals:
CID zigbee_FL_Kugel
DEF zigbee_FL_Kugel
FUUID 6515bee1-f33f-c1dd-3ba3-217b55b12fd33ba0
IODev myBroker
LASTInputDev myBroker
MSGCNT 122
NAME MQTT2_zigbee_FL_Kugel
NR 374
STATE on
TYPE MQTT2_DEVICE
eventCount 266
myBroker_CONN myBroker_127.0.0.1_33130
myBroker_MSGCNT 122
myBroker_TIME 2023-10-01 14:49:23
JSONMAP:
color_temp ct
READINGS:
2023-10-01 12:59:31 IODev myBroker
2023-09-28 19:58:57 associatedWith MQTT2_zigbee_pi
2023-10-01 13:53:07 attrTemplateVersion 20230410
2023-10-01 14:49:23 brightness 90
2023-10-01 14:49:23 color_hue 40
2023-10-01 14:49:23 color_mode color_temp
2023-10-01 14:49:23 color_saturation 49
2023-10-01 13:28:09 color_temp 370
2023-10-01 14:49:23 color_x 0.3804
2023-10-01 14:49:23 color_y 0.3767
2023-10-01 14:49:23 ct 250
2023-09-30 23:27:42 hex F22F23
2023-10-01 14:49:23 linkquality 78
2023-10-01 14:49:23 rgb FFEC9D
2023-10-01 14:49:23 state on
2023-10-01 14:25:57 temperature_weather 2.5
2023-10-01 14:49:23 update_installed_version 34891088
2023-10-01 14:49:23 update_latest_version 34891088
2023-09-28 23:25:05 update_progress 100
2023-09-28 23:25:05 update_remaining 11
2023-10-01 14:49:23 update_state idle
hmccu:
Attributes:
alexaName Kugel
alias Lampe <br> Kugel
cmdIcon on:general_an off:general_aus
comment The specified ct and brightness values in on and warm etc. commands ��can be adjusted at any time via the setList attribute
devStateIcon off:message_socket_off2@grey
on:message_socket_on2@green
devicetopic zigbee2mqtt/FL_Kugel
genericDeviceType light
getList power_on_behavior:noArg power_on_behavior $DEVICETOPIC/get {"power_on_behavior": ""}
group Zigbee
homebridgeMapping Brightness=brightness::brightness,maxValue=100,max=100,factor=0.39371,delay=true
jsonMap color_temp:ct
model zigbee2mqtt_light_rgbcct_rgb
readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
room Flur
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"}
ct:colorpicker,CT,154,2,370 $DEVICETOPIC/set {"state":"ON" , "color_temp":"$EVTPART1"}
warm:noArg $DEVICETOPIC/set {"brightness": 200 , "color_temp": 370}
white:noArg $DEVICETOPIC/set {"brightness": 200, "color_temp": 260}
rgb:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
power_on_behavior:on,off,toggle,previous $DEVICETOPIC/set {"power_on_behavior": "$EVTPART1"}
userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
webCmd on:off:brightness:ct:rgb
webCmdLabel Ein:Aus
:Helligkeit
:Kelvin
:Farbe
Für die Profis unter euch sicher eine Kleinigkeit :-)
Gruss, Fabian
Vorschlag eines Perl-Laien:
rgb:colorpicker,RGB {my $output=decode_json(zigbee2mqtt_RGB2JSON($EVTPART1));$output->{state}="ON";return "$DEVICETOPIC/set ".encode_json($output);}
Zitat von: DJCrazy am 01 Oktober 2023, 14:53:22Für die Profis unter euch sicher eine Kleinigkeit :-)
Sicher. Die Honorare für Auftragsprogrammierung sind auch entsprechend hoch.
pah
Zitat von: TomLee am 01 Oktober 2023, 16:05:37Vorschlag eines Perl-Laien:
rgb:colorpicker,RGB {my $output=decode_json(zigbee2mqtt_RGB2JSON($EVTPART1));$output->{state}="ON";return "$DEVICETOPIC/set ".encode_json($output);}
Zitat von: TomLee am 01 Oktober 2023, 16:05:37Vorschlag eines Perl-Laien:
rgb:colorpicker,RGB {my $output=decode_json(zigbee2mqtt_RGB2JSON($EVTPART1));$output->{state}="ON";return "$DEVICETOPIC/set ".encode_json($output);}
Hey TomLee,
besten Dank für den Code. Damit funktioniert es Wunderbar.
Nun muss ich nur mal den Code verstehen lernen. :)
Klasse Hilfe.
Zitat von: DJCrazy am 02 Oktober 2023, 16:06:32Nun muss ich nur mal den Code verstehen lernen.
Nichts leichter als das: http://www.tekromancer.com/perl2/inhalt.html oder http://www.ebb.org/PickingUpPerl/pickingUpPerl_toc.html
LG
pah
Danke für die Links.