Wir bewohnen ein konventionell verdrahtetes Haus, das ich nun punktuell mit Homematic "pimpe".
So haben wir ein Treppenhauslicht (ohne Zeitsteuerung), das über drei Taster die einen Stromstossschalter ansteuern, geschaltet wird. Da unsere Kinder vielfach vergessen, das Licht auszuschalten, habe ich die bestehende Installation mit Homematic folgendermassen ergänzt:
Ein Schaltaktor (HM-LC-Sw4-DR) gibt von der gleichen Phase einen 1s Impuls auf den Stromstossschalter. Dies bringt das Treppenhauslicht in den "andern" Zustand. Wenn es eingschaltet war, wird es ausgeschaltet und umgekehrt. Um nun wirklich ausschalten zu können, muss der Zustand daher zuerst detektiert werden. Dies wird über ein "Folgerelais" erreicht. Dieses wird geschaltet sobald das Licht Strom bekommt. Das Relais meldet dann über eine Funk-Schliesserkontaktschnittstelle 3-fach (MH-SCI-3-FM) den Zustand des Lichts zurück.
Wir nun das Licht über den konventionellen Taster eingeschaltet, so wird der Zustandswechsel detektiert und mit 5 Minuten Verzögerung das "Ausschaltscript" gestartet. (Siehe Screenshot 1). Das Ausschaltscript sieht folgendermassen aus:
Code: Alles auswählen
! Schalte Ganglicht OG aus, falls es noch brennt
! -------------------------------------------------------------------------------------
! Frage den "Lichtdetektor" ab ob das Licht im OG brennt
var statusOG = dom.GetObject("BidCos-RF.OEQ1017644:2.STATE").State();
if (statusOG == true){
!----------- Schalte Licht im OG aus
! der virtuelle Taster der Zentrale hat eine Direktveknüpfung mit dem Tasterrelais für das Licht im Gang Obergeschoss
! Daher wird hier der virtuelle Taster bedient.
dom.GetObject("BidCos-RF.BidCoS-RF:2.PRESS_SHORT").State(1);
}
else {
!WriteLine("Licht brennt NICHT im OG");
}
!WriteLine("Hallo Welt!");
Nun wollte ich jedoch die Einschaltdauer verlängern, sofern sich während der ursprünglichen Einschaltdauer jemand im Gang bewegt. D.h. Einschalten manuell, Licht weiterbrennen lassen so lange sich jemand im Erfassungsbereich aufhält, wenn niemand mehr da ist, automatisch ausschalten falls nicht schon manuell ausgeschaltet.
In meiner grenzenlosen Naivität glaubte ich, dass ich dies über einen Bewegungsmelder einfach lösen könne, wenn ich das Ausschaltscript erneut starte, mit dem Haken bei "Vor dem Ausführen alle laufenden Verzögerungen für diese Aktivitäten beenden (z.B. Retriggern)." gesetzt (Screenshot 2): Wenn ich die Anleitung von Christian Lütgens (https://www.christian-luetgens.de/homem ... iggern.htm) richtig verstanden habe, dann sollte dies eingentlich so funktionieren. D.h. "Retrigger" löscht den alten Timer und startet neu. Leider scheint das nicht zu funktionieren.
Beiliegend der Screenshot von Highcharts wo die Aktion "Bewegung erkannt" als orange Punkte und der Zustand des Lichts als orange Linie sichtbar ist: In der aufgezeichneten Situation hätte das Licht wohl gar nie ausschalten sollen... da es immer wieder vom Bewegungsmelder frisch getriggert wurde.
Um Hinweise, wo mein Überlegungsfehler liegt, bzw. wie ich weitersuchen soll, wäre ich sehr dankbar.
Gruss Justus