[gelöst] - Setlist - Mit einem Befehl 2 Dinge ausführen

Begonnen von Fabiango, 01 Oktober 2023, 14:53:22

Vorheriges Thema - Nächstes Thema

Fabiango

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

TomLee

#1
Vorschlag eines Perl-Laien:

rgb:colorpicker,RGB {my $output=decode_json(zigbee2mqtt_RGB2JSON($EVTPART1));$output->{state}="ON";return "$DEVICETOPIC/set ".encode_json($output);}

Prof. Dr. Peter Henning

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

Fabiango

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.


Fabiango