2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-26 10:34:52 +00:00

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
This commit is contained in:
Beta-User 2018-12-14 06:06:02 +00:00
parent e6583f97e1
commit 191dae1484
3 changed files with 93 additions and 120 deletions

View File

@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # 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. # 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 - feature: 72_FB_CALLLIST: new readings/events "count-..." implemented to
count different call types count different call types
- change: 72_FB_CALLMONITOR: removed klicktel.de for reverse search, as - change: 72_FB_CALLMONITOR: removed klicktel.de for reverse search, as

View File

@ -8,7 +8,7 @@
########################################### ###########################################
# zigbee2mqtt # zigbee2mqtt
# The zigbee2mqtt bridge device # The zigbee2mqtt bridge device
name:zigbee2mqtt_bridge name:L_01_zigbee2mqtt_bridge_V1
filter:TYPE=MQTT2_DEVICE 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: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" 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) }\ attr DEVICE readingList BASE_TOPIC/bridge/log:.* { json2nameValue($EVENT) }\
BASE_TOPIC/bridge/state:.* state 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 # A dimmable light connected via zigbee2mqtt
name:zigbee2mqtt_bulb name:L_02a_zigbee2mqtt_bulb
filter:TYPE=MQTT2_DEVICE 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: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 icon light_control
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)} attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness attr DEVICE webCmd toggle:on:off:brightness
attr DEVICE setList \ attr DEVICE setList \
on:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"ON"}\ on:noArg BASE_TOPIC/DEV_ID/set {"state":"ON"}\
off:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"OFF"}\ off:noArg BASE_TOPIC/DEV_ID/set {"state":"OFF"}\
brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"on","$EVTPART0":"$EVTPART1"} brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/DEV_ID/set {"state":"on","$EVTPART0":"$EVTPART1"}
# A dimmable color light connected via zigbee2mqtt # A dimmable color light connected via zigbee2mqtt
name:zigbee2mqtt_colorbulb name:L_02b_zigbee2mqtt_colorbulb
filter:TYPE=MQTT2_DEVICE 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: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 icon light_control
attr DEVICE webCmd toggle:on:off:brightness:color_temp attr DEVICE webCmd toggle:on:off:brightness:color_temp
attr DEVICE setList \ attr DEVICE setList \
on:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"ON"}\ on:noArg BASE_TOPIC/DEV_ID/set {"state":"ON"}\
off:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"OFF"}\ off:noArg BASE_TOPIC/DEV_ID/set {"state":"OFF"}\
brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"on","$EVTPART0":"$EVTPART1"}\ brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/DEV_ID/set {"state":"on","$EVTPART0":"$EVTPART1"}\
color_temp:colorpicker,CT,250,1,454 BASE_TOPIC/NAMEINTHEBRIDGE/set {"$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 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: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 icon hue_filled_white_and_color_e27_b22
attr DEVICE stateFormat {lc ReadingsVal("$name","state",0)} attr DEVICE stateFormat {lc ReadingsVal("$name","state",0)}
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)} attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness:color attr DEVICE webCmd toggle:on:off:brightness:color
attr DEVICE setList \ attr DEVICE setList \
on:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"ON"}\ on:noArg BASE_TOPIC/DEV_ID/set {"state":"ON"}\
off:noArg BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"OFF"}\ off:noArg BASE_TOPIC/DEV_ID/set {"state":"OFF"}\
brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/NAMEINTHEBRIDGE/set {"state":"on","$EVTPART0":"$EVTPART1"}\ brightness:colorpicker,BRI,0,15,255 BASE_TOPIC/DEV_ID/set {"state":"on","$EVTPART0":"$EVTPART1"}\
color:colorpicker,RGB {"BASE_TOPIC/NAMEINTHEBRIDGE/set ".zigbee2mqtt_RGB2JSON($EVTPART1)} color:colorpicker,RGB {"BASE_TOPIC/DEV_ID/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
name:zigbee2mqtt_smokeDetector name:L_03_zigbee2mqtt_smokeDetector
filter:TYPE=MQTT2_DEVICE 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: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 icon secur_smoke_detector
attr DEVICE stateFormat smoke attr DEVICE stateFormat smoke
name:zigbee2mqtt_hueMotionSensor name:L_04_zigbee2mqtt_hueMotionSensor
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
attr DEVICE stateFormat T: temperature_weather B: illuminance L: linkquality attr DEVICE stateFormat T: temperature_weather B: illuminance L: linkquality
attr DEVICE userReadings temperature_weather { sprintf("%.1f",ReadingsVal("DEVICE","temperature","")+2.5) } 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 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: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 eventMap { dev=>{ON=>'on',OFF=>'off'} }
attr DEVICE setList \ attr DEVICE setList \
off BASE_TOPIC/NAMEINTHEBRIDGE/set OFF\ off BASE_TOPIC/DEV_ID/set OFF\
on BASE_TOPIC/NAMEINTHEBRIDGE/set ON on BASE_TOPIC/DEV_ID/set ON
########################################### ###########################################
@ -90,38 +103,27 @@ attr DEVICE setList \
# The regexp must handle # The regexp must handle
# - tele/sonoff/LWT: => cmnd/sonoff/ # - tele/sonoff/LWT: => cmnd/sonoff/
# - DVES_XXXXXX:/SmartHome/Esszimmer/Stehlampe/tele/LWT: => /SmartHome/Esszimmer/Stehlampe/cmnd/ # - DVES_XXXXXX:/SmartHome/Esszimmer/Stehlampe/tele/LWT: => /SmartHome/Esszimmer/Stehlampe/cmnd/
name:tasmota_basic name:A_01_tasmota_basic
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
par:COMMAND;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\btele(/.*)?/LWT:, ? "${1}cmnd$2" : undef } 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 stateFormat {lc ReadingsVal("$name","POWER1","") }
attr DEVICE eventMap { dev=>{'^(.*)POWER: OFF$'=>'$1POWER: off', '^(.*)POWER: ON$'=>'$1POWER: on'} } attr DEVICE eventMap { dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} }
attr DEVICE setList \ attr DEVICE setList \
off:noArg COMMAND/POWER1 0\ off:noArg COMMAND/POWER1 0\
on:noArg COMMAND/POWER1 1\ on:noArg COMMAND/POWER1 1\
toggle:noArg COMMAND/POWER1 2 toggle:noArg COMMAND/POWER1 2
# sonoff 1 channel device flashed with Tasmota. # sonoff 1 channel device flashed with Tasmota.
name:tasmota_1channel name:A_01a_tasmota_1channel
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
par:COMMAND;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\btele(/.*)?/LWT:, ? "${1}cmnd$2" : undef } set DEVICE attrTemplate A_01_tasmota_basic
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
# sonoff 2 channel device flashed with Tasmota. # sonoff 2 channel device flashed with Tasmota.
# NOTE: a second device will be created for the second channel # 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 filter:TYPE=MQTT2_DEVICE
par:COMMAND;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\btele(/.*)?/LWT:, ? "${1}cmnd$2" : undef } 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'} } set DEVICE attrTemplate A_01_tasmota_basic
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
attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2 attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2
copy DEVICE DEVICE_CH2 copy DEVICE DEVICE_CH2
attr DEVICE_CH2 stateFormat {lc ReadingsVal("$name","POWER2","")} attr DEVICE_CH2 stateFormat {lc ReadingsVal("$name","POWER2","")}
@ -131,18 +133,8 @@ attr DEVICE_CH2 setList \
on:noArg COMMAND/POWER2 1\ on:noArg COMMAND/POWER2 1\
toggle:noArg COMMAND/POWER2 2 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 # basic tasmota device with unprefixed readings
name:tasmota_noprefix_pure_base name:A_09x_tasmota_pure_base_noprefix
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
attr DEVICE readingList \ attr DEVICE readingList \
tele/DEVICE/LWT:.* LWT\ tele/DEVICE/LWT:.* LWT\
@ -155,9 +147,9 @@ attr DEVICE autocreate 0
# tasmota 4ch as one FHEM device. # tasmota 4ch as one FHEM device.
name:tasmota_noprefix_sonoff_4ch name:A_04a_tasmota_noprefix_sonoff_4ch
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
set DEVICE attrTemplate tasmota_noprefix_pure_base set DEVICE attrTemplate A_09x_tasmota_pure_base_noprefix
attr DEVICE setList \ attr DEVICE setList \
p1:on,off cmnd/DEVICE/POWER1 $EVTPART1\ p1:on,off cmnd/DEVICE/POWER1 $EVTPART1\
p2:on,off cmnd/DEVICE/POWER2 $EVTPART1\ p2:on,off cmnd/DEVICE/POWER2 $EVTPART1\
@ -177,7 +169,7 @@ attr DEVICE autocreate 0
# SHELLY # SHELLY
# #
# shelly1 using original firmware. # shelly1 using original firmware.
name:shelly1 name:A_10_shelly1
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
par:DEVNAME;Shelly1 name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef } par:DEVNAME;Shelly1 name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef }
attr DEVICE setList\ attr DEVICE setList\
@ -187,7 +179,7 @@ attr DEVICE readingList shellies/DEVNAME/relay/0:.* state
# shelly2 using original firmware. # shelly2 using original firmware.
# NOTE: a second device will be created for the second channel # NOTE: a second device will be created for the second channel
name:shelly2 name:A_11a_shelly2
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
par:DEVNAME;Shelly2 name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef } par:DEVNAME;Shelly2 name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef }
attr DEVICE setList\ attr DEVICE setList\
@ -205,7 +197,7 @@ attr DEVICE_CH2 setList \
# shelly4pro using original firmware # shelly4pro using original firmware
# NOTE: for each of the second to fourth channel, a new device will be created # 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 filter:TYPE=MQTT2_DEVICE
par:DEVNAME;Shelly4Pro name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef } par:DEVNAME;Shelly4Pro name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef }
attr DEVICE setList\ 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 attr DEVICE comment Channel 4 for DEVICE, see also DEVICE, DEVICE_CH2 and DEVICE_CH3
# shellybulb using original firmware. Tested with 1.3 # shellybulb using original firmware. Tested with 1.3
name:shellybulb name:A_15_shellybulb
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
par:DEVNAME;name of this shelly;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]+)/, ? $1 : undef } par:DEVNAME;name of this shelly;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]+)/, ? $1 : undef }
attr DEVICE setList\ attr DEVICE setList\
@ -260,65 +252,45 @@ attr DEVICE webCmd on:off:brightness:temp:rgb
attr DEVICE genericDeviceType light attr DEVICE genericDeviceType light
attr DEVICE icon light_control 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. #The ESP-Milight-Hub bridge device
# NOTE: for each of the second to fourth channel, a new device will be created #Atm there are no furter commands to be set to the esp itself
name:shelly4pro name:X_01_esp_milight_hub_bridge_experimental
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
par:CHIPID;serial number of this ESP chip;{ AttrVal("DEVICE","readingList","") =~ m,shellies/.*_(.*)[/]?:, ? $1 : undef } par:BASE_ID;BASE_ID typically is milight;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/]updates/.*:, ? $1 : undef }
attr DEVICE setList\ par:REMOTE_ID;HEX number representing a specific remote or bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](0x....)[/].*:, ? $2 : undef }
off:noArg shellies/shelly4pro-CHIPID/relay/0/command off\ par:BULB_TYPE;rgbw, cct, rgb_cct, rgb, fut089, ;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](.*)[/](.*)[/].*:, ? $3 : undef }
on:noArg shellies/shelly4pro-CHIPID/relay/0/command on par:GROUP_ID;HEX number representing a specific remote or bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](0x....)[/](.*)[/](.*):, ? $4 : undef }
attr DEVICE readingList shellies/shellyswitch-CHIPID/relay/0:.* state attr DEVICE bridgeRegexp BASE_ID/states/(0x....)/.*/([0-4])?.*:.* "milight_$1_$2"
attr DEVICE getList shellies/shelly4pro-CHIPID/relay/0/power power1\ attr DEVICE autocreate 1
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
# shellybulb using original firmware. Tested with 1.3 #rgbw-bulb
name:shellybulb name:X_01_esp_milight_hub_rgbw_bulb_experimental
filter:TYPE=MQTT2_DEVICE filter:TYPE=MQTT2_DEVICE
par:DEVNAME;name of this shelly;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]+)/, ? $1 : undef } par:BASE_ID;BASE_ID typically is milight;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/]updates/.*:, ? $1 : undef }
attr DEVICE setList\ par:REMOTE_ID;HEX number representing a specific remote or bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](0x....)[/].*:, ? $2 : undef }
off:noArg shellies/DEVNAME/color/0/command off\ par:BULB_TYPE;rgbw, cct, rgb_cct, rgb, fut089, ;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](.*)[/](.*)[/].*:, ? $3 : undef }
on:noArg shellies/DEVNAME/color/0/command on\ par:GROUP_ID;HEX number representing a specific remote or bridge;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/](0x....)[/](.*)[/](.*):, ? $4 : undef }
brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"ison":"true","mode":"white","$EVTPART0":"$EVTPART1"}\ deletereading DEVICE .*_.*
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
attr DEVICE icon light_control 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.

View File

@ -30,7 +30,7 @@ FHEM/00_MAXLAN.pm rudolfkoenig/orphan MAX
FHEM/00_MQTT.pm hexenmeister MQTT FHEM/00_MQTT.pm hexenmeister MQTT
FHEM/00_MQTT2_SERVER.pm rudolfkoenig MQTT FHEM/00_MQTT2_SERVER.pm rudolfkoenig MQTT
FHEM/00_MQTT2_CLIENT.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_NetzerI2C.pm klausw Sonstige Systeme
FHEM/00_Neuron.pm klausw Sonstige Systeme FHEM/00_Neuron.pm klausw Sonstige Systeme
FHEM/00_OWX.pm pahenning 1Wire 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_DEVICE hexenmeister MQTT
FHEM/10_MQTT_GENERIC_BRIDGE hexenmeister MQTT FHEM/10_MQTT_GENERIC_BRIDGE hexenmeister MQTT
FHEM/10_MQTT2_DEVICE.pm rudolfkoenig 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_NeuronPin.pm klausw Sonstige Systeme
FHEM/10_OWServer.pm neubert/mfr69bs 1Wire FHEM/10_OWServer.pm neubert/mfr69bs 1Wire
FHEM/10_SOMFY.pm viegener Sonstige Systeme FHEM/10_SOMFY.pm viegener Sonstige Systeme
@ -539,7 +539,7 @@ FHEM/UConv.pm loredo FHEM Development
FHEM/Unit.pm loredo FHEM Development FHEM/Unit.pm loredo FHEM Development
FHEM/YahooWeatherAPI.pm neubert Unterstuetzende Dienste/Wettermodule FHEM/YahooWeatherAPI.pm neubert Unterstuetzende Dienste/Wettermodule
FHEM/lib/Device/Firmata/* jensb Sonstige Systeme 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/MP3/* Reinerlein Multimedia
FHEM/lib/Net/MQTT.pod hexenmeister MQTT FHEM/lib/Net/MQTT.pod hexenmeister MQTT
FHEM/lib/Net/MQTT/* hexenmeister MQTT FHEM/lib/Net/MQTT/* hexenmeister MQTT