Hi,
das hat auch nicht funktioniert, aber ich hab jetzt einen Weg gefunden.
# tasmota battery powered window sensor MC400A
name:tasmota_window_MC400A
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd|stat).*
desc:Configures a MC400A windows sensor
order:A_05c
attr DEVICE icon tuer_fenster_kontakt
attr DEVICE jsonMap TuyaReceived_Cmnd:0 TuyaReceived_CmndData:0 TuyaReceived_Data:0
attr DEVICE autocreate 0
par:IO_DEV;Currently used IO;{ AttrVal("DEVICE","IODev",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 }
set IO_DEV publish CMNDTOPIC/Rule1 ON TuyaReceived#Data=55AA00050005030400010213 DO publish stat/%topic%/batteryState ok; publish stat/%topic%/batteryPercent 100 ENDON ON TuyaReceived#Data=55AA00050005030400010112 DO publish stat/%topic%/batteryState ok; publish stat/%topic%/batteryPercent 50 ENDON ON TuyaReceived#Data=55AA00050005030400010011 DO publish stat/%topic%/batteryState low; publish stat/%topic%/batteryPercent 5 ENDON
set IO_DEV publish CMNDTOPIC/Backlog Template {"NAME":"MC400A","GPIO":[0,107,0,108,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54}; Module 0; SetOption1 1; SetOption65 1; SetOption66 1; SwitchMode 1; TuyaMCU 51,21; StateText1 closed; StateText2 open; Timezone 99; Rule1 1;SaveData 1; Reboot 1
attr DEVICE setList \
nosleep:noArg CMNDTOPIC/SerialSend5 55AA000200010002\
setOtaUrl:textField CMNDTOPIC/OtaUrl $EVTPART1\
upgrade:noArg CMNDTOPIC/upgrade 1
attr DEVICE devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot
attr DEVICE readingList \
TELETOPIC/LWT:.* LWT\
CMNDTOPIC/POWER:.* POWER\
TELETOPIC/INFO1:.* { json2nameValue($EVENT) }\
TELETOPIC/INFO2:.* { json2nameValue($EVENT) }\
TELETOPIC/INFO3:.* { json2nameValue($EVENT) }\
STATTOPIC/RESULT:.* { json2nameValue($EVENT) }\
STATTOPIC/POWER:.* state\
TELETOPIC/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
TELETOPIC/STATE:.* { json2nameValue($EVENT) }\
STATTOPIC/batteryState:.* batteryState\
STATTOPIC/batteryPercent:.* batteryPercent
attr DEVICE stateFormat LWT\
state
attr DEVICE model tasmota_windows_sensor_MC400A
setreading DEVICE attrTemplateVersion 20200522 or prior
Der Trick ist, zuerst nur die Rule (ohne Backlog) zu senden und dann im 2. Schritt die restlichen Parameter zu setzten und die Rule zu aktivieren.
Gruß,
Michael