Script mit "if" Timer

Hallo,

erstmal danke das hier schon so viele Beträge verfasst und Beantwortet sind, dies hat mir den Einstieg deutlich Leichter gemacht.

Leider habe ich zu meinen Fragen nichts gefunden, aber ggf auch fasch gesucht.

  1. Ich möchte per Script die Heizung ausschalten, sobald ein Tür/Fenster Kontakt länger 60 Sec geöffnet ist. Ich kann bis dato per Script nur sofort reagieren.

  2. Der Fibaro Tür/Fenster Kontakt „Ich weis heißes Thema :-D“ Ist es nun möglich den Potentialfreien Kontakt zu nutzen, ggf sogar als einzelkontakt? In meinem Fall soll auf dauer per Riegelschaltkontakt in der Haustüre die Nachtabsenkung aktiviert werden. Und da dort ohnehin der Fibaro sitzt würde sich das anbieten.

Ich danke schon mal im Voraus

Gruß
Juno

Moin Juno!

  1. Das ist einfach zu lösen. Einfach im Skript nicht direkt die Heizung ausschalten, sondern mit „IPS_SetScriptTimer“ einen Timer mit 60 Sekunden erstellen und wenn das Skript dann per Timer aufgerufen wird „if ($_IPS[‚SENDER‘] == „TimerEvent“) {“ dort den Befehl zum Abschalten der Heizung einbauen. Dazu finden sich einige Beispiele im Forum oder im „Wie kann ich 2.0“ Thread.

Grüße,
Chris

Ich muss mich da in der Anfrage korrigieren, ich möchte die Heizung nur fahren wenn das Fenster/Tür länger als X geöffnet ist.

Nicht das die Stellmotoren arbeiten wie verrückt nur weil mal jemand durchgegangen ist.

Gruß
Juno

Kommt aufs gleiche raus :slight_smile:

Fenster wird geöffnet, Skript wird durch TriggerEvent bei Variablenänderung aufgerufen und startet ein „IPS_SetScriptTimer“ mit 60 Sekunden. Und wenn das Skript dann per Timer aufgerufen wird „if ($_IPS[‚SENDER‘] == „TimerEvent“) {“ dort erstmal abfragen, ob die Variable immer noch auf „Fenster offen“ steht, wenn ja, dann Heizung abschalten, wenn nein, dann nichts machen (außer in beiden Fällen natürlich den Timer wieder auf 0 setzen und damit stoppen).

Alternativ könnte man auch 2 TriggerEvents machen und im Skript prüfen, durch welches Event das Skript aufgerufen wurde (Fenster auf - Event // Fenster zu - Event) und dort dann jeweils den Timer starten oder stoppen.

Grüße,
Chris