Ich hab ein selectnumbers Widget gebaut (desired-temp), was letztlich via MQTT Werte setzt bzw. Werte bezieht. Das Setzen der Werte funktioniert gut, nur wenn die readings via MQTT aktualisiert werden, aktualisieren sich die Werte in der Select-Box nicht bzw. verschwinden.
Internals:
CID ems_esp_thermostat_data
DEF ems_esp_thermostat_data
DEVICETOPIC CW400
FUUID 5e2af0ee-f33f-b5ae-4a11-34f6bfe924451767
IODev myBroker
LASTInputDev myBroker
MSGCNT 108
NAME CW400
NR 567
STATE manual
20 °C
TYPE MQTT2_DEVICE
myBroker_MSGCNT 108
myBroker_TIME 2020-01-25 22:28:39
JSONMAP:
hc1_daytemp daytemp
hc1_holidayttemp holidaytemp
hc1_mode mode
hc1_nighttemp nighttemp
hc1_seltemp desired-temp
READINGS:
2020-01-24 14:28:14 associatedWith MQTT2_ems_esp
2020-01-24 22:58:19 daytemp 0
2020-01-25 22:28:39 desired-temp 20
2020-01-25 22:28:39 hc1_currtemp 24.2
2020-01-24 14:34:14 hc1_mode off
2020-01-24 14:34:14 hc1_seltemp 0
2020-01-25 22:28:39 mode manual
2020-01-24 22:58:19 nighttemp 1.5
2020-01-25 20:23:28 state desired-temp
Attributes:
IODev myBroker
fp_Dachstudio 500,630,7,CW400
jsonMap hc1_mode:mode hc1_seltemp:desired-temp hc1_daytemp:daytemp hc1_nighttemp:nighttemp hc1_holidayttemp:holidaytemp
model ems-esp_thermostat_simple
readingList heating_system/ems-esp/thermostat_data:.* { json2nameValue($EVENT, '', $JSONMAP) }
room MQTT2_DEVICE,Raumklima
setList mode:select,auto,manual heating_system/ems-esp/thermostat_cmd { "cmd":"mode1", "data": "$EVTPART1" }
desired-temp:selectnumbers,20.0,0.5,30.0,1,lin heating_system/ems-esp/thermostat_cmd { "cmd":"temp1", "data": "$EVTPART1" }
setStateList on off
stateFormat mode
desired-temp °C
webCmd mode:desired-temp
Kann es nicht nachstellen, bei mir aktualisiert sich die Anzeige bei einem aus dem gezeigten list erstellten MQTT2_DEVICE (Raw definition waere mir lieber), und manuell eingegebenen "setreading CW400 desired-temp 22.5"
Danke fürs Testen, hier die RAW-Definition, oder meinst du etwas andees?
defmod CW400 MQTT2_DEVICE ems_esp_thermostat_data
attr CW400 IODev myBroker
attr CW400 fp_Dachstudio 500,630,7,CW400
attr CW400 jsonMap hc1_mode:mode hc1_seltemp:desired-temp hc1_daytemp:daytemp hc1_nighttemp:nighttemp hc1_holidayttemp:holidaytemp
attr CW400 model ems-esp_thermostat_simple
attr CW400 readingList heating_system/ems-esp/thermostat_data:.* { json2nameValue($EVENT, '', $JSONMAP) }
attr CW400 room MQTT2_DEVICE,Raumklima
attr CW400 setList mode:select,auto,manual heating_system/ems-esp/thermostat_cmd { "cmd":"mode1", "data": "$EVTPART1" }\
desired-temp:selectnumbers,20.0,0.5,30.0,1,lin heating_system/ems-esp/thermostat_cmd { "cmd":"temp1", "data": "$EVTPART1" }
attr CW400 setStateList on off
attr CW400 stateFormat mode\
desired-temp °C
attr CW400 webCmd mode:desired-temp
setstate CW400 manual\
23 °C
setstate CW400 2020-01-24 14:28:14 associatedWith MQTT2_ems_esp
setstate CW400 2020-01-24 22:58:19 daytemp 0
setstate CW400 2020-01-25 23:02:40 desired-temp 23
setstate CW400 2020-01-25 23:02:40 hc1_currtemp 24
setstate CW400 2020-01-24 14:34:14 hc1_mode off
setstate CW400 2020-01-24 14:34:14 hc1_seltemp 0
setstate CW400 2020-01-25 23:02:40 mode manual
setstate CW400 2020-01-24 22:58:19 nighttemp 1.5
setstate CW400 2020-01-25 20:23:28 state desired-temp
mMn verschwindet der Wert im Widget immer dann, wenn via MQTT ein neuer Wert für das Reading kommt ...
ZitatDanke fürs Testen, hier die RAW-Definition...
Danke, ist aber jetzt zu spaet, da ich genau diese Zeilen aus dem vorherigen List mit dem Editor zusammengebastelt habe.
ZitatmMn verschwindet der Wert im Widget immer dann, wenn via MQTT ein neuer Wert für das Reading kommt ...
Mag sein, mW ist aber dieser Mechanismus fuer FHEMWEB identisch mit dem von mir verwendeten "setreading", und damit konnte ich kein Problem feststellen.
Wenn Du anderer Meinung bist, dann schick mir ein "attr myBroker verbose 5" Log des passenden Events, damit kann ich das Event noch "exakter" simulieren.
Da die Daten ein FLOORPLAN Attribut enthalten: kann es sein, dass das Problem nur in FLOORPLAN auftritt?
Wenn ja, dann tippe ich auf ein FLOORPLAN Bug.
Leider ist dieses Modul seit Jahren ohne Maintainer, und stammt noch aus der Zeit vor den fhemweb Widgets.
der Effekt tritt nicht nur im floorplan sondern auch im WEB-Frontend auf. Hier der Log
2020.01.26 13:48:13 5: in: PINGREQ: (192)(0)
2020.01.26 13:48:13 4: myBroker_192.168.178.79_50889 ems-esp PINGREQ
2020.01.26 13:48:13 5: out: PINGRESP: (208)(0)
2020.01.26 13:48:34 5: in: PINGREQ: (192)(0)
2020.01.26 13:48:34 4: myBroker_192.168.178.71_60696 mqttdash-65f24599 PINGREQ
2020.01.26 13:48:34 5: out: PINGRESP: (208)(0)
2020.01.26 13:48:43 5: in: PUBLISH: 0(221)(4)(0)"heating_system/ems-esp/boiler_data{"wWComfort":"Hot","wWSelTemp":55,"wWDesinfectionTemp":70,"selFlowTemp":85,"selBurnPow":100,"curBurnPow":15,"pumpMod":100,"wWCircPump":255,"outdoorTemp":4.2,"wWCurTmp":51.2,"wWCurFlow":0,"curFlowTemp":79.5,"switchTemp":0,"wWActivated":"on","wWOnetime":"off","burnGas":"on","flameCurr":11.5,"heatPmp":"on","fanWork":"on","ignWork":"off","wWCirc":"on","heating_temp":73,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"on","wWStarts":712,"wWWorkM":11011,"UBAuptime":358938,"burnStarts":12941,"burnWorkMin":40042,"heatWorkMin":29031,"ServiceCode":"","ServiceCodeNumber":201}
2020.01.26 13:48:43 4: myBroker_192.168.178.79_50889 ems-esp PUBLISH heating_system/ems-esp/boiler_data:{"wWComfort":"Hot","wWSelTemp":55,"wWDesinfectionTemp":70,"selFlowTemp":85,"selBurnPow":100,"curBurnPow":15,"pumpMod":100,"wWCircPump":255,"outdoorTemp":4.2,"wWCurTmp":51.2,"wWCurFlow":0,"curFlowTemp":79.5,"switchTemp":0,"wWActivated":"on","wWOnetime":"off","burnGas":"on","flameCurr":11.5,"heatPmp":"on","fanWork":"on","ignWork":"off","wWCirc":"on","heating_temp":73,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"on","wWStarts":712,"wWWorkM":11011,"UBAuptime":358938,"burnStarts":12941,"burnWorkMin":40042,"heatWorkMin":29031,"ServiceCode":"","ServiceCodeNumber":201}
2020.01.26 13:48:43 5: myBroker: dispatch autocreate=simple\000ems_esp\000heating_system/ems-esp/boiler_data\000{"wWComfort":"Hot","wWSelTemp":55,"wWDesinfectionTemp":70,"selFlowTemp":85,"selBurnPow":100,"curBurnPow":15,"pumpMod":100,"wWCircPump":255,"outdoorTemp":4.2,"wWCurTmp":51.2,"wWCurFlow":0,"curFlowTemp":79.5,"switchTemp":0,"wWActivated":"on","wWOnetime":"off","burnGas":"on","flameCurr":11.5,"heatPmp":"on","fanWork":"on","ignWork":"off","wWCirc":"on","heating_temp":73,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"on","wWStarts":712,"wWWorkM":11011,"UBAuptime":358938,"burnStarts":12941,"burnWorkMin":40042,"heatWorkMin":29031,"ServiceCode":"","ServiceCodeNumber":201}
2020.01.26 13:48:44 5: in: PUBLISH: 0^(0)&heating_system/ems-esp/thermostat_data{"hc1":{"seltemp":23,"currtemp":23.5,"mode":"manual"}}
2020.01.26 13:48:44 4: myBroker_192.168.178.79_50889 ems-esp PUBLISH heating_system/ems-esp/thermostat_data:{"hc1":{"seltemp":23,"currtemp":23.5,"mode":"manual"}}
2020.01.26 13:48:44 5: myBroker: dispatch autocreate=simple\000ems_esp\000heating_system/ems-esp/thermostat_data\000{"hc1":{"seltemp":23,"currtemp":23.5,"mode":"manual"}}
2020.01.26 13:48:49 5: myBroker: PUBLISH heating_system/ems-esp/thermostat_cmd { "cmd":"temp1", "data": "22.0" }
2020.01.26 13:48:49 5: myBroker_192.168.178.79_50889 ems-esp => heating_system/ems-esp/thermostat_cmd:{ "cmd":"temp1", "data": "22.0" }
2020.01.26 13:48:49 5: out: PUBLISH: 0H(0)%heating_system/ems-esp/thermostat_cmd{ "cmd":"temp1", "data": "22.0" }
2020.01.26 13:48:49 5: in: PUBLISH: 0(221)(4)(0)"heating_system/ems-esp/boiler_data{"wWComfort":"Hot","wWSelTemp":55,"wWDesinfectionTemp":70,"selFlowTemp":85,"selBurnPow":100,"curBurnPow":16,"pumpMod":100,"wWCircPump":255,"outdoorTemp":4.3,"wWCurTmp":51.2,"wWCurFlow":0,"curFlowTemp":78.6,"switchTemp":0,"wWActivated":"on","wWOnetime":"off","burnGas":"on","flameCurr":12.3,"heatPmp":"on","fanWork":"on","ignWork":"off","wWCirc":"on","heating_temp":73,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"on","wWStarts":712,"wWWorkM":11011,"UBAuptime":358939,"burnStarts":12941,"burnWorkMin":40042,"heatWorkMin":29031,"ServiceCode":"","ServiceCodeNumber":201}
2020.01.26 13:48:49 4: myBroker_192.168.178.79_50889 ems-esp PUBLISH heating_system/ems-esp/boiler_data:{"wWComfort":"Hot","wWSelTemp":55,"wWDesinfectionTemp":70,"selFlowTemp":85,"selBurnPow":100,"curBurnPow":16,"pumpMod":100,"wWCircPump":255,"outdoorTemp":4.3,"wWCurTmp":51.2,"wWCurFlow":0,"curFlowTemp":78.6,"switchTemp":0,"wWActivated":"on","wWOnetime":"off","burnGas":"on","flameCurr":12.3,"heatPmp":"on","fanWork":"on","ignWork":"off","wWCirc":"on","heating_temp":73,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"on","wWStarts":712,"wWWorkM":11011,"UBAuptime":358939,"burnStarts":12941,"burnWorkMin":40042,"heatWorkMin":29031,"ServiceCode":"","ServiceCodeNumber":201}
2020.01.26 13:48:49 5: myBroker: dispatch autocreate=simple\000ems_esp\000heating_system/ems-esp/boiler_data\000{"wWComfort":"Hot","wWSelTemp":55,"wWDesinfectionTemp":70,"selFlowTemp":85,"selBurnPow":100,"curBurnPow":16,"pumpMod":100,"wWCircPump":255,"outdoorTemp":4.3,"wWCurTmp":51.2,"wWCurFlow":0,"curFlowTemp":78.6,"switchTemp":0,"wWActivated":"on","wWOnetime":"off","burnGas":"on","flameCurr":12.3,"heatPmp":"on","fanWork":"on","ignWork":"off","wWCirc":"on","heating_temp":73,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"on","wWStarts":712,"wWWorkM":11011,"UBAuptime":358939,"burnStarts":12941,"burnWorkMin":40042,"heatWorkMin":29031,"ServiceCode":"","ServiceCodeNumber":201}
2020.01.26 13:48:49 5: in: PUBLISH: 0)(0)&heating_system/ems-esp/tapwater_active0
2020.01.26 13:48:49 4: myBroker_192.168.178.79_50889 ems-esp PUBLISH heating_system/ems-esp/tapwater_active:0
2020.01.26 13:48:49 5: myBroker: dispatch autocreate=simple\000ems_esp\000heating_system/ems-esp/tapwater_active\0000
2020.01.26 13:48:49 5: in: PUBLISH: 0((0)%heating_system/ems-esp/heating_active1
2020.01.26 13:48:49 4: myBroker_192.168.178.79_50889 ems-esp PUBLISH heating_system/ems-esp/heating_active:1
2020.01.26 13:48:49 5: myBroker: dispatch autocreate=simple\000ems_esp\000heating_system/ems-esp/heating_active\0001
2020.01.26 13:48:49 5: in: PUBLISH: 0^(0)&heating_system/ems-esp/thermostat_data{"hc1":{"seltemp":23,"currtemp":23.5,"mode":"manual"}}
2020.01.26 13:48:49 4: myBroker_192.168.178.79_50889 ems-esp PUBLISH heating_system/ems-esp/thermostat_data:{"hc1":{"seltemp":23,"currtemp":23.5,"mode":"manual"}}
2020.01.26 13:48:49 5: myBroker: dispatch autocreate=simple\000ems_esp\000heating_system/ems-esp/thermostat_data\000{"hc1":{"seltemp":23,"currtemp":23.5,"mode":"manual"}}
2020.01.26 13:48:50 5: in: PUBLISH: 0S(0) heating_system/ems-esp/heartbeat{"rssid":42,"load":1,"uptime":77048,"freemem":51}
2020.01.26 13:48:50 4: myBroker_192.168.178.79_50889 ems-esp PUBLISH heating_system/ems-esp/heartbeat:{"rssid":42,"load":1,"uptime":77048,"freemem":51}
2020.01.26 13:48:50 5: myBroker: dispatch autocreate=simple\000ems_esp\000heating_system/ems-esp/heartbeat\000{"rssid":42,"load":1,"uptime":77048,"freemem":51}
selectnumbers mit DecimalPoints 1 hat Zahlen mit einer Nachkommastelle erwartet, und hat 23 nicht akzeptiert.
Ich habe fhemweb.js angepasst, so dass der neue Wert mit DecimalPoints gerundet/formatiert wird.
hat funktioniert, danke für die schnelle Hilfe!