Hi,
Ich habe jetzt mal die Idee von Paul getestet und ebenfalls auch mal den Alias DP komplett gelöscht und mit neuem Namen neu angelegt.
Leider bleibt das merkwürdig Verhalten erhalten.
Ich hatte gestern wieder den folgenden Output beim lesen.
2025-08-12 08:02:36.996 - warn: javascript.0 (187304) script.js.Schlafzimmer_Helmut.Taster: Licht =OFF Speaker =start MqttValueTasmota =OFF
2025-08-12 22:09:15.347 - warn: javascript.0 (187304) script.js.Schlafzimmer_Helmut.Taster: Licht =OFF Speaker =stop MqttValueTasmota =OFF
2025-08-12 22:17:17.155 - warn: javascript.0 (187304) script.js.Schlafzimmer_Helmut.Taster: Licht =true Speaker =stop MqttValueTasmota =ON
Zwischen 22:09 und 22:17 habe ich den Alias Datenpunkt über die VIS auf true gesetz -> der write DP sendet dann über MQTT/CMND an Tasmota, Tasmota antwortet über STAT und der Read DP liefert OFF, was dann von dem Alias richtig umgesetzt wird.
Nach einer unbestimmten Zeit oder nach einem unbestimmten Ereignis liefert der Alias dann allerdings wie in dem Log zu sehen Licht=OFF und nicht mehr false obwohl dies entsprechend der Alias Konvertierung gar nicht passieren darf, denn dort steht: read => val=='ON', somit dürfte in diesem Fall nie ein True erscheinen.
{
"common": {
"name": "Licht_WC",
"desc": "Manually created",
"role": "state",
"type": "boolean",
"read": true,
"write": true,
"def": false,
"alias": {
"id": {
"read": "0_userdata.0.Schlafzimmer_Helmut.DC4F22803CA2.stat.power1",
"write": "0_userdata.0.Schlafzimmer_Helmut.DC4F22803CA2.cmnd.power1"
},
"read": "val=='ON'",
"write": "val ? 'ON':'OFF'"
}
},
"type": "state",
"native": {},
"_id": "alias.0.SchlafzimmerHelmut.Licht_WC",
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.helmut",
"ownerGroup": "system.group.administrator"
},
"from": "system.adapter.admin.0",
"user": "system.user.helmut",
"ts": 1754551409965
}
Gelesen wird wie folgt:
var IstStateLicht = getState(ObjIDLicht).val;
var IstStateSpeaker = getState(ObjIDSpk).val;
var IstMqttObject = getState(ObjIDLicht2).val;
log('Licht =' +IstStateLicht +' Speaker =' +IstStateSpeaker + ' MqttValueTasmota =' +IstMqttObject,'warn');