NEWS
ClearSchedule funktioniert nicht
-
Hallo an alle,
ich möchte eine kleine Stoppuhr basteln. Die Stoppuhr startet, wenn ein Kanal auf true springt und soll beendet werden, wenn der Kanal wieder auf false springt.
Wenn mein Kanal auf false springt, trigert diesr korrekt die unteren "on".. code Zeilen. Meine Variable 'Bewaesserung.LaufzeitVorgarten' wird zuverlässig auf 00:00 gesetzt. Allerdings wird der Scheduler nicht beendet.
Ich arbeite öfter mit Scheduler und beende oder setzte diese neu. Ich sehe den Fehler nicht, warum dies hier nicht funktioniert.Hat jemand eine Idee für mich. Danke im Voraus.
//Vorgarten var TimerVorgarten=null; on({ id:'hm-rpc.1.000D1D89A09811.10.STATE'/*Bewaesserung Kanal:1:10 STATE*/, val:true },function(obj){ var ZeitMin=getState('Bewaesserung.BewaesserungNoetig.VorgartenZeit').val; var Zeitms=ZeitMin*60*1000; setStateDelayed('hm-rpc.1.000D1D89A09811.10.STATE',false,Zeitms); TimerVorgarten='*/10 * * * * *'; TimerVorgarten=schedule(TimerVorgarten,function(){ var TimerVorgartenLaufzeit=getState('Bewaesserung.LaufzeitVorgarten').val; var minute=TimerVorgartenLaufzeit.substr(0,2); log(minute); var sekunde=TimerVorgartenLaufzeit.substr(3,2); log(sekunde); if (sekunde<50){ sekunde=parseInt(sekunde)+10; }else{ sekunde='00'; minute=parseInt(minute)+1; if (minute<10){minute='0'+minute}; } setState('Bewaesserung.LaufzeitVorgarten',minute+":"+sekunde); }) }); on({ id:'hm-rpc.1.000D1D89A09811.10.STATE'/*Bewaesserung Kanal:1:10 STATE*/, val:false },function(obj){ clearSchedule(TimerVorgarten); setStateDelayed('Bewaesserung.LaufzeitVorgarten','00:00',5000); }); -
Hallo an alle,
ich möchte eine kleine Stoppuhr basteln. Die Stoppuhr startet, wenn ein Kanal auf true springt und soll beendet werden, wenn der Kanal wieder auf false springt.
Wenn mein Kanal auf false springt, trigert diesr korrekt die unteren "on".. code Zeilen. Meine Variable 'Bewaesserung.LaufzeitVorgarten' wird zuverlässig auf 00:00 gesetzt. Allerdings wird der Scheduler nicht beendet.
Ich arbeite öfter mit Scheduler und beende oder setzte diese neu. Ich sehe den Fehler nicht, warum dies hier nicht funktioniert.Hat jemand eine Idee für mich. Danke im Voraus.
//Vorgarten var TimerVorgarten=null; on({ id:'hm-rpc.1.000D1D89A09811.10.STATE'/*Bewaesserung Kanal:1:10 STATE*/, val:true },function(obj){ var ZeitMin=getState('Bewaesserung.BewaesserungNoetig.VorgartenZeit').val; var Zeitms=ZeitMin*60*1000; setStateDelayed('hm-rpc.1.000D1D89A09811.10.STATE',false,Zeitms); TimerVorgarten='*/10 * * * * *'; TimerVorgarten=schedule(TimerVorgarten,function(){ var TimerVorgartenLaufzeit=getState('Bewaesserung.LaufzeitVorgarten').val; var minute=TimerVorgartenLaufzeit.substr(0,2); log(minute); var sekunde=TimerVorgartenLaufzeit.substr(3,2); log(sekunde); if (sekunde<50){ sekunde=parseInt(sekunde)+10; }else{ sekunde='00'; minute=parseInt(minute)+1; if (minute<10){minute='0'+minute}; } setState('Bewaesserung.LaufzeitVorgarten',minute+":"+sekunde); }) }); on({ id:'hm-rpc.1.000D1D89A09811.10.STATE'/*Bewaesserung Kanal:1:10 STATE*/, val:false },function(obj){ clearSchedule(TimerVorgarten); setStateDelayed('Bewaesserung.LaufzeitVorgarten','00:00',5000); }); -
@roland
Zeilen 10, 11:
Der CRON-String und der Schedule-Handler (Objekt) verwenden den gleichen Variablenbezeichner. -
Hallo an alle,
ich möchte eine kleine Stoppuhr basteln. Die Stoppuhr startet, wenn ein Kanal auf true springt und soll beendet werden, wenn der Kanal wieder auf false springt.
Wenn mein Kanal auf false springt, trigert diesr korrekt die unteren "on".. code Zeilen. Meine Variable 'Bewaesserung.LaufzeitVorgarten' wird zuverlässig auf 00:00 gesetzt. Allerdings wird der Scheduler nicht beendet.
Ich arbeite öfter mit Scheduler und beende oder setzte diese neu. Ich sehe den Fehler nicht, warum dies hier nicht funktioniert.Hat jemand eine Idee für mich. Danke im Voraus.
//Vorgarten var TimerVorgarten=null; on({ id:'hm-rpc.1.000D1D89A09811.10.STATE'/*Bewaesserung Kanal:1:10 STATE*/, val:true },function(obj){ var ZeitMin=getState('Bewaesserung.BewaesserungNoetig.VorgartenZeit').val; var Zeitms=ZeitMin*60*1000; setStateDelayed('hm-rpc.1.000D1D89A09811.10.STATE',false,Zeitms); TimerVorgarten='*/10 * * * * *'; TimerVorgarten=schedule(TimerVorgarten,function(){ var TimerVorgartenLaufzeit=getState('Bewaesserung.LaufzeitVorgarten').val; var minute=TimerVorgartenLaufzeit.substr(0,2); log(minute); var sekunde=TimerVorgartenLaufzeit.substr(3,2); log(sekunde); if (sekunde<50){ sekunde=parseInt(sekunde)+10; }else{ sekunde='00'; minute=parseInt(minute)+1; if (minute<10){minute='0'+minute}; } setState('Bewaesserung.LaufzeitVorgarten',minute+":"+sekunde); }) }); on({ id:'hm-rpc.1.000D1D89A09811.10.STATE'/*Bewaesserung Kanal:1:10 STATE*/, val:false },function(obj){ clearSchedule(TimerVorgarten); setStateDelayed('Bewaesserung.LaufzeitVorgarten','00:00',5000); });@roland sagte: Hat jemand eine Idee für mich.
Es können mit dem Trigger val: true mehrere Scheduler laufen. Ändere den Trigger in change: 'gt'.
Besser nur einen Trigger auf Wertänderung verwenden und innerhalb des Callbacks den Wert prüfen:
//Vorgarten var TimerVorgarten=null; on('hm-rpc.1.000D1D89A09811.10.STATE'/*Bewaesserung Kanal:1:10 STATE*/, function(obj) { if(obj.state.val) { // Operationen bei true } else { clearSchedule(TimerVorgarten); setStateDelayed('Bewaesserung.LaufzeitVorgarten','00:00',5000); } });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden