NEWS
(gelöst) State-Änderung wird nicht mehr erkannt im JS
-
Moin zusammen,
ich hatte mir ein kleines Programm geschrieben, welches mir über ein Zeitintervall einen Zähler hochzählt und bei erreichen einer bestimmten Zahl Geräte ausschaltet. Wenn sich aber in dem Raum jemand befindet, wird die Bewegung registriert und der Zähler wieder auf 0 gesetzt. Jetzt ist mir leider aufgefallen, dass die Bewegung nicht mehr als Auslöser erkannt wird und der Zäher dadurch nicht zurück gesetzt wird (und es Beschwerden der Kinder hagelt ;)). Das Problem fängt bei Zeile 38 an.schedule("*/10 * * * *", async function () { var Element3 = getState("javascript.0.Merker_Bewegung").val; var Bewegung = getState("hue.0.Hue_motion_sensor_1.presence").val; var counterschleife = 0; var Zeit = new Date(); var Stunden = Zeit.getHours(); var Minuten = Zeit.getMinutes(); var Minuten_Tag = (Stunden * 60) + Minuten; var temp = 840; //Heizprogramm_E[703]; // 840 Minuten ab Mitternacht -> 10 Uhr var temp_2 = 1330; //Heizprogramm_E[45]; // 1320 Minuten ab Mitternacht -> 22 Uhr if (Minuten_Tag > temp && Minuten_Tag < temp_2) { if (Bewegung == false) { Element3 += 1; setState("javascript.0.Merker_Bewegung", (Element3), true); counterschleife = 1; } if (Element3 == 3){ setState("fritzdect.0.DECT_116300142272.state", (false)); setState("hue.0.Hue_ambiance_spot_1__Mila.on", (false)); setState("hue.0.Hue_ambiance_spot_2_Mila.on", (false)); setState("hue.0.Hue_ambiance_spot_3_Mila.on", (false)); Element3 = 0; setState("javascript.0.Merker_Bewegung", (Element3), true); counterschleife = 2; console.log(Bewegung); console.log(Element3); console.log(Minuten_Tag); console.log(counterschleife); } } }); on({id: "hue.0.Hue_motion_sensor_1.presence"/*Hue motion sensor 1.presence*/, change: "ne"}, async function (obj) { var Bewegung = getState("hue.0.Hue_motion_sensor_1.presence").val; var Element3 = getState("javascript.0.Merker_Bewegung").val; var Bewegung_Merker = getState("javascript.0.Spielzeit_Mila").val; var Zeit = new Date(); var Stunden = Zeit.getHours(); var Minuten = Zeit.getMinutes(); var Minuten_Tag = (Stunden * 60) + Minuten; var temp = 840; //Heizprogramm_E[703]; // 840 Minuten ab Mitternacht -> 10 Uhr var temp_2 = 1290; //Heizprogramm_E[45]; // 1290 Minuten ab Mitternacht -> 21:30 Uhr if (Minuten_Tag > temp && Minuten_Tag < temp_2) { if (Bewegung == true) { Element3 = 0; setState("javascript.0.Merker_Bewegung", (Element3), true); if (Bewegung_Merker > 4 && Bewegung_Merker < 50) { setState("fritzdect.0.DECT_116300142272.state", (true)); console.log(Bewegung_Merker); console.log(Bewegung); console.log(Element3); } } } });
-
@mwolle
nachdem ich noch was geforscht habe, liegt es nicht am Skript, sondern wohl am Adapter, der keine Bewegungen mehr umsetzt. Ich werde das Thema hier schließen. -
@paul53
magst Du oben mal bitte über das Script gucken.
Der Bewegungsmelder funktioniert jetzt, aber das Skript wird nicht abgearbeitet.