NEWS
Bewegungsmelder mit Timer
-
Hallo,
ich möchte Bewegungemelder und Lampen in ein Script einbinden und finde nicht den richtigen Ansatz.
Erkennt der Bewegungsmelder eine Bewegung so solle er die Lampen einschalten und nach 15 Minuten wieder ausschalten. Wird innerhalb der 15 Minuten eine neue Bewegung erkannt, so soll der der Timer neu starten. Ich habe es mal so probiert
aber da geht das Licht nicht mehr aus.LG Stefan
-
nimm ein timeout
Trigger auf Bewegung (größer als letzter)*
Steuere Lampe true
stop timeout
timeout 15 Minuten
steuere Lampe falseWenn in 15 minuten erneut Bewegung erkannt wird wird ein neuer 15 Minuten Timeout gestartet.
- Bedingung: der Datenpunkt Bewegung ist bool (0 false / 1 true)
-
@homoran Was muss ich bei Stopp auswählen?
Und ist es dann eine Pause oder "Ausführen Timeout"? -
@homoran Passt - habs schon rausgefunden! Vielen Dank für die prompte und tolle Hilfe!
-
-
@orpheus1977 sagte in Bewegungsmelder mit Timer:
Erkennt der Bewegungsmelder eine Bewegung so solle er die Lampen einschalten und nach 15 Minuten wieder ausschalten. Wird innerhalb der 15 Minuten eine neue Bewegung erkannt, so soll der der Timer neu starten.
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/9
-
Hallo zusammen,
prinzipiell funktioniert das Script
Nur manchmal geht das Licht nach ein paar Minuten wieder aus. Das passiert oft mehrmals hintereinander und dann läuft es wieder wie es soll.
Wie kann ich das am besten debuggen?
-
Kann mir bitte nochmal wer helfen - das System zeigt ein Verhalten, das ich mir nicht erklären kann.
Wenn einzelne Personen durch den Raum gehen funktioniert alles wunderbar. Befinden sich mehrere Personen im Raum geht das Licht plötzlich nach ein paar Sekunden aus und reagiert auch nicht mehr.
Im Log finde ich keinen Fehler. -
@orpheus1977 sagte in Bewegungsmelder mit Timer:
Kann mir bitte nochmal wer helfen - das System zeigt ein Verhalten, das ich mir nicht erklären kann.
Wenn einzelne Personen durch den Raum gehen funktioniert alles wunderbar. Befinden sich mehrere Personen im Raum geht das Licht plötzlich nach ein paar Sekunden aus und reagiert auch nicht mehr.
Im Log finde ich keinen Fehler. -
@d4ve Das Beispiel kenne ich - ich sehe aber den Fehler nicht. Was macht das "falls Wert" im Gegensatz zu dem was ich gemacht habe?
-
-
@orpheus1977 sagte in Bewegungsmelder mit Timer:
@d4ve Das Beispiel kenne ich - ich sehe aber den Fehler nicht. Was macht das "falls Wert" im Gegensatz zu dem was ich gemacht habe?
versteh nicht genau was du meinst? du wolltest doch ein Blockly das wenn beweg. ist licht an geht. und nach x zeit wieder aus?!
und wenn einer nochmal lang läuft und die zeit noch nicht abgelaufen ist bleibt das licht an etc -
@d4ve Ja genau das will ich. Ich will aber auch verstehen was an meinem Script falsch ist und daraus lernen.
-
@reese1 Naja, es laufen ja auch selten 11 Leute durch deine Küche nehme ich an
Mit Einzelpersonen läuft mein Script auch problemlos.
-
Anbei ein Script per JS, Blockly nehm ich nicht.
Du willst ja lernen!
// Bewegung: Vorratsraum -> Licht einschalten on('alias.0.HM.Bewegung.Vorratsraum.MOTION', function (obj) { // Bewegung erkannt var Status_auto = getState('javascript.0.System.Automatik.Licht.Vorratsraum').val; // Automatik Licht true? var Licht_level = getState('alias.0.HM.Licht.Vorratsraum.STATE').val; // Licht level aktuell var Hell = getState('alias.0.HM.Bewegung.Vorratsraum.BRIGHTNESS').val; // Helligkeit if(Status_auto == true && Licht_level == false) { // Automatik Licht auf true und Licht ist aus if (Hell < 100) { setState('alias.0.HM.Licht.Vorratsraum.STATE',true); log("Helligkeit = " + Hell + "; Licht Vorratsraum eingeschaltet."); setTimeout(function() { pruef_aus(); }, 120000); // nach 2 min. Prüfung } } }); function pruef_aus() { var level = getState('alias.0.HM.Licht.Vorratsraum.STATE').val; // Licht level aktuell if (level == true) { if (getState('alias.0.HM.Bewegung.Vorratsraum.MOTION').val == false){ setState('alias.0.HM.Licht.Vorratsraum.STATE', false); log("Licht Vorratsraum ausgeschaltet."); } else { log("Licht Vorratsraum nicht ausgeschaltet. Erneute Prüfung nach 2 min."); setTimeout(function() { pruef_aus (); }, 120000); // nach 2 min. erneute Prüfung } } }
-
@bahnuhr Danke!
Der Unterschied zu meinem Script ist, dass ihr prüft ob das Licht bereits brennt, während ich bei jeder erkannten Bewegung einen Einschalt-Befehl schicke.
macht das so einen Unterschied? -
@orpheus1977
Na ja, man sollte halt Befehle nur senden, wenn sie notwendig sind.
Bei HM geht dann auch der DC nach oben. -
@bahnuhr OK, ich werde es mal so umbauen und testen. Was ist HM und DC?
-
@orpheus1977 sagte in Bewegungsmelder mit Timer:
@bahnuhr OK, ich werde es mal so umbauen und testen. Was ist HM und DC?
Homematic
Duty Cycle -
@orpheus1977 sagte: Was macht das "falls Wert" im Gegensatz zu dem was ich gemacht habe?
Es wird der Ausschalt-Timer nur gestartet, wenn keine Bewegung erkannt wird.
Wenn der BWM eine interne Ausschaltverzögerung hat, bleibt er true solange Bewegungen erkannt werden.