Einbinden zum Schreiben funktioniert z.B. so:
define WlanThermo MQTT2_DEVICE esp32_xxxx
setuuid WlanThermo 65299c9f-f33f-2b94-0e2e-42xxxx
attr WlanThermo IODev m2s
attr WlanThermo devicetopic esp32_xxxx
attr WlanThermo getList data:noArg in_mode WLanThermo/MINIV3/get/data\
settings:noArg in_mode WLanThermo/MINIV3/get/settings {}\
pitmater:noArg in_mode WLanThermo/MINIV3/set/pitmaster [{"id":0,"channel":4,"pid":1,"value":0,"set":62.00,"typ":"off"}]
attr WlanThermo icon scene_stove
attr WlanThermo readingList esp32_xxxx:WLanThermo/MINIV3/status/settings:.* { json2nameValue($EVENT, 'settings_', $JSONMAP) }\
esp32_xxxx:WLanThermo/MINIV3/status/data:.* { $EVENT =~ s/"temp":999.00/"temp":"--"/g;;;; json2nameValue($EVENT, 'data_', $JSONMAP) }
attr WlanThermo room MQTT2_DEVICE
attr WlanThermo setList P1Set WLanThermo/MINIV3/set/pitmaster [{"id":0,"channel":4,"pid":1,"value":0,"set":$EVTPART1.00,"typ":"auto"}]\
C1Min { my $temp=ReadingsVal($NAME,"data_channel_1_max_request","---");; my $alarm=ReadingsVal($NAME,"data_channel_1_alarm","---");; return qq {WLanThermo/MINIV3/set/channels {"number":1,"name":"Probe 1","typ":0,"temp":24.50,"min":$EVTPART1.00,"max":$temp.00,"alarm":$alarm,"color":"#0C4C88"}};; }\
C1Max { my $temp=ReadingsVal($NAME,"data_channel_1_min_request","---");; my $alarm=ReadingsVal($NAME,"data_channel_1_alarm","---");; return qq { WLanThermo/MINIV3/set/channels {"number":1,"name":"Probe 1","typ":0,"temp":24.50,"min":$temp.00,"max":$EVTPART1.00,"alarm":$alarm,"color":"#0C4C88"}};; }\
C2Min { my $temp=ReadingsVal($NAME,"data_channel_2_max_request","---");; my $alarm=ReadingsVal($NAME,"data_channel_1_alarm","---");; return qq {WLanThermo/MINIV3/set/channels {"number":2,"name":"Probe 2","typ":0,"temp":24.50,"min":$EVTPART1.00,"max":$temp.00,"alarm":$alarm,"color":"#22B14C"}};; }\
C2Max { my $temp=ReadingsVal($NAME,"data_channel_2_min_request","---");; my $alarm=ReadingsVal($NAME,"data_channel_1_alarm","---");; return qq { WLanThermo/MINIV3/set/channels {"number":2,"name":"Probe 2","typ":0,"temp":24.50,"min":$temp.00,"max":$EVTPART1.00,"alarm":$alarm,"color":"#22B14C"}};; }\
C3Min { my $temp=ReadingsVal($NAME,"data_channel_3_max_request","---");; my $alarm=ReadingsVal($NAME,"data_channel_1_alarm","---");; return qq {WLanThermo/MINIV3/set/channels {"number":3,"name":"Probe 3","typ":0,"temp":24.50,"min":$EVTPART1.00,"max":$temp.00,"alarm":$alarm,"color":"#EF562D"}};; }\
C3Max { my $temp=ReadingsVal($NAME,"data_channel_3_min_request","---");; my $alarm=ReadingsVal($NAME,"data_channel_1_alarm","---");; return qq { WLanThermo/MINIV3/set/channels {"number":3,"name":"Probe 3","typ":0,"temp":24.50,"min":$temp.00,"max":$EVTPART1.00,"alarm":$alarm,"color":"#EF562D"}};; }\
C4Min { my $temp=ReadingsVal($NAME,"data_channel_4_max_request","---");; my $alarm=ReadingsVal($NAME,"data_channel_1_alarm","---");; return qq {WLanThermo/MINIV3/set/channels {"number":4,"name":"Probe 4","typ":0,"temp":24.50,"min":$EVTPART1.00,"max":$temp.00,"alarm":$alarm,"color":"#FFC100"}};; }\
C4Max { my $temp=ReadingsVal($NAME,"data_channel_4_min_request","---");; my $alarm=ReadingsVal($NAME,"data_channel_1_alarm","---");; return qq { WLanThermo/MINIV3/set/channels {"number":4,"name":"Probe 4","typ":0,"temp":24.50,"min":$temp.00,"max":$EVTPART1.00,"alarm":$alarm,"color":"#FFC100"}};; }\
data_channel_1_min_request {fhem("set $NAME C1Min $EVTPART1");;qq(WLanThermo/MINIV3/get/data)}\
data_channel_1_max_request {fhem("set $NAME C1Max $EVTPART1");;qq(WLanThermo/MINIV3/get/data)}\
data_channel_2_min_request {fhem("set $NAME C2Min $EVTPART1");;qq(WLanThermo/MINIV3/get/data)}\
data_channel_2_max_request {fhem("set $NAME C2Max $EVTPART1");;qq(WLanThermo/MINIV3/get/data)}\
data_channel_3_min_request {fhem("set $NAME C3Min $EVTPART1");;qq(WLanThermo/MINIV3/get/data)}\
data_channel_3_max_request {fhem("set $NAME C3Max $EVTPART1");;qq(WLanThermo/MINIV3/get/data)}\
data_channel_4_min_request {fhem("set $NAME C4Min $EVTPART1");;qq(WLanThermo/MINIV3/get/data)}\
data_channel_4_max_request {fhem("set $NAME C4Max $EVTPART1");;qq(WLanThermo/MINIV3/get/data)}\
data_pitmaster_pm_1_set_request {fhem("set $NAME P1Set $EVTPART1");;qq(WLanThermo/MINIV3/get/data)}
attr WlanThermo userReadings data_channel_1_min_request {sprintf('%d',ReadingsVal($name, "data_channel_1_min", "---"))},\
data_channel_1_max_request {sprintf('%d',ReadingsVal($name, "data_channel_1_max", "---"))},\
data_channel_1_alarm_request {sprintf('%d',ReadingsVal($name, "data_channel_1_alarm", "---"))},\
data_channel_2_min_request {sprintf('%d',ReadingsVal($name, "data_channel_2_min", "---"))},\
data_channel_2_max_request {sprintf('%d',ReadingsVal($name, "data_channel_2_max", "---"))},\
data_channel_2_alarm_request {sprintf('%d',ReadingsVal($name, "data_channel_2_alarm", "---"))},\
data_channel_3_min_request {sprintf('%d',ReadingsVal($name, "data_channel_3_min", "---"))},\
data_channel_3_max_request {sprintf('%d',ReadingsVal($name, "data_channel_3_max", "---"))},\
data_channel_3_alarm_request {sprintf('%d',ReadingsVal($name, "data_channel_3_alarm", "---"))},\
data_channel_4_min_request {sprintf('%d',ReadingsVal($name, "data_channel_4_min", "---"))},\
data_channel_4_max_request {sprintf('%d',ReadingsVal($name, "data_channel_4_max", "---"))},\
data_channel_4_alarm_request {sprintf('%d',ReadingsVal($name, "data_channel_4_alarm", "---"))},\
data_pitmaster_pm_1_set_request {sprintf('%d',ReadingsVal($name, "data_pitmaster_pm_1_set", "---"))}\