Moin @paul53
Ich hab da mal etwas gebastelt 🙈 aber das ist für mich wie spanisch (ein paar Wörter kennt man, einiges hat man schon mal gehört und der Rest ist eigentlich chinesisch!)
Ich hoffe du kannst mir dabei etwas helfen?
Ich möchte die Funktion etwas simpler gestalten und mit Blockly weiter machen, deshalb soll in der Funktion lediglich der Timer gesetzt werden, wenn dieser abgelaufen ist, soll der DP (triggerID) mit dessen wert aktualisiert werden.
Für den Timer stehen zwei Optionen (.fensterSensor_Delay und .fensterSensor_GlobalDelay) in Sekunden zur Verfügung, wenn "Delay" = 0, soll "GlobalDelay" verwendet werden, falls nicht dann "Delay"
var triggerID = 0_userdata.0.Eigene_Objekte.Netatmo.Home.Rooms.Wohnzimmer.extFenster_erkennung.fensterStatusOpen
Timer.jpg
var idx = ids.indexOf(triggerID);
var baseIDex = triggerID.slice(0, (triggerID.lastIndexOf('.')));
var baseIDroom = baseIDex.slice(0, (baseIDex.lastIndexOf('.')));
var baseIDhome = baseIDroom.slice(0, (baseIDroom.lastIndexOf('.') - 6));
if (idx == -1) {
idx = ids.push(triggerID) - 1;
timers[idx] = null;
}
if (timers[idx]) clearTimeout(timers[idx]);
timers[idx] = setTimeout(function() {
setState(triggerID, (getState(triggerID)), true,);
}, parseInt(((((getState(([baseIDex,'.fensterSensor_Delay'].join(''))).val == 0 ? getState(([baseIDhome,'.extFensterSensor_GlobalDelay'].join(''))).val : getState(([baseIDex,'.fensterSensor_Delay'].join(''))).val) * 1000)) || '').toString(), 10));