diff --git a/FHEM/lib/AttrTemplate/mqtt2.template b/FHEM/lib/AttrTemplate/mqtt2.template index 1e5a438d2..3ac73130b 100644 --- a/FHEM/lib/AttrTemplate/mqtt2.template +++ b/FHEM/lib/AttrTemplate/mqtt2.template @@ -10,62 +10,62 @@ # The zigbee2mqtt bridge device name:zigbee2mqtt_bridge filter:TYPE=MQTT2_DEVICE -par:BASEID;base ID set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,(^.*)[/].*:, ? $1 : undef } -attr DEVICE bridgeRegexp BASEID/0x([A-Za-z0-9]*)[/]?.*:.* "zigbee_$1" +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 setList\ - permit_join:true,false BASEID/bridge/config/permit_join $EVTPART1\ - remove:textField BASEID/bridge/config/remove $EVTPART1\ - log_level:debug,info,warn,error BASEID/bridge/config/log_level $EVTPART1\ - rename:textField BASEID/bridge/config/rename {"old":"$EVTPART1","new":"$EVTPART2"}\ - network_map:raw,graphviz BASEID/bridge/networkmap $EVTPART1\ - devicelist:noArg BASEID/bridge/config/devices -attr DEVICE readingList BASEID/bridge/log:.* { json2nameValue($EVENT) }\ - BASEID/bridge/state:.* state + permit_join:true,false BASE_TOPIC/bridge/config/permit_join $EVTPART1\ + remove:textField BASE_TOPIC/bridge/config/remove $EVTPART1\ + log_level:debug,info,warn,error BASE_TOPIC/bridge/config/log_level $EVTPART1\ + rename:textField BASE_TOPIC/bridge/config/rename {"old":"$EVTPART1","new":"$EVTPART2"}\ + network_map:raw,graphviz BASE_TOPIC/bridge/networkmap $EVTPART1\ + devicelist:noArg BASE_TOPIC/bridge/config/devices +attr DEVICE readingList BASE_TOPIC/bridge/log:.* { json2nameValue($EVENT) }\ + BASE_TOPIC/bridge/state:.* state # A dimmable light connected via zigbee2mqtt name:zigbee2mqtt_bulb filter:TYPE=MQTT2_DEVICE -par:BASEID;base ID 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 } attr DEVICE icon light_control attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)} attr DEVICE webCmd toggle:on:off:brightness attr DEVICE setList \ - on:noArg BASEID/NAMEINTHEBRIDGE/set {"state":"ON"}\ - off:noArg BASEID/NAMEINTHEBRIDGE/set {"state":"OFF"}\ - brightness:colorpicker,BRI,0,15,255 BASEID/NAMEINTHEBRIDGE/set {"state":"on","$EVTPART0":"$EVTPART1"} + 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"} # A dimmable color light connected via zigbee2mqtt name:zigbee2mqtt_colorbulb filter:TYPE=MQTT2_DEVICE -par:BASEID;base ID 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 } attr DEVICE icon light_control attr DEVICE webCmd toggle:on:off:brightness:color_temp attr DEVICE setList \ - on:noArg BASEID/NAMEINTHEBRIDGE/set {"state":"ON"}\ - off:noArg BASEID/NAMEINTHEBRIDGE/set {"state":"OFF"}\ - brightness:colorpicker,BRI,0,15,255 BASEID/NAMEINTHEBRIDGE/set {"state":"on","$EVTPART0":"$EVTPART1"}\ - color_temp:colorpicker,CT,250,1,454 BASEID/NAMEINTHEBRIDGE/set {"$EVTPART0":"$EVTPART1"} + 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"} name:zigbee2mqtt_colorbulbWithoutColorTemp filter:TYPE=MQTT2_DEVICE -par:BASEID;base ID 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 } 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 BASEID/NAMEINTHEBRIDGE/set {"state":"ON"}\ - off:noArg BASEID/NAMEINTHEBRIDGE/set {"state":"OFF"}\ - brightness:colorpicker,BRI,0,15,255 BASEID/NAMEINTHEBRIDGE/set {"state":"on","$EVTPART0":"$EVTPART1"}\ - color:colorpicker,RGB {"BASEID/NAMEINTHEBRIDGE/set ".zigbee2mqtt_RGB2JSON($EVTPART1)} + 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)} name:zigbee2mqtt_smokeDetector filter:TYPE=MQTT2_DEVICE -par:BASEID;base ID 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 } attr DEVICE icon secur_smoke_detector attr DEVICE stateFormat smoke @@ -77,12 +77,12 @@ attr DEVICE userReadings temperature_weather { sprintf("%.1f",ReadingsVal("DEVIC name:zigbee2mqtt_smart+plug filter:TYPE=MQTT2_DEVICE -par:BASEID;base ID 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 } attr DEVICE eventMap { dev=>{ON=>'on',OFF=>'off'} } attr DEVICE setList \ - off BASEID/NAMEINTHEBRIDGE/set OFF\ - on BASEID/NAMEINTHEBRIDGE/set ON + off BASE_TOPIC/NAMEINTHEBRIDGE/set OFF\ + on BASE_TOPIC/NAMEINTHEBRIDGE/set ON ########################################### @@ -148,46 +148,100 @@ attr DEVICE readingList \ tele/DEVICE/LWT:.* LWT\ tele/DEVICE/STATE:.* { json2nameValue($EVENT) }\ tele/DEVICE/SENSOR:.* { json2nameValue($EVENT) }\ - tele/DEVICE/INFO1:.* { json2nameValue($EVENT) }\ - tele/DEVICE/INFO2:.* { json2nameValue($EVENT) }\ - tele/DEVICE/INFO3:.* { json2nameValue($EVENT) }\ + tele/DEVICE/INFO.:.* { json2nameValue($EVENT) }\ stat/DEVICE/RESULT:.* { json2nameValue($EVENT) } deleteReading DEVICE .* attr DEVICE autocreate 0 + # tasmota 4ch as one FHEM device. name:tasmota_noprefix_sonoff_4ch filter:TYPE=MQTT2_DEVICE -attr DEVICE readingList \ - tele/DEVICE/LWT:.* LWT\ - tele/DEVICE/STATE:.* { json2nameValue($EVENT) }\ - tele/DEVICE/SENSOR:.* { json2nameValue($EVENT) }\ - tele/DEVICE/INFO1:.* { json2nameValue($EVENT) }\ - tele/DEVICE/INFO2:.* { json2nameValue($EVENT) }\ - tele/DEVICE/INFO3:.* { json2nameValue($EVENT) }\ - stat/DEVICE/RESULT:.* { json2nameValue($EVENT) } +set DEVICE attrTemplate tasmota_noprefix_pure_base attr DEVICE setList \ - p1on:noArg cmnd/DEVICE/POWER1 on\ - p1off:noArg cmnd/DEVICE/POWER1 off\ - p2on:noArg cmnd/DEVICE/POWER2 on\ - p2off:noArg cmnd/DEVICE/POWER2 off\ - p3on:noArg cmnd/DEVICE/POWER3 on\ - p3off:noArg cmnd/DEVICE/POWER3 off\ - p4on:noArg cmnd/DEVICE/POWER4 on\ - p4off:noArg cmnd/DEVICE/POWER4 off -attr DEVICE webCmd p1on:p1off:p2on:p2off:p3on:p3off:p4on:p4off + p1:on,off cmnd/DEVICE/POWER1 $EVTPART1\ + p2:on,off cmnd/DEVICE/POWER2 $EVTPART1\ + p3:on,off cmnd/DEVICE/POWER3 $EVTPART1\ + p4:on,off cmnd/DEVICE/POWER4 $EVTPART1 +attr DEVICE webCmd p1 on:p1 off:p2 on:p2 off:p3 on:p3 off:p4 on:p4 off attr DEVICE stateFormat {\ "