mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-07 16:59:18 +00:00
mqtt2.template: tasmota: change readingList regex, add rf template
git-svn-id: https://svn.fhem.de/fhem/trunk@19345 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
ca0f4375e4
commit
90a4195b52
@ -389,21 +389,21 @@ attr DEVICE model L_14_aqara_cube
|
||||
name:A_01a_tasmota_basic_state_power1
|
||||
filter:TYPE=MQTT2_DEVICE
|
||||
desc:Applies to Sonoff Basic, S20 using POWER1-topic for relay state <br>NOTE: The format the device is sending data will also be changed to lowercase!<br>NOTE: This template is intended to configure also channel one of multi-channel tasmota devices
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
|
||||
par:STATTOPIC;ack topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}stat$3" : undef }
|
||||
attr DEVICE stateFormat POWER1
|
||||
#attr DEVICE userReadings state:POWER1:.* { lc(ReadingsVal($name,"POWER1","")) }
|
||||
#attr DEVICE eventMap { dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} }
|
||||
set DEVICE attrTemplate A_01z_tasmota_set_lowercase_texts_and_state1
|
||||
set DEVICE attrTemplate A_01z_tasmota_set_lowercase_texts_and_state1_nF
|
||||
attr DEVICE setList \
|
||||
off:noArg cmnd/DEVNAME/POWER1 0\
|
||||
on:noArg cmnd/DEVNAME/POWER1 1\
|
||||
toggle:noArg cmnd/DEVNAME/POWER1 2
|
||||
off:noArg CMNDTOPIC/POWER1 0\
|
||||
on:noArg CMNDTOPIC/POWER1 1\
|
||||
toggle:noArg CMNDTOPIC/POWER1 2
|
||||
attr DEVICE readingList \
|
||||
tele/DEVNAME/LWT:.* LWT\
|
||||
tele/DEVNAME/STATE:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/INFO.:.* { json2nameValue($EVENT) }\
|
||||
stat/DEVNAME/RESULT:.* { json2nameValue($EVENT) }
|
||||
TELETOPIC/LWT:.* LWT\
|
||||
TELETOPIC/STATE:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
|
||||
STATTOPIC/RESULT:.* { json2nameValue($EVENT) }
|
||||
deletereading -q DEVICE (?!associatedWith).*
|
||||
attr DEVICE setStateList on off toggle
|
||||
attr DEVICE autocreate 0
|
||||
@ -416,30 +416,33 @@ desc:Applies to Sonoff 1 Channel devices using POWER-topic for relay state <br>N
|
||||
set DEVICE attrTemplate A_01a_tasmota_basic_state_power1
|
||||
|
||||
name:A_01x_tasmota_clear_readings_reset_readingsList_and_reboot
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd|stat).*
|
||||
desc: replaces the readingList with defaults, clears the readingList and reboots to get all readings
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
|
||||
par:STATTOPIC;ack topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}stat$3" : undef }
|
||||
#par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:IO_DEV;Currently used IO;{ AttrVal("DEVICE","IODev","")}
|
||||
attr DEVICE readingList \
|
||||
tele/DEVNAME/LWT:.* LWT\
|
||||
tele/DEVNAME/STATE:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/INFO.:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/UPTIME:.* { json2nameValue($EVENT) }\
|
||||
stat/DEVNAME/RESULT:.* { json2nameValue($EVENT) }
|
||||
TELETOPIC/LWT:.* LWT\
|
||||
TELETOPIC/STATE:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/UPTIME:.* { json2nameValue($EVENT) }\
|
||||
STATTOPIC/RESULT:.* { json2nameValue($EVENT) }
|
||||
deletereading -q DEVICE (?!associatedWith).*
|
||||
set IO_DEV publish cmnd/DEVNAME/Restart 1
|
||||
set IO_DEV publish CMNDTOPIC/Restart 1
|
||||
attr DEVICE autocreate 0
|
||||
|
||||
name:A_01x_tasmota_prefix_clearing_and_reboot
|
||||
filter:TYPE=MQTT2_DEVICE::FILTER=readingList=.*(tele|cmnd).*
|
||||
desc:Applies to all tasmota devices <br>NOTE: This template will delete some readings and clear the readingList from prefix use when expanding json. <br>When applying the template the tasmota device is rebooted to get all readings
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:IO_DEV;Currently used IO;{ AttrVal("DEVICE","IODev","")}
|
||||
par:READINGLISTCLEARED;cleared from prefixes;{ AttrVal("DEVICE","readingList","") =~ s/, '[^_]+[_]'/, ''/g, ? $1 : undef }
|
||||
attr DEVICE readingList READINGLISTCLEARED
|
||||
deletereading -q DEVICE (?!associatedWith).*
|
||||
set IO_DEV publish cmnd/DEVNAME/Restart 1
|
||||
set IO_DEV publish CMNDTOPIC/Restart 1
|
||||
attr DEVICE autocreate 0
|
||||
|
||||
# tasmota device with one relay, one motion sensor via switch
|
||||
@ -447,11 +450,11 @@ name:A_01b_tasmota_1ch+motion+SI7021
|
||||
desc:tasmota device with one relay, one motion sensor via switch and one SI7021 combined temperature and humidity sensor. <br>Configures a single device including all readings
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
set DEVICE attrTemplate A_01a_tasmota_basic_state_power1
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
attr DEVICE setList \
|
||||
off:noArg cmnd/DEVNAME/POWER1 0\
|
||||
on:noArg cmnd/DEVNAME/POWER1 1\
|
||||
toggle:noArg cmnd/DEVNAME/POWER1 2
|
||||
off:noArg CMNDTOPIC/POWER1 0\
|
||||
on:noArg CMNDTOPIC/POWER1 1\
|
||||
toggle:noArg CMNDTOPIC/POWER1 2
|
||||
attr DEVICE stateFormat {\
|
||||
ReadingsVal($name, "POWER1", "off") . " "\
|
||||
ReadingsVal($name, "POWER2", "off") . " "\
|
||||
@ -485,19 +488,20 @@ attr DEVICE model A_01c_tasmota_POW
|
||||
name:A_01d_tasmota_ir
|
||||
desc:Demonstrates multiple options how to configure tasmota devices as IR remote control extension.<br><a href="https://forum.fhem.de/index.php/topic,67316.0.html">Forum Thread</a><br><a href=https://github.com/arendst/Sonoff-Tasmota/wiki/Commands#irremote">Tasmota IRremote Commands</a><br><a href="https://github.com/altelch/SonoffIR">Simple IR-circuit</a><br><a href="https://forum.fhem.de/index.php/topic,98723.msg920946.html#msg920946">set <devicename> irsend</a>
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
|
||||
par:POWERCMD;needed command to be sent like in example dec '{"protocol":"NEC","bits":32,"data":551489775}' (without '');{ undef }
|
||||
par:VOLUMEUPCMD;needed command to be sent like in example raw '0,926,844,958,832,1798,868,902,848,900,870,900,852,908,918,958,794,934,874,928,1738,934,856,1764' (without '');{ undef }
|
||||
par:MULTIPLE1CMD;needed command to be sent like in example hex '{"Protocol":"NEC","Bits":32,"Data":0x8166817E}' (without '');{ undef }
|
||||
par:MULTIPLE2CMD;needed command to be sent like in example hex '{"Protocol":"NEC","Bits":32,"Data":0x8166817E}' (without '');{ undef }
|
||||
attr DEVICE setList \
|
||||
power:noArg cmnd/DEVNAME/IRsend POWERCMD\
|
||||
volumeup:noArg cmnd/DEVNAME/IRsend VOLUMEUPCMD\
|
||||
11:noArg cmnd/DEVNAME/Backlog IRsend MULTIPLE1CMD;cmnd/DEVNAME/delay 8;cmnd/DEVNAME/IRsend MULTIPLE2CMD\
|
||||
irsend:textField cmnd/DEVNAME/irsend {"Protocol":"$EVTPART1","Bits":$EVTPART2,"Data":"0x$EVTPART3"}
|
||||
power:noArg CMNDTOPIC/IRsend POWERCMD\
|
||||
volumeup:noArg CMNDTOPIC/IRsend VOLUMEUPCMD\
|
||||
11:noArg CMNDTOPIC/Backlog IRsend MULTIPLE1CMD;CMNDTOPIC/delay 8;CMNDTOPIC/IRsend MULTIPLE2CMD\
|
||||
irsend:textField CMNDTOPIC/irsend {"Protocol":"$EVTPART1","Bits":$EVTPART2,"Data":"0x$EVTPART3"}
|
||||
attr DEVICE readingList \
|
||||
tele/DEVNAME/INFO.:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/RESULT:.* { $EVENT =~ m,..IrReceived....Protocol...([A-Za-z0-9]+)...Bits..([\d]+)..Data...([A-Za-z0-9]+)..., ? {"$1_$2"=>$3} : json2nameValue($EVENT) }
|
||||
TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/RESULT:.* { $EVENT =~ m,..IrReceived....Protocol...([A-Za-z0-9]+)...Bits..([\d]+)..Data...([A-Za-z0-9]+)..., ? {"$1_$2"=>$3} : json2nameValue($EVENT) }
|
||||
attr DEVICE stateFormat state\
|
||||
<br>\
|
||||
<a href="http://IPAddress" target="_blank">IPAddress</a>
|
||||
@ -505,26 +509,53 @@ attr DEVICE event-on-change-reading .*
|
||||
attr DEVICE icon IR
|
||||
attr DEVICE model A_01d_tasmota_ir
|
||||
|
||||
#tasmota device with rf-circuit
|
||||
name:A_01d_tasmota_rf
|
||||
desc:Demonstrates multiple options how to configure tasmota devices as rf remote control extension.<br><a href=<br><a href="https://forum.fhem.de/index.php/topic,99042.0.html">Forum Thread</a><br>NOTE: still widely untested...
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd|stat).*
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
|
||||
#par:POWERCMD;needed command to be sent like in example dec '{"protocol":"NEC","bits":32,"data":551489775}' (without '');{ undef }
|
||||
#par:VOLUMEUPCMD;needed command to be sent like in example raw '0,926,844,958,832,1798,868,902,848,900,870,900,852,908,918,958,794,934,874,928,1738,934,856,1764' (without '');{ undef }
|
||||
#par:MULTIPLE1CMD;needed command to be sent like in example hex '{"Protocol":"NEC","Bits":32,"Data":0x8166817E}' (without '');{ undef }
|
||||
#par:MULTIPLE2CMD;needed command to be sent like in example hex '{"Protocol":"NEC","Bits":32,"Data":0x8166817E}' (without '');{ undef }
|
||||
attr DEVICE setList \
|
||||
power:noArg CMNDTOPIC/RFsend POWERCMD\
|
||||
volumeup:noArg CMNDTOPIC/RFsend VOLUMEUPCMD\
|
||||
rfsend:textField CMNDTOPIC/RFsend {"Protocol":"$EVTPART1","Bits":$EVTPART2,"Data":"0x$EVTPART3"}
|
||||
attr DEVICE readingList \
|
||||
TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
|
||||
# TELETOPIC/RESULT:.* /SmartHome/Interface/Bridge/tele/RESULT:.* { $EVENT =~ m,..RfReceived....Sync..([A-Za-z0-9]+)..Low..([\d]+)..High..([\d]+)..Data...([A-Za-z0-9]+)...RfKey...([^"]+)..., ? {'$1_$2_$3'=>"$4"} : json2nameValue($EVENT) }\
|
||||
TELETOPIC/RESULT:.* { $EVENT =~ m,..RfReceived....Sync..([A-Za-z0-9]+)..Low..([\d]+)..High..([\d]+)..Data...([A-Za-z0-9]+)...RfKey...([^"]+)..., ? {"json_raw"=>$EVENT} : undef }\
|
||||
TELETOPIC/RESULT:.* { $EVENT =~ m,..RfReceived....Sync..([A-Za-z0-9]+)..Low..([\d]+)..High..([\d]+)..Data...([A-Za-z0-9]+)...RfKey...([^"]+)..., ? {"Data"=>"$4"} : undef }
|
||||
attr DEVICE stateFormat state\
|
||||
<br>\
|
||||
<a href="http://IPAddress" target="_blank">IPAddress</a>
|
||||
attr DEVICE event-on-change-reading .*
|
||||
attr DEVICE model A_01d_tasmota_rf
|
||||
|
||||
# tasmota 2ch as one FHEM device.
|
||||
name:A_02a_tasmota_2ch_unified
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
desc:Configures a single device including all readings
|
||||
set DEVICE attrTemplate A_01a_tasmota_basic_state_power1
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
|
||||
par:STATTOPIC;ack topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}stat$3" : undef }
|
||||
attr DEVICE setList \
|
||||
POWER1:on,off,toggle cmnd/DEVNAME/POWER1 $EVTPART1\
|
||||
POWER2:on,off,toggle cmnd/DEVNAME/POWER2 $EVTPART1
|
||||
POWER1:on,off,toggle CMNDTOPIC/POWER1 $EVTPART1\
|
||||
POWER2:on,off,toggle CMNDTOPIC/POWER2 $EVTPART1
|
||||
attr DEVICE webCmd POWER1 on:POWER1 off:POWER2 on:POWER2 off
|
||||
attr DEVICE devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on 2.on:on:POWER2+off 2.off:off:POWER2+on
|
||||
attr DEVICE readingList \
|
||||
tele/DEVNAME/LWT:.* LWT\
|
||||
tele/DEVNAME/STATE:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/INFO.:.* { json2nameValue($EVENT) }\
|
||||
stat/DEVNAME/RESULT:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/UPTIME:.* { json2nameValue($EVENT) }\
|
||||
stat/DEVNAME/POWER1:.* POWER1\
|
||||
stat/DEVNAME/POWER2:.* POWER2
|
||||
TELETOPIC/LWT:.* LWT\
|
||||
TELETOPIC/STATE:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
|
||||
STATTOPIC/RESULT:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/UPTIME:.* { json2nameValue($EVENT) }\
|
||||
STATTOPIC/POWER1:.* POWER1\
|
||||
STATTOPIC/POWER2:.* POWER2
|
||||
attr DEVICE stateFormat LWT\
|
||||
1:POWER1\
|
||||
2:POWER2\
|
||||
@ -538,8 +569,7 @@ name:A_02_tasmota_2channel_split
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
desc:sonoff 2 channel device flashed with Tasmota. <br>NOTE: a second device will be created for the second channel
|
||||
set DEVICE attrTemplate A_01a_tasmota_basic_state_power1
|
||||
#par:COMMAND;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\btele(/.*)?/LWT:, ? "${1}cmnd$2" : undef }
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
attr DEVICE comment Channel 1 for DEVICE, see also DEVICE_CH2
|
||||
copy DEVICE DEVICE_CH2
|
||||
attr DEVICE_CH2 stateFormat POWER2
|
||||
@ -547,9 +577,9 @@ attr DEVICE_CH2 stateFormat POWER2
|
||||
attr DEVICE_CH2 comment Channel 2 for DEVICE
|
||||
setreading DEVICE_CH2 associatedWith DEVICE
|
||||
attr DEVICE_CH2 setList \
|
||||
off:noArg cmnd/DEVNAME/POWER2 0\
|
||||
on:noArg cmnd/DEVNAME/POWER2 1\
|
||||
toggle:noArg cmnd/DEVNAME/POWER2 2
|
||||
off:noArg CMNDTOPIC/POWER2 0\
|
||||
on:noArg CMNDTOPIC/POWER2 1\
|
||||
toggle:noArg CMNDTOPIC/POWER2 2
|
||||
attr DEVICE_CH2 setStateList on off toggle
|
||||
attr DEVICE model A_02_tasmota_2channel_split
|
||||
attr DEVICE_CH2 model A_02_tasmota_2channel_split
|
||||
@ -559,34 +589,34 @@ attr DEVICE_CH2 model A_02_tasmota_2channel_split
|
||||
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:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : 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;;
|
||||
set IO_DEV publish CMNDTOPIC/Backlog LedState 2; SetOption80 1; SetOption14 1; SetOption81 1; switchmode1 3; switchmode2 3; SaveData 1;
|
||||
set IO_DEV publish CMNDTOPIC/Restart 1
|
||||
defmod configure_DEVICEattrTemplate_at at +00:00:20 set IO_DEV publish CMNDTOPIC/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
|
||||
close:noArg CMNDTOPIC/SHUTTERCLOSE\
|
||||
open:noArg CMNDTOPIC/SHUTTEROPEN\
|
||||
half:noArg CMNDTOPIC/SHUTTERPOSITION 50\
|
||||
pct:slider,0,1,100 CMNDTOPIC/SHUTTERPOSITION $EVTPART1\
|
||||
stop:noArg CMNDTOPIC/SHUTTERSTOP\
|
||||
resetClose:noArg CMNDTOPIC/SHUTTERSETCLOSE\
|
||||
x_configuration CMNDTOPIC/$EVTPART1 $EVTPART2
|
||||
attr DEVICE readingList \
|
||||
tele/DEVNAME/LWT:.* LWT\
|
||||
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) }
|
||||
TELETOPIC/LWT:.* LWT\
|
||||
STATTOPIC/RESULT:.* { json2nameValue($EVENT) }\
|
||||
STATTOPIC/POWER1:.* POWER1\
|
||||
STATTOPIC/POWER1:on {{'state' => 'opening'}}\
|
||||
STATTOPIC/POWER2:.* POWER2\
|
||||
STATTOPIC/POWER2:on {{'state' => 'closing'}}\
|
||||
STATTOPIC/SHUTTER1:.* state\
|
||||
STATTOPIC/SHUTTER1:.* pct\
|
||||
TELETOPIC/RESULT:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/STATE:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/UPTIME:.* { json2nameValue($EVENT) }
|
||||
attr DEVICE devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen Offline:10px-kreis-rot 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
|
||||
@ -608,10 +638,10 @@ attr DEVICE model A_02b_tasmota_2ch_shutter_invert_1
|
||||
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:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : 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;;
|
||||
defmod configure_DEVICEattrTemplate_at at +00:00:20 set IO_DEV publish CMNDTOPIC/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 Offline:10px-kreis-rot 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
|
||||
|
||||
@ -620,25 +650,26 @@ name:A_04b_tasmota_4ch_unified_icon
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
desc:Configures a single device including all readings <br>NOTE: Clicking on icons will issue a corresponding toggle command
|
||||
set DEVICE attrTemplate A_01a_tasmota_basic_state_power1
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
|
||||
par:STATTOPIC;ack topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}stat$3" : undef }
|
||||
attr DEVICE setList \
|
||||
POWER1:on,off,toggle cmnd/DEVNAME/POWER1 $EVTPART1\
|
||||
POWER2:on,off,toggle cmnd/DEVNAME/POWER2 $EVTPART1\
|
||||
POWER3:on,off,toggle cmnd/DEVNAME/POWER3 $EVTPART1\
|
||||
POWER4:on,off,toggle cmnd/DEVNAME/POWER4 $EVTPART1
|
||||
POWER1:on,off,toggle CMNDTOPIC/POWER1 $EVTPART1\
|
||||
POWER2:on,off,toggle CMNDTOPIC/POWER2 $EVTPART1\
|
||||
POWER3:on,off,toggle CMNDTOPIC/POWER3 $EVTPART1\
|
||||
POWER4:on,off,toggle CMNDTOPIC/POWER4 $EVTPART1
|
||||
attr DEVICE devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on 2.on:on:POWER2+off 2.off:off:POWER2+on 3.on:on:POWER3+off 3.off:off:POWER3+on 4.on:on:POWER4+off 4.off:off:POWER4+on
|
||||
#attr DEVICE userReadings state:POWER.*:.* { lc(ReadingsVal($name,"POWER1","") . " " . ReadingsVal($name,"POWER2","") . " " . ReadingsVal($name,"POWER3","") . " " . ReadingsVal($name,"POWER4","")) }
|
||||
attr DEVICE readingList \
|
||||
tele/DEVNAME/LWT:.* LWT\
|
||||
tele/DEVNAME/STATE:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/INFO.:.* { json2nameValue($EVENT) }\
|
||||
stat/DEVNAME/RESULT:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/UPTIME:.* { json2nameValue($EVENT) }\
|
||||
stat/DEVNAME/POWER1:.* POWER1\
|
||||
stat/DEVNAME/POWER2:.* POWER2\
|
||||
stat/DEVNAME/POWER3:.* POWER3\
|
||||
stat/DEVNAME/POWER4:.* POWER4
|
||||
TELETOPIC/LWT:.* LWT\
|
||||
TELETOPIC/STATE:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
|
||||
STATTOPIC/RESULT:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/UPTIME:.* { json2nameValue($EVENT) }\
|
||||
STATTOPIC/POWER1:.* POWER1\
|
||||
STATTOPIC/POWER2:.* POWER2\
|
||||
STATTOPIC/POWER3:.* POWER3\
|
||||
STATTOPIC/POWER4:.* POWER4
|
||||
attr DEVICE stateFormat LWT\
|
||||
1:POWER1\
|
||||
2:POWER2\
|
||||
@ -654,19 +685,20 @@ name:A_04a_tasmota_4ch_unified_basic_text
|
||||
desc:Configures a single device
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
set DEVICE attrTemplate A_01a_tasmota_basic_state_power1
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
#attr DEVICE userReadings state:POWER.*:.* { lc(ReadingsVal($name,"POWER1","") . " " . ReadingsVal($name,"POWER2","") . " " . ReadingsVal($name,"POWER3","") . " " . ReadingsVal($name,"POWER4","")) }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
|
||||
par:STATTOPIC;ack topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}stat$3" : undef }
|
||||
attr DEVICE readingList \
|
||||
tele/DEVNAME/LWT:.* LWT\
|
||||
tele/DEVNAME/STATE:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/INFO.:.* { json2nameValue($EVENT) }\
|
||||
stat/DEVNAME/RESULT:.* { json2nameValue($EVENT) }
|
||||
TELETOPIC/LWT:.* LWT\
|
||||
TELETOPIC/STATE:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/SENSOR:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
|
||||
STATTOPIC/RESULT:.* { json2nameValue($EVENT) }
|
||||
attr DEVICE setList \
|
||||
POWER1:on,off,toggle cmnd/DEVNAME/POWER1 $EVTPART1\
|
||||
POWER2:on,off,toggle cmnd/DEVNAME/POWER2 $EVTPART1\
|
||||
POWER3:on,off,toggle cmnd/DEVNAME/POWER3 $EVTPART1\
|
||||
POWER4:on,off,toggle cmnd/DEVNAME/POWER4 $EVTPART1
|
||||
POWER1:on,off,toggle CMNDTOPIC/POWER1 $EVTPART1\
|
||||
POWER2:on,off,toggle CMNDTOPIC/POWER2 $EVTPART1\
|
||||
POWER3:on,off,toggle CMNDTOPIC/POWER3 $EVTPART1\
|
||||
POWER4:on,off,toggle CMNDTOPIC/POWER4 $EVTPART1
|
||||
attr DEVICE setStateList on off toggle
|
||||
attr DEVICE stateFormat P1: POWER1 P2: POWER2 P3: POWER3 P4: POWER4
|
||||
attr DEVICE webCmd POWER1 toggle:POWER2 toggle:POWER3 toggle:POWER4 toggle
|
||||
@ -677,18 +709,20 @@ name:A_05a_tasmota_rgb_led_controller
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
desc:Tasmota RGB controller tested with RGB variant of Magichome, arilux LC-01 ,etc... -> https://github.com/arendst/Sonoff-Tasmota/wiki/MagicHome-LED-strip-controller
|
||||
set DEVICE attrTemplate A_01a_tasmota_basic_state_power1
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
|
||||
par:STATTOPIC;ack topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}stat$3" : undef }
|
||||
attr DEVICE setList\
|
||||
off:noArg cmnd/DEVNAME/POWER1 0\
|
||||
on:noArg cmnd/DEVNAME/POWER1 1\
|
||||
toggle:noArg cmnd/DEVNAME/POWER1 2\
|
||||
Color:colorpicker,RGB cmnd/DEVNAME/COLOR
|
||||
off:noArg CMNDTOPIC/POWER1 0\
|
||||
on:noArg CMNDTOPIC/POWER1 1\
|
||||
toggle:noArg CMNDTOPIC/POWER1 2\
|
||||
Color:colorpicker,RGB CMNDTOPIC/COLOR
|
||||
attr DEVICE readingList \
|
||||
tele/DEVNAME/LWT:.* LWT\
|
||||
stat/DEVNAME/POWER:.* POWER\
|
||||
tele/DEVNAME/STATE:.* { json2nameValue($EVENT) }\
|
||||
stat/DEVNAME/RESULT:.* { json2nameValue($EVENT) }\
|
||||
tele/DEVNAME/INFO.:.* { json2nameValue($EVENT) }
|
||||
TELETOPIC/LWT:.* LWT\
|
||||
STATTOPIC/POWER:.* POWER\
|
||||
TELETOPIC/STATE:.* { json2nameValue($EVENT) }\
|
||||
STATTOPIC/RESULT:.* { json2nameValue($EVENT) }\
|
||||
TELETOPIC/INFO.:.* { json2nameValue($EVENT) }
|
||||
deletereading -q DEVICE (?!associatedWith).*
|
||||
attr DEVICE autocreate 0
|
||||
attr DEVICE devStateIcon {Color::devStateIcon($name,"rgb","Color","state")}
|
||||
@ -700,24 +734,24 @@ attr DEVICE model A_05a_tasmota_rgb_led_controller
|
||||
name:A_01z_tasmota_set_lowercase_texts_and_state1
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
desc:Applies to all tasmota devices <br>NOTE: This template will change ON, OFF etc. sent from tasmota side to lowercase. <br>After applying the template you might consider to delete or change stateFormat, eventMap and/or userReadings attribute values
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:IO_DEV;Currently used IO;{ AttrVal("DEVICE","IODev","")}
|
||||
set IO_DEV publish cmnd/DEVNAME/Backlog StateText1 off; StateText2 on; StateText3 toggle; StateText4 hold; SetOption26 1; SaveData 1
|
||||
set IO_DEV publish CMNDTOPIC/Backlog StateText1 off; StateText2 on; StateText3 toggle; StateText4 hold; SetOption26 1; SaveData 1
|
||||
|
||||
name:A_01z_tasmota_set_uppercase_texts_and_state1
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
desc:Applies to all tasmota devices <br>NOTE: This template will change on, off etc. sent from tasmota side to uppercase. NOTE: this template only exists for compability reasons to older MQTT implementations; not recommended for other user groups
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:IO_DEV;Currently used IO;{ AttrVal("DEVICE","IODev","")}
|
||||
set IO_DEV publish cmnd/DEVNAME/Backlog StateText1 OFF; StateText2 ON; StateText3 TOGGLE; StateText4 HOLD; SetOption26 1
|
||||
set IO_DEV publish CMNDTOPIC/Backlog StateText1 OFF; StateText2 ON; StateText3 TOGGLE; StateText4 HOLD; SetOption26 1
|
||||
attr DEVICE userReadings state:POWER1:.* { lc(ReadingsVal($name,"POWER1","")) }
|
||||
|
||||
name:A_01z_tasmota_set_power1_state_to_power
|
||||
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd).*
|
||||
desc:Applies to single relay tasmota devices <br>NOTE: this template only exists for compability reasons to other HA solutions; not recommended for usage in FHEM context
|
||||
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
|
||||
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
|
||||
par:IO_DEV;Currently used IO;{ AttrVal("DEVICE","IODev","")}
|
||||
set IO_DEV publish cmnd/DEVNAME/SetOption26 0
|
||||
set IO_DEV publish CMNDTOPIC/SetOption26 0
|
||||
attr DEVICE userReadings state:POWER:.* { lc(ReadingsVal($name,"POWER","")) }
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user