NEWS
[gelöst]Verzögert einen Status setzen - setStateDelayed?
-
ich habe im Forum schon einiges zu dem Thema gelesen. Im Prinzip bräuchte ich in etwa so etwas wie https://forum.iobroker.net/viewtopic.php?p=22756#p22756 beschrieben.
Ich würde mir gerne einen Datenpunkt "Sonne_scheint" sofort auf true setzen, wenn die Differenz zwischen zwei Temperatursensoren z.B. >6° ist und mit einer Verzögerung von beispielsweise 15min auf false setzen, wenn die Differenz z.B. <4° ist.
Ich bastel nun schon seit einiger Zeit und bekomme es nicht hin…
Das sind meine Variablen:
var Sonne_scheint='javascript.0.Rollosteuerung.Sonne_scheint'/*Sonne scheint*/ var Sensor_Temp1=getState('hm-rpc.1.NEQ0534165.1.TEMPERATURE' /*Temperaturdiff Sonnensensor:1 TEMPERATURE*/).val; var Sensor_Temp2=getState('hm-rpc.1.NEQ0534165.2.TEMPERATURE'/*Temperaturdiff Sonnensensor:2 TEMPERATURE*/).val; var Temperatur_diff=Sensor_Temp1-Sensor_Temp2; [...]
danke
-
const idSonne = 'javascript.0.Rollosteuerung.Sonne_scheint'/*Sonne scheint*/; const idTemp1 = 'hm-rpc.1.NEQ0534165.1.TEMPERATURE'/*Temperaturdiff Sonnensensor:1 TEMPERATURE*/; const idTemp2 = 'hm-rpc.1.NEQ0534165.2.TEMPERATURE'/*Temperaturdiff Sonnensensor:2 TEMPERATURE*/; var Temp1 = getState(idTemp1).val; var Temp2 = getState(idTemp2).val; var timer = null; function sonne() { if(Temp1 - Temp2 > 6) { setState(idSonne, true, true) if(timer) clearTimeout(timer); } if(Temp1 - Temp2 < 4) { timer = setTimeout(function() { setState(idSonne, false, true); }, 15 * 60000); } } sonne(); // Skriptstart on(idTemp1, function(dp) { Temp1 = dp.state.val; sonne(); }); on(idTemp2, function(dp) { Temp2 = dp.state.val; sonne(); });
-
Paul, danke - wie immer… ich breche mir jetzt seit 2 Tagen alle Finger und du brauchst 2min... FRUSTRIEREND...