2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 01:09:47 +00:00

mqtt2.template: Change zigbee-rgbw-hex; add tasmota shutters

git-svn-id: https://svn.fhem.de/fhem/trunk@18996 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
Beta-User 2019-03-22 21:05:38 +00:00
parent 763520abad
commit 86c780256c

View File

@ -18,26 +18,26 @@ desc: <a href="https://forum.fhem.de/index.php/topic,94495.0.html">Forum Thread<
#
name:A_00_MQTT2_CLIENT_general_bridge
filter:TYPE=MQTT2_DEVICE
desc:recommended to use this as general bridgeing device when using MQTT2_CLIENT as IO to get around missing CID info for distinguishing different popular devices<br>NOTE: <br>NOTE:<br>- for use with MQTT2_CLIENT use a copy of the device and change its DEF to a different clientId like GeneralBridge, delete original's readingList after applying the template!
desc:recommended to use this as general bridgeing device when using MQTT2_CLIENT as IO to get around missing CID info for distinguishing different popular devices<br>NOTE:<br>This might create a new MQTT2-device or change existing ones, especially destroy readingList attributes! Have a look in the room you assigned to the IO device to find the new device.
par:IODEVNAME;Name of the IO-Device; {AttrVal("DEVICE","IODev","") ? AttrVal("DEVICE","IODev","" ) : undef }
par:DEVTYPE;TYPE of the device; { InternalVal("DEVICE","TYPE","")}
par:DEVCID;CID of the device as written in the DEF; { InternalVal(AttrVal("DEVICE","IODev",""),"clientId","mosquitto") eq InternalVal("DEVICE","DEF","mosquitto") ? "MQTT2_GeneralBridge" : InternalVal("DEVICE","DEF","mosquitto")}
par:IODEVROOM;Room of the IOdevice; {AttrVal(AttrVal("DEVICE","IODev",""),"room","" ) ? AttrVal(AttrVal("DEVICE","IODev",""),"room","" ) : undef }
attr DEVICE bridgeRegexp (tele|cmnd)[/]([^/]+)[/].*:.* "$2"\
defmod DEVCID MQTT2_\DEVICE DEVCID
attr DEVCID bridgeRegexp \
(tele|cmnd)[/]([^/]+)[/].*:.* "$2"\
shellies[/]([^/]+)[/].*:.* "$1"\
(ESPClient_[^/]+)[/].*:.* "$1"
attr DEVICE autocreate 1
attr DEVICE comment Do not use very open bridgeRegexp expressions! This might lead to irritating results...
attr DEVICE room IODEVROOM
attr DEVICE setStateList on off
#modify DEVICE DEVCID
#copy DEVICE DEVCID
attr DEVCID autocreate 1
attr DEVCID comment Do not use very open bridgeRegexp expressions! This might lead to irritating results...
attr DEVCID room IODEVROOM
setreading DEVCID associatedWith DEVICE
attr DEVCID setStateList on off
deleteAttr DEVICE readingList
#deleteAttr DEVCID readingList
#delete DEVICE
#reload 10_DEVTYPE.pm
#attr DEVCID model A_00_MQTT2_CLIENT_general_bridge
attr DEVICE model A_00_MQTT2_CLIENT_general_bridge
deletereading DEVICE .*
deleteAttr DEVCID readingList
deletereading DEVCID .*
attr DEVCID model A_00_MQTT2_CLIENT_general_bridge
###########################################
# zigbee2mqtt
@ -165,20 +165,23 @@ attr DEVICE model L_02c_zigbee2mqtt_light_rgb_rgb
#source post: https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935
name:L_02d_zigbee2mqtt_light_rgbw_hex
filter:TYPE=MQTT2_DEVICE:FILTER=CID=zigbee.*
desc: A dimmable rgbw light connected via zigbee2mqtt <br>rgb value is encoded as HEX value<br>Experimental, still untested
desc: A dimmable rgbw light connected via zigbee2mqtt <br>rgb value is encoded as HEX value<br>tested with Mueller Light tint RGBW bulb
par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : 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:hex:white
attr DEVICE webCmd toggle:on:off:brightness:color_temp:white:bright:color
attr DEVICE readingList BASE_TOPIC/DEV_ID:.* { json2nameValue($EVENT) }
attr DEVICE setList \
on:noArg BASE_TOPIC/DEV_ID/set {"state":"ON"}\
off:noArg BASE_TOPIC/DEV_ID/set {"state":"OFF"}\
white:noArg BASE_TOPIC/DEV_ID/set {"color_temp": 154 , "color_temp": 500}\
white:noArg BASE_TOPIC/DEV_ID/set {"brightness": 200 , "color_temp": 320}\
bright:noArg BASE_TOPIC/DEV_ID/set {"brightness": 254, "color_temp": 250}\
color_temp:colorpicker,CT,250,1,454 BASE_TOPIC/DEV_ID/set {"$EVTPART0":"$EVTPART1"}\
brightness:colorpicker,BRI,0,5,255 BASE_TOPIC/DEV_ID/set {"state":"on","$EVTPART0":"$EVTPART1"}\
hex:colorpicker,HEX,0,15,255 BASE_TOPIC/DEV_ID/set {"color":{"$EVTPART0":"#$EVTPART1"}}
color:colorpicker,HEX,0,15,255 BASE_TOPIC/DEV_ID/set {"color":{"$EVTPART0":"#$EVTPART1"}}
attr DEVICE userReadings color:color_y.* {Color::xyY2hex(ReadingsVal($name,"color_x",0),ReadingsVal($name,"color_y",0),ReadingsVal($name,"brightness",254))}
attr DEVICE model L_02d_zigbee2mqtt_light_rgbw_hex
#source post: https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935
@ -537,6 +540,67 @@ attr DEVICE_CH2 setStateList on off toggle
attr DEVICE model A_02_tasmota_2channel_split
attr DEVICE_CH2 model A_02_tasmota_2channel_split
#contributed by 87insane
# tasmota 2ch as shutter device.
name:A_02b_tasmota_2ch_shutter_invert_1
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
desc:Configures a dual chanel tasmota device as shutter; needs a special firmware version to operate.<br><a href="https://forum.fhem.de/index.php/topic,98366.msg917091.html#msg917091">Forum Thread</a><br>NOTE: This template will configure the shutter in ROLLO style with pct 0% = open shutter. Use template A_02b_tasmota_2ch_shutter_invert_0, if you need a Homematic-style device pct 100% = open.
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
par:IO_DEV;Currently used IO;{ AttrVal("DEVICE","IODev","")}
set DEVICE attrTemplate A_01z_tasmota_set_lowercase_texts_and_state1
set IO_DEV publish cmnd/DEVNAME/Backlog LedState 2; SetOption80 1; SetOption14 1; SetOption81 1; switchmode1 3; switchmode2 3; SaveData 1;
set IO_DEV publish cmnd/DEVNAME/Restart 1
defmod configure_DEVICEattrTemplate_at at +00:00:20 set IO_DEV publish cmnd/DEVNAME/Backlog SHUTTEROPENDURATION 20;; SHUTTERCLOSEDURATION 20;; SHUTTERINVERT 1;; GROUPTOPIC Rollos;; SaveData 1;;
attr DEVICE setList \
close:noArg cmnd/DEVNAME/SHUTTERCLOSE\
open:noArg cmnd/DEVNAME/SHUTTEROPEN\
half:noArg cmnd/DEVNAME/SHUTTERPOSITION 50\
pct:slider,0,1,100 cmnd/DEVNAME/SHUTTERPOSITION $EVTPART1\
stop:noArg cmnd/DEVNAME/SHUTTERSTOP\
resetClose:noArg cmnd/DEVNAME/SHUTTERSETCLOSE\
x_configuration cmnd/DEVNAME/$EVTPART1 $EVTPART2
attr DEVICE readingList \
tele/DEVNAME/LWT:.* LWT\
cmnd/DEVNAME/POWER:.* POWER\
stat/DEVNAME/RESULT:.* { json2nameValue($EVENT) }\
stat/DEVNAME/POWER1:.* POWER1\
stat/DEVNAME/POWER1:on {{'state' => 'opening'}}\
stat/DEVNAME/POWER2:.* POWER2\
stat/DEVNAME/POWER2:on {{'state' => 'closing'}}\
stat/DEVNAME/SHUTTER1:.* state\
stat/DEVNAME/SHUTTER1:.* pct\
tele/DEVNAME/RESULT:.* { json2nameValue($EVENT) }\
tele/DEVNAME/STATE:.* { json2nameValue($EVENT) }\
tele/DEVNAME/SENSOR:.* { json2nameValue($EVENT) }\
tele/DEVNAME/INFO.:.* { json2nameValue($EVENT) }\
tele/DEVNAME/UPTIME:.* { json2nameValue($EVENT) }
attr DEVICE devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen@green Offline:10px-kreis-rot@red 100:fts_shutter_100 0:fts_shutter_10 9\d.*:fts_shutter_90 8\d.*:fts_shutter_80 7\d.*:fts_shutter_70 6\d.*:fts_shutter_60 5\d.*:fts_shutter_50 4\d.*:fts_shutter_40 3\d.*:fts_shutter_30 2\d.*:fts_shutter_20 1\d.*:fts_shutter_10 \b\d\b.*:fts_shutter_10 set_.*:fts_shutter_updown
attr DEVICE cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr DEVICE webCmd :open:close:half:stop:pct
attr DEVICE stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state
deleteReading DEVICE .*
attr DEVICE setStateList open close half stop pct
attr DEVICE comment After applying the template set SHUTTEROPENDURATION and SHUTTERCLOSEDURATION first.\
Use the "set x_configuration" Option. Example: "set x_configuration SHUTTEROPENDURATION 35"\
Shutter specific commands available: SHUTTEROPENDURATION, SHUTTERCLOSEDURATION, SHUTTERRELAY, SHUTTER50PERCENT, SHUTTERSETCLOSE, SHUTTERINVERT; you may use this for general setOptions in tasmota also.\
commands may need restart to take effect.\
For calibration and further information on the available commands see https://github.com/stefanbode/Sonoff-Tasmota/wiki/Shutter-blinds-working-with-two-relays.
attr DEVICE model A_02b_tasmota_2ch_shutter_invert_1
# tasmota 2ch as shutter device.
name:A_02b_tasmota_2ch_shutter_invert_0
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
desc:Configures a dual chanel tasmota device as shutter; needs a special firmware version to operate.<br><a href="https://forum.fhem.de/index.php/topic,98366.msg917091.html#msg917091">Forum Thread</a><br>NOTE: This template will configure the shutter in Homematic-style with pct 100% = open. For ROLLO style device with pct 0% = open shutter. Use template A_02b_tasmota_2ch_shutter_invert_1 instead.
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
par:IO_DEV;Currently used IO;{ AttrVal("DEVICE","IODev","")}
set DEVICE attrTemplate A_02b_tasmota_2ch_shutter_invert_1
defmod configure_DEVICEattrTemplate_at at +00:00:20 set IO_DEV publish cmnd/DEVNAME/Backlog SHUTTEROPENDURATION 20;; SHUTTERCLOSEDURATION 20;; SHUTTERINVERT 0;; GROUPTOPIC Rollos;; SaveData 1;;
attr DEVICE devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen@green Offline:10px-kreis-rot@red 100:fts_shutter_10 0:fts_shutter_100 9\d.*:fts_shutter_10 8\d.*:fts_shutter_20 7\d.*:fts_shutter_30 6\d.*:fts_shutter_40 5\d.*:fts_shutter_50 4\d.*:fts_shutter_60 3\d.*:fts_shutter_70 2\d.*:fts_shutter_80 1\d.*:fts_shutter_90 \b\d\b.*:fts_shutter_90
attr DEVICE model A_02b_tasmota_2ch_shutter_invert_0
# tasmota 4ch as one FHEM device.
name:A_04b_tasmota_4ch_unified_icon
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*