From 032cc381387602ccd393e1c72b0b4e933b82d11d Mon Sep 17 00:00:00 2001 From: Beta-User <> Date: Tue, 13 Sep 2022 17:18:36 +0000 Subject: [PATCH] mqtt2.template: lc fixes in zigbee2mqtt and milight git-svn-id: https://svn.fhem.de/fhem/trunk@26399 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/lib/AttrTemplate/mqtt2.template | 44 ++++++++++++----------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/fhem/FHEM/lib/AttrTemplate/mqtt2.template b/fhem/FHEM/lib/AttrTemplate/mqtt2.template index 1c1c32593..25e680b60 100644 --- a/fhem/FHEM/lib/AttrTemplate/mqtt2.template +++ b/fhem/FHEM/lib/AttrTemplate/mqtt2.template @@ -306,7 +306,7 @@ attr DEVICE icon ICON attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)} attr DEVICE webCmd toggle:on:off:brightness:ct:warm:white:hex attr DEVICE devicetopic BASE_TOPIC/DEV_ID -attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret } +attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret } attr DEVICE setList \ on:noArg $\DEVICETOPIC/set {"state":"ON"}\ off:noArg $\DEVICETOPIC/set {"state":"OFF"}\ @@ -319,7 +319,7 @@ attr DEVICE userReadings hex:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_ attr DEVICE jsonMap color_temp:ct set DEVICE attrTemplate speechcontrol_type_light_255 attr DEVICE model zigbee2mqtt_light_rgbw_hex -setreading DEVICE attrTemplateVersion 20220622 +setreading DEVICE attrTemplateVersion 20220913 #source post: https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935 name:zigbee2mqtt_light_rgbw_rgb @@ -356,7 +356,7 @@ attr DEVICE icon ICON attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)} attr DEVICE webCmd toggle:on:off:brightness:ct:hex attr DEVICE devicetopic BASE_TOPIC/DEV_ID -attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret } +attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret } attr DEVICE setList \ on:noArg $\DEVICETOPIC/set {"state":"ON"}\ off:noArg $\DEVICETOPIC/set {"state":"OFF"}\ @@ -366,7 +366,7 @@ attr DEVICE setList \ set DEVICE attrTemplate speechcontrol_type_light_255 attr DEVICE jsonMap color_temp:ct attr DEVICE model zigbee2mqtt_light_rgbcct_hex -setreading DEVICE attrTemplateVersion 20220622 +setreading DEVICE attrTemplateVersion 20220913 #source post: https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935 name:zigbee2mqtt_light_rgbcct_rgb @@ -380,7 +380,7 @@ attr DEVICE icon ICON attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)} attr DEVICE webCmd toggle:on:off:brightness:ct:color attr DEVICE devicetopic BASE_TOPIC/DEV_ID -attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret } +attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret } attr DEVICE setList \ on:noArg $\DEVICETOPIC/set {"state":"ON"}\ off:noArg $\DEVICETOPIC/set {"state":"OFF"}\ @@ -389,7 +389,7 @@ attr DEVICE setList \ color:colorpicker,RGB {"$\DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)} set DEVICE attrTemplate speechcontrol_type_light_255 attr DEVICE model zigbee2mqtt_light_rgbcct_rgb -setreading DEVICE attrTemplateVersion 20220622 +setreading DEVICE attrTemplateVersion 20220913 # zigbee2mqtt 2 channel dimmer device name:zigbee2mqtt_2channel_dimmer_split @@ -401,7 +401,7 @@ par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devi par:ICON;ICON as set, defaults to light_control;{ AttrVal('DEVICE','icon','light_control') } attr DEVICE icon ICON attr DEVICE devicetopic BASE_TOPIC/DEV_ID -attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret } +attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret } attr DEVICE jsonMap state:availability state_l1:state state_l2:0 brightness_l1:brightness brightness_l2:0 attr DEVICE setList \ on:noArg $\DEVICETOPIC/l1/set {"state":"ON"}\ @@ -422,7 +422,7 @@ deletereading -q DEVICE_CH2 (?!associatedWith|IODev).* attr DEVICE_CH2 jsonMap state_l1:0 state_l2:state state:0 consumption:0 linkquality:0 power:0 temperature:0 brightness_l1:0 brightness_l2:brightness set DEVICE,DEVICE_CH2 attrTemplate speechcontrol_type_light_255 attr DEVICE,DEVICE_CH2 model zigbee2mqtt_2channel_dimmer_split -setreading DEVICE,DEVICE_CH2 attrTemplateVersion 20220622 +setreading DEVICE,DEVICE_CH2 attrTemplateVersion 20220913 # zigbee2mqtt air purifier name:zigbee2mqtt_air_purifier @@ -434,7 +434,7 @@ par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devi par:ICON;ICON as set, defaults to Ventilator_wind;{ AttrVal('DEVICE','icon','Ventilator_wind') } attr DEVICE icon ICON attr DEVICE devicetopic BASE_TOPIC/DEV_ID -attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret } +attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret } attr DEVICE getList state:noArg state $\DEVICETOPIC/get {"fan_state": ""}\ fan_speed:noArg fan_speed $\DEVICETOPIC/get {"fan_speed": ""}\ pm25:noArg pm25 $\DEVICETOPIC/get {"pm25": ""}\ @@ -451,7 +451,7 @@ attr DEVICE setStateList on off toggle attr DEVICE webCmd fan_mode deletereading -q DEVICE (?!associatedWith|IODev).* attr DEVICE model zigbee2mqtt_air_purifier -setreading DEVICE attrTemplateVersion 20220622 +setreading DEVICE attrTemplateVersion 20220913 # zigbee2mqtt air quality sensor name:zigbee2mqtt_air_quality @@ -464,12 +464,12 @@ par:ICON;ICON as set, defaults to feinstaub_pm25;{ AttrVal('DEVICE','icon','fein attr DEVICE icon ICON attr DEVICE devicetopic BASE_TOPIC/DEV_ID attr DEVICE readingList $\DEVICETOPIC/availability:.* availability\ - $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret } + $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret } attr DEVICE jsonMap battery:batteryPercent voltage:batterymV attr DEVICE stateFormat air quality: air_quality, VOC: voc, Hum: humidity deletereading -q DEVICE (?!associatedWith|IODev).* attr DEVICE model zigbee2mqtt_air_quality -setreading DEVICE attrTemplateVersion 20220622 +setreading DEVICE attrTemplateVersion 20220913 name:zigbee2mqtt_smokeDetector filter:TYPE=MQTT2_DEVICE:FILTER=CID~zigbee.* @@ -539,7 +539,7 @@ par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devi par:ICON;ICON as set, defaults to message_socket;{ AttrVal('DEVICE','icon','message_socket') } attr DEVICE icon ICON attr DEVICE devicetopic BASE_TOPIC/DEV_ID -attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret } +attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret } attr DEVICE jsonMap state:availability state_l1:state state_l2:0 attr DEVICE setList \ on:noArg $\DEVICETOPIC/l1/set {"state":"ON"}\ @@ -557,7 +557,7 @@ deletereading -q DEVICE_CH2 (?!associatedWith|IODev).* attr DEVICE_CH2 jsonMap state_l1:0 state_l2:state state:0 consumption:0 linkquality:0 power:0 temperature:0 set DEVICE,DEVICE_CH2 attrTemplate speechcontrol_type_switch attr DEVICE,DEVICE_CH2 model zigbee2mqtt_2channel_split -setreading DEVICE,DEVICE_CH2 attrTemplateVersion 20220622 +setreading DEVICE,DEVICE_CH2 attrTemplateVersion 20220913 # zigbee2mqtt 2 channel device with buttons, forum #102866 name:zigbee2mqtt_2channel_split_w_buttons @@ -591,7 +591,7 @@ par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devi par:ICON;ICON as set, defaults to message_socket;{ AttrVal('DEVICE','icon','message_socket') } attr DEVICE icon ICON attr DEVICE devicetopic BASE_TOPIC/DEV_ID -attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret } +attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret } attr DEVICE jsonMap state:availability state_l1:state state_l2:0 state_l3:0 attr DEVICE setList \ on:noArg $\DEVICETOPIC/set {"state_l1":"ON"}\ @@ -611,7 +611,7 @@ attr DEVICE_CH2 jsonMap state_l2:state state_l1:0 state_l3:0 state:0 consumption attr DEVICE_CH3 jsonMap state_l3:state state_l1:0 state_l2:0 state:0 consumption:0 linkquality:0 power:0 temperature:0 set DEVICE,DEVICE_CH2,DEVICE_CH3 attrTemplate speechcontrol_type_switch attr DEVICE,DEVICE_CH2,DEVICE_CH3 model zigbee2mqtt_3channel_split -setreading DEVICE,DEVICE_CH2,DEVICE_CH3 attrTemplateVersion 20220901 +setreading DEVICE,DEVICE_CH2,DEVICE_CH3 attrTemplateVersion 20220913 # A blind drive motor TS0601_cover connected via zigbee2mqtt #contributed by barneybaer, https://forum.fhem.de/index.php/topic,94495.msg1134215.html#msg1134215 @@ -4158,11 +4158,12 @@ deletereading -q DEVICE .*_.* attr DEVICE eventMap /set_white:Weiss/night_mode:Nacht/white_mode:white/ attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name,'hex',1)} attr DEVICE webCmd brightness:hue:command +attr DEVICE jsonMap color:rgb attr DEVICE readingList \ - BASE_ID/states/REMOTE_ID/BULB_TYPE/GROUP_ID:.* { json2nameValue($EVENT) }\ - BASE_ID/states/REMOTE_ID/BULB_TYPE/0:.* { json2nameValue($EVENT) }\ - BASE_ID/updates/REMOTE_ID/BULB_TYPE/GROUP_ID:.* { json2nameValue($EVENT) }\ - BASE_ID/updates/REMOTE_ID/BULB_TYPE/0:.* { json2nameValue($EVENT) } + BASE_ID/states/REMOTE_ID/BULB_TYPE/GROUP_ID:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; $ret->{rgb} = substr($ret->{rgb},1,6) if defined $ret->{rgb}; return $ret }\ + BASE_ID/states/REMOTE_ID/BULB_TYPE/0:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; $ret->{rgb} = substr($ret->{rgb},1,6) if defined $ret->{rgb}; return $ret }\ + BASE_ID/updates/REMOTE_ID/BULB_TYPE/GROUP_ID:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; $ret->{rgb} = substr($ret->{rgb},1,6) if defined $ret->{rgb}; return $ret }\ + BASE_ID/updates/REMOTE_ID/BULB_TYPE/0:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; $ret->{rgb} = substr($ret->{rgb},1,6) if defined $ret->{rgb}; return $ret } attr DEVICE setList\ on:noArg BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"status":"ON"}\ on_transition:slider,3,10,3600 BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"status":"ON","transition":$EVTPART1}\ @@ -4170,6 +4171,7 @@ attr DEVICE setList\ off_transition:slider,3,10,3600 BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"status":"OFF","transition":$EVTPART1}\ brightness:colorpicker,BRI,0,15,255 BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"$EVTPART0":"$EVTPART1"}\ hue:colorpicker,HUE,0,1,359 BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"$EVTPART0":"$EVTPART1"}\ + rgb:colorpicker,RGB {"BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID ".zigbee2mqtt_RGB2JSON($EVTPART1)} command:uzsuSelectRadio,Weiss,Nacht BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"$EVTPART0":"$EVTPART1"} attr DEVICE userReadings hex:color_r.* {Color::rgb2hex(ReadingsVal($name,'color_r',255),ReadingsVal($name,'color_g',255),ReadingsVal($name,'color_b',255))}, hue:bulb_mode.*white {"0"} attr DEVICE setStateList on off @@ -4177,7 +4179,7 @@ attr DEVICE comment To switch device also on when changing brightness, change pa attr DEVICE setExtensionsEvent 1 set DEVICE attrTemplate speechcontrol_type_light_255 attr DEVICE model esp_milight_hub_rgbw_bulb -setreading DEVICE attrTemplateVersion 20220726 +setreading DEVICE attrTemplateVersion 20220913 #rgbw-group name:esp_milight_hub_make_rgbw_group