From 191dae1484374b24ba47306a614c750b98999d81 Mon Sep 17 00:00:00 2001 From: Beta-User <> Date: Fri, 14 Dec 2018 06:06:02 +0000 Subject: [PATCH] MAINTAINER.txt: add Beta-User as second Maintainer for MYSENSORS mqtt2.template: cleanup and restructuring git-svn-id: https://svn.fhem.de/fhem/trunk@17970 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 1 + fhem/FHEM/lib/AttrTemplate/mqtt2.template | 206 ++++++++++------------ fhem/MAINTAINER.txt | 6 +- 3 files changed, 93 insertions(+), 120 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index f21a676b5..3c85dddb5 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - change: mqtt2.template: change name convention + cleanup - feature: 72_FB_CALLLIST: new readings/events "count-..." implemented to count different call types - change: 72_FB_CALLMONITOR: removed klicktel.de for reverse search, as diff --git a/fhem/FHEM/lib/AttrTemplate/mqtt2.template b/fhem/FHEM/lib/AttrTemplate/mqtt2.template index 3ac73130b..a187334f1 100644 --- a/fhem/FHEM/lib/AttrTemplate/mqtt2.template +++ b/fhem/FHEM/lib/AttrTemplate/mqtt2.template @@ -8,7 +8,7 @@ ########################################### # zigbee2mqtt # The zigbee2mqtt bridge device -name:zigbee2mqtt_bridge +name:L_01_zigbee2mqtt_bridge_V1 filter:TYPE=MQTT2_DEVICE par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef } attr DEVICE bridgeRegexp BASE_TOPIC/0x([A-Za-z0-9]*)[/]?.*:.* "zigbee_$1" @@ -22,67 +22,80 @@ attr DEVICE setList\ attr DEVICE readingList BASE_TOPIC/bridge/log:.* { json2nameValue($EVENT) }\ BASE_TOPIC/bridge/state:.* state +# The zigbee2mqtt bridge device (entire hex id of devices as bridgeRegexp) +name:L_01a_zigbee2mqtt_bridge_V2_testing +filter:TYPE=MQTT2_DEVICE +par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef } +set DEVICE attrTemplate L_01_zigbee2mqtt_bridge_V1 +attr DEVICE bridgeRegexp BASE_TOPIC/(0x[A-Za-z0-9]*)[/]?.*:.* "zigbee_$1" + +# The zigbee2mqtt bridge device: (allows friendly names for devices, but adds new device(s) when receiving interface messages) +name:L_01b_zigbee2mqtt_bridge_V2_speaking_names_testing +filter:TYPE=MQTT2_DEVICE +par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef } +set DEVICE attrTemplate L_01_zigbee2mqtt_bridge_V1 +attr DEVICE bridgeRegexp BASE_TOPIC/([A-Za-z0-9]*)[/]?.*:.* "zigbee_$1" # A dimmable light connected via zigbee2mqtt -name:zigbee2mqtt_bulb +name:L_02a_zigbee2mqtt_bulb filter:TYPE=MQTT2_DEVICE par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef } -par:NAMEINTHEBRIDGE;name of this device in the bridge;{ AttrVal("DEVICE","readingList","") =~ m,(^.*)[/](.*):, ? $2 : undef } +par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/](.*):, ? $1 : undef } attr DEVICE icon light_control attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)} attr DEVICE webCmd toggle:on:off:brightness attr DEVICE setList \ - on:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"ON"}\ - off:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"OFF"}\ - brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"on","$EVTPART0":"$EVTPART1"} + on:noArg BASE_TOPIC/DEV_ID/set {"state":"ON"}\ + off:noArg BASE_TOPIC/DEV_ID/set {"state":"OFF"}\ + brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/DEV_ID/set {"state":"on","$EVTPART0":"$EVTPART1"} # A dimmable color light connected via zigbee2mqtt -name:zigbee2mqtt_colorbulb +name:L_02b_zigbee2mqtt_colorbulb filter:TYPE=MQTT2_DEVICE par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef } -par:NAMEINTHEBRIDGE;name of this device in the bridge;{ AttrVal("DEVICE","readingList","") =~ m,(^.*)[/](.*):, ? $2 : undef } +par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/](.*):, ? $1 : undef } attr DEVICE icon light_control attr DEVICE webCmd toggle:on:off:brightness:color_temp attr DEVICE setList \ - on:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"ON"}\ - off:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"OFF"}\ - brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"on","$EVTPART0":"$EVTPART1"}\ - color_temp:colorpicker,CT,250,1,454 BASE_TOPIC/NAMEINTHEBRIDGE/set {"$EVTPART0":"$EVTPART1"} + on:noArg BASE_TOPIC/DEV_ID/set {"state":"ON"}\ + off:noArg BASE_TOPIC/DEV_ID/set {"state":"OFF"}\ + brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/DEV_ID/set {"state":"on","$EVTPART0":"$EVTPART1"}\ + color_temp:colorpicker,CT,250,1,454 BASE_TOPIC/DEV_ID/set {"$EVTPART0":"$EVTPART1"} -name:zigbee2mqtt_colorbulbWithoutColorTemp +name:L_02b_zigbee2mqtt_colorbulbWithoutColorTemp filter:TYPE=MQTT2_DEVICE par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef } -par:NAMEINTHEBRIDGE;name of this device in the bridge;{ AttrVal("DEVICE","readingList","") =~ m,(^.*)[/](.*):, ? $2 : undef } +par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/](.*):, ? $1 : undef } attr DEVICE icon hue_filled_white_and_color_e27_b22 attr DEVICE stateFormat {lc ReadingsVal("$name","state",0)} attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)} attr DEVICE webCmd toggle:on:off:brightness:color attr DEVICE setList \ - on:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"ON"}\ - off:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"OFF"}\ - brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"on","$EVTPART0":"$EVTPART1"}\ - color:colorpicker,RGB {"BASE_TOPIC/NAMEINTHEBRIDGE/set ".zigbee2mqtt_RGB2JSON($EVTPART1)} + on:noArg BASE_TOPIC/DEV_ID/set {"state":"ON"}\ + off:noArg BASE_TOPIC/DEV_ID/set {"state":"OFF"}\ + brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/DEV_ID/set {"state":"on","$EVTPART0":"$EVTPART1"}\ + color:colorpicker,RGB {"BASE_TOPIC/DEV_ID/set ".zigbee2mqtt_RGB2JSON($EVTPART1)} -name:zigbee2mqtt_smokeDetector +name:L_03_zigbee2mqtt_smokeDetector filter:TYPE=MQTT2_DEVICE par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef } -par:NAMEINTHEBRIDGE;name of this device in the bridge;{ AttrVal("DEVICE","readingList","") =~ m,(^.*)[/](.*):, ? $2 : undef } +par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/](.*):, ? $1 : undef } attr DEVICE icon secur_smoke_detector attr DEVICE stateFormat smoke -name:zigbee2mqtt_hueMotionSensor +name:L_04_zigbee2mqtt_hueMotionSensor filter:TYPE=MQTT2_DEVICE attr DEVICE stateFormat T: temperature_weather B: illuminance L: linkquality attr DEVICE userReadings temperature_weather { sprintf("%.1f",ReadingsVal("DEVICE","temperature","")+2.5) } -name:zigbee2mqtt_smart+plug +name:L_05_zigbee2mqtt_smart+plug filter:TYPE=MQTT2_DEVICE par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef } -par:NAMEINTHEBRIDGE;name of this device in the bridge;{ AttrVal("DEVICE","readingList","") =~ m,(^.*)[/](.*):, ? $2 : undef } +par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/](.*):, ? $1 : undef } attr DEVICE eventMap { dev=>{ON=>'on',OFF=>'off'} } attr DEVICE setList \ - off BASE_TOPIC/NAMEINTHEBRIDGE/set OFF\ - on BASE_TOPIC/NAMEINTHEBRIDGE/set ON + off BASE_TOPIC/DEV_ID/set OFF\ + on BASE_TOPIC/DEV_ID/set ON ########################################### @@ -90,38 +103,27 @@ attr DEVICE setList \ # The regexp must handle # - tele/sonoff/LWT: => cmnd/sonoff/ # - DVES_XXXXXX:/SmartHome/Esszimmer/Stehlampe/tele/LWT: => /SmartHome/Esszimmer/Stehlampe/cmnd/ -name:tasmota_basic +name:A_01_tasmota_basic filter:TYPE=MQTT2_DEVICE par:COMMAND;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\btele(/.*)?/LWT:, ? "${1}cmnd$2" : undef } -attr DEVICE stateFormat {lc ReadingsVal("$name","POWER","") } -attr DEVICE eventMap { dev=>{'^(.*)POWER: OFF$'=>'$1POWER: off', '^(.*)POWER: ON$'=>'$1POWER: on'} } +attr DEVICE stateFormat {lc ReadingsVal("$name","POWER1","") } +attr DEVICE eventMap { dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} } attr DEVICE setList \ off:noArg COMMAND/POWER1 0\ on:noArg COMMAND/POWER1 1\ toggle:noArg COMMAND/POWER1 2 # sonoff 1 channel device flashed with Tasmota. -name:tasmota_1channel +name:A_01a_tasmota_1channel filter:TYPE=MQTT2_DEVICE -par:COMMAND;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\btele(/.*)?/LWT:, ? "${1}cmnd$2" : undef } -attr DEVICE eventMap { dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} } -attr DEVICE stateFormat {lc ReadingsVal("$name","POWER1","")} -attr DEVICE setList \ - off:noArg COMMAND/POWER1 0\ - on:noArg COMMAND/POWER1 1\ - toggle:noArg COMMAND/POWER1 2 +set DEVICE attrTemplate A_01_tasmota_basic # sonoff 2 channel device flashed with Tasmota. # NOTE: a second device will be created for the second channel -name:tasmota_2channel_2devices +name:A_02a_tasmota_2channel_2devices filter:TYPE=MQTT2_DEVICE par:COMMAND;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\btele(/.*)?/LWT:, ? "${1}cmnd$2" : undef } -attr DEVICE eventMap { dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} } -attr DEVICE stateFormat {lc ReadingsVal("$name","POWER1",0)} -attr DEVICE setList \ - off:noArg COMMAND/POWER1 0\ - on:noArg COMMAND/POWER1 1\ - toggle:noArg COMMAND/POWER1 2 +set DEVICE attrTemplate A_01_tasmota_basic attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2 copy DEVICE DEVICE_CH2 attr DEVICE_CH2 stateFormat {lc ReadingsVal("$name","POWER2","")} @@ -131,18 +133,8 @@ attr DEVICE_CH2 setList \ on:noArg COMMAND/POWER2 1\ toggle:noArg COMMAND/POWER2 2 -# WemosD1 flashed with tasmota -name:tasmota_WemosD1 -filter:TYPE=MQTT2_DEVICE -attr DEVICE readingList \ - tele/DEVICE/LWT:.* LWT\ - tele/DEVICE/STATE:.* { json2nameValue($EVENT) }\ - tele/DEVICE/SENSOR:.* { json2nameValue($EVENT) }\ - stat/DEVICE/RESULT:.* { json2nameValue($EVENT) } -deleteReading DEVICE .* - # basic tasmota device with unprefixed readings -name:tasmota_noprefix_pure_base +name:A_09x_tasmota_pure_base_noprefix filter:TYPE=MQTT2_DEVICE attr DEVICE readingList \ tele/DEVICE/LWT:.* LWT\ @@ -155,9 +147,9 @@ attr DEVICE autocreate 0 # tasmota 4ch as one FHEM device. -name:tasmota_noprefix_sonoff_4ch +name:A_04a_tasmota_noprefix_sonoff_4ch filter:TYPE=MQTT2_DEVICE -set DEVICE attrTemplate tasmota_noprefix_pure_base +set DEVICE attrTemplate A_09x_tasmota_pure_base_noprefix attr DEVICE setList \ p1:on,off cmnd/DEVICE/POWER1 $EVTPART1\ p2:on,off cmnd/DEVICE/POWER2 $EVTPART1\ @@ -177,7 +169,7 @@ attr DEVICE autocreate 0 # SHELLY # # shelly1 using original firmware. -name:shelly1 +name:A_10_shelly1 filter:TYPE=MQTT2_DEVICE par:DEVNAME;Shelly1 name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef } attr DEVICE setList\ @@ -187,7 +179,7 @@ attr DEVICE readingList shellies/DEVNAME/relay/0:.* state # shelly2 using original firmware. # NOTE: a second device will be created for the second channel -name:shelly2 +name:A_11a_shelly2 filter:TYPE=MQTT2_DEVICE par:DEVNAME;Shelly2 name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef } attr DEVICE setList\ @@ -205,7 +197,7 @@ attr DEVICE_CH2 setList \ # shelly4pro using original firmware # NOTE: for each of the second to fourth channel, a new device will be created -name:shelly4pro +name:A_14_shelly4pro filter:TYPE=MQTT2_DEVICE par:DEVNAME;Shelly4Pro name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef } attr DEVICE setList\ @@ -244,7 +236,7 @@ attr DEVICE getList shellies/DEVNAME/relay/3/power power4\ attr DEVICE comment Channel 4 for DEVICE, see also DEVICE, DEVICE_CH2 and DEVICE_CH3 # shellybulb using original firmware. Tested with 1.3 -name:shellybulb +name:A_15_shellybulb filter:TYPE=MQTT2_DEVICE par:DEVNAME;name of this shelly;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]+)/, ? $1 : undef } attr DEVICE setList\ @@ -260,65 +252,45 @@ attr DEVICE webCmd on:off:brightness:temp:rgb attr DEVICE genericDeviceType light attr DEVICE icon light_control - +############### +#ESP Milight Hub +#use this with Chris Mullins ESP-Milight-Hub. for further details visit https://github.com/sidoh/esp8266_milight_hub +#recommended structure of the topic pattern milight/:device_id/:device_type/:group_id +#as set in the settings section in the bridge's web interface # -# shelly4pro using original firmware. -# NOTE: for each of the second to fourth channel, a new device will be created -name:shelly4pro +#The ESP-Milight-Hub bridge device +#Atm there are no furter commands to be set to the esp itself +name:X_01_esp_milight_hub_bridge_experimental filter:TYPE=MQTT2_DEVICE -par:CHIPID;serial number of this ESP chip;{ AttrVal("DEVICE","readingList","") =~ m,shellies/.*_(.*)[/]?:, ? $1 : undef } -attr DEVICE setList\ - off:noArg shellies/shelly4pro-CHIPID/relay/0/command off\ - on:noArg shellies/shelly4pro-CHIPID/relay/0/command on -attr DEVICE readingList shellies/shellyswitch-CHIPID/relay/0:.* state -attr DEVICE getList shellies/shelly4pro-CHIPID/relay/0/power power1\ - shellies/shelly4pro-CHIPID/relay/0/energy energy1 -attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2, DEVICE_CH3 and DEVICE_CH4 -copy DEVICE DEVICE_CH2 -attr DEVICE_CH2 readingList shellies/shelly4pro-CHIPID/relay/1:.* state -attr DEVICE_CH2 comment Channel 2 for DEVICE -attr DEVICE_CH2 setList\ - off:noArg shellies/shelly4pro-CHIPID/relay/1/command off\ - on:noArg shellies/shelly4pro-CHIPID/relay/1/command on -attr DEVICE_CH2 readingList shellies/shellyswitch-CHIPID/relay/1:.* state -attr DEVICE_CH2 getList shellies/shelly4pro-CHIPID/relay/1/power power2\ - shellies/shelly4pro-CHIPID/relay/1/energy energy2 -attr DEVICE_CH2 comment Channel 2 for DEVICE, see also DEVICE, DEVICE_CH3 and DEVICE_CH4 -copy DEVICE_CH2 DEVICE_CH3 -attr DEVICE_CH3 readingList shellies/shelly4pro-CHIPID/relay/2:.* state -attr DEVICE_CH3 comment Channel 3 for DEVICE -attr DEVICE_CH3 setList\ - off:noArg shellies/shelly4pro-CHIPID/relay/2/command off\ - on:noArg shellies/shelly4pro-CHIPID/relay/2/command on -attr DEVICE_CH3 readingList shellies/shellyswitch-CHIPID/relay/2:.* state -attr DEVICE_CH3 getList shellies/shelly4pro-CHIPID/relay/2/power power3\ - shellies/shelly4pro-CHIPID/relay/2/energy energy3 -attr DEVICE_CH3 comment Channel 3 for DEVICE, see also DEVICE, DEVICE_CH2 and DEVICE_CH4 -copy DEVICE_CH3 DEVICE_CH4 -attr DEVICE_CH4 readingList shellies/shelly4pro-CHIPID/relay/3:.* state -attr DEVICE_CH4 comment Channel 4 for DEVICE -attr DEVICE_CH4 setList\ - off:noArg shellies/shelly4pro-CHIPID/relay/3/command off\ - on:noArg shellies/shelly4pro-CHIPID/relay/3/command on -attr DEVICE_CH4 readingList shellies/shellyswitch-CHIPID/relay/3:.* state -attr DEVICE_CH4 getList shellies/shelly4pro-CHIPID/relay/3/power power4\ - shellies/shelly4pro-CHIPID/relay/3/energy energy4 -attr DEVICE_CH4 comment Channel 4 for DEVICE, see also DEVICE, DEVICE_CH2 and DEVICE_CH3 +par:BASE_ID;BASE_ID typically is milight;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/]updates/.*:, ? $1 : undef } +par:REMOTE_ID;HEX number representing a specific remote or bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](0x....)[/].*:, ? $2 : undef } +par:BULB_TYPE;rgbw, cct, rgb_cct, rgb, fut089, ;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](.*)[/](.*)[/].*:, ? $3 : undef } +par:GROUP_ID;HEX number representing a specific remote or bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](0x....)[/](.*)[/](.*):, ? $4 : undef } +attr DEVICE bridgeRegexp BASE_ID/states/(0x....)/.*/([0-4])?.*:.* "milight_$1_$2" +attr DEVICE autocreate 1 -# shellybulb using original firmware. Tested with 1.3 -name:shellybulb +#rgbw-bulb +name:X_01_esp_milight_hub_rgbw_bulb_experimental filter:TYPE=MQTT2_DEVICE -par:DEVNAME;name of this shelly;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]+)/, ? $1 : undef } -attr DEVICE setList\ - off:noArg shellies/DEVNAME/color/0/command off\ - on:noArg shellies/DEVNAME/color/0/command on\ - brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"ison":"true","mode":"white","$EVTPART0":"$EVTPART1"}\ - temp:colorpicker,CT,3000,10,6500 shellies/DEVNAME/color/0/set {"ison":"true","mode":"white","$EVTPART0":"$EVTPART1"}\ - rgb:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/; "shellies/DEVNAME/color/0/set {\"ison\":true,\"mode\":\"color\",\"red\":".hex($1).",\"green\":".hex($2)."\"blue\":".hex($3) } -deletereading DEVICE status_.* -attr DEVICE readingList shellies/DEVNAME/color/0/status:.* {json2nameValue($EVENT)} -attr DEVICE userReadings rgb {sprintf("%02X%02X%02X", ReadingsVal($name,"red",99), ReadingsVal($name,"green",99), ReadingsVal($name,"blue",99))} -attr DEVICE webCmd on:off:brightness:temp:rgb -attr DEVICE genericDeviceType light +par:BASE_ID;BASE_ID typically is milight;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/]updates/.*:, ? $1 : undef } +par:REMOTE_ID;HEX number representing a specific remote or bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](0x....)[/].*:, ? $2 : undef } +par:BULB_TYPE;rgbw, cct, rgb_cct, rgb, fut089, ;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](.*)[/](.*)[/].*:, ? $3 : undef } +par:GROUP_ID;HEX number representing a specific remote or bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](0x....)[/](.*)[/](.*):, ? $4 : undef } +deletereading DEVICE .*_.* attr DEVICE icon light_control - +attr DEVICE eventMap /set_white:Weiss/night_mode:Nacht/white_mode:white/on:on/off:off/ON:on/OFF:off/next_mode:Mode/mode_speed_up:Up/mode_speed_down:Down/ +attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)} +attr DEVICE webCmd on:off:brightness:hue:color_temp:saturation:command +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) } +attr DEVICE setList\ + on BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"status":"ON"}\ + off BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"status":"OFF"}\ + 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"}\ + color_temp:colorpicker,CT,153,1,370 BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"$EVTPART0":"$EVTPART1"}\ + command:uzsuSelectRadio,Weiss,Nacht,Mode,Up,Down BASE_ID/REMOTE_ID/BULB_TYPE/GROUP_ID {"$EVTPART0":"$EVTPART1"}\ +attr DEVICE userReadings rgb {sprintf("%02X%02X%02X", ReadingsVal($name,"color_r",255), ReadingsVal($name,"color_g",255), ReadingsVal($name,"color_b",255))} +# computed_color will send RGB = 255,255,255 when in white mode. This is useful for HomeAssistant where it always expects the color to be set. diff --git a/fhem/MAINTAINER.txt b/fhem/MAINTAINER.txt index 139de52ba..5b8f026d7 100644 --- a/fhem/MAINTAINER.txt +++ b/fhem/MAINTAINER.txt @@ -30,7 +30,7 @@ FHEM/00_MAXLAN.pm rudolfkoenig/orphan MAX FHEM/00_MQTT.pm hexenmeister MQTT FHEM/00_MQTT2_SERVER.pm rudolfkoenig MQTT FHEM/00_MQTT2_CLIENT.pm rudolfkoenig MQTT -FHEM/00_MYSENSORS.pm Hauswart Sonstige Systeme +FHEM/00_MYSENSORS.pm Hauswart/Beta-User Sonstige Systeme FHEM/00_NetzerI2C.pm klausw Sonstige Systeme FHEM/00_Neuron.pm klausw Sonstige Systeme FHEM/00_OWX.pm pahenning 1Wire @@ -70,7 +70,7 @@ FHEM/10_MQTT_BRIDGE hexenmeister MQTT FHEM/10_MQTT_DEVICE hexenmeister MQTT FHEM/10_MQTT_GENERIC_BRIDGE hexenmeister MQTT FHEM/10_MQTT2_DEVICE.pm rudolfkoenig MQTT -FHEM/10_MYSENSORS_DEVICE Hauswart Sonstige Systeme +FHEM/10_MYSENSORS_DEVICE Hauswart/Beta-User Sonstige Systeme FHEM/10_NeuronPin.pm klausw Sonstige Systeme FHEM/10_OWServer.pm neubert/mfr69bs 1Wire FHEM/10_SOMFY.pm viegener Sonstige Systeme @@ -539,7 +539,7 @@ FHEM/UConv.pm loredo FHEM Development FHEM/Unit.pm loredo FHEM Development FHEM/YahooWeatherAPI.pm neubert Unterstuetzende Dienste/Wettermodule FHEM/lib/Device/Firmata/* jensb Sonstige Systeme -FHEM/lib/Device/MySensors/* Hauswart Sonstige Systeme +FHEM/lib/Device/MySensors/* Hauswart/Beta-User Sonstige Systeme FHEM/lib/MP3/* Reinerlein Multimedia FHEM/lib/Net/MQTT.pod hexenmeister MQTT FHEM/lib/Net/MQTT/* hexenmeister MQTT