WeekdayTimer: Unterschied zwischen den Versionen

Aus FHEMWiki
(Einige Anwendungsbeispiele eingefügt)
(delayedExecutionCond Beispiel hinzugefügt)
Zeile 36: Zeile 36:
* Umwälzpumpe für einen Brunnen einschalten, aber nur, wenn der Aktor nicht im Heizbetrieb verwendet wird und die Außentemperatur über einer Mindesttemperatur liegt
* Umwälzpumpe für einen Brunnen einschalten, aber nur, wenn der Aktor nicht im Heizbetrieb verwendet wird und die Außentemperatur über einer Mindesttemperatur liegt
  define Timer_Brunnen_Schildkroeten WeekdayTimer Wasser_Schildkroeten 10:45|1800 12:30|1800 14:00|1800 15:30|1800 17:00|1800 19:00|1800 { if (ReadingsVal("Aussentemperatur_Nord", "state", "no") > 8 && ReadingsVal("Heizung_Schildkroeten","state","active") eq "disabled") { fhem ("set $NAME on-for-timer $EVENT")}}
  define Timer_Brunnen_Schildkroeten WeekdayTimer Wasser_Schildkroeten 10:45|1800 12:30|1800 14:00|1800 15:30|1800 17:00|1800 19:00|1800 { if (ReadingsVal("Aussentemperatur_Nord", "state", "no") > 8 && ReadingsVal("Heizung_Schildkroeten","state","active") eq "disabled") { fhem ("set $NAME on-for-timer $EVENT")}}
=== Verzögerte bedingungsabhängige Auslösung ===
* Abbildung eines Anwesenheitstimers, der zusätzlich prüft, ob am zu schaltenden Gerät (hier: ein Dummy) ein Reading namens ''smartphone'' (noch) eine gegenläufige Info<ref>Hierfür wird ein [[Notify]] verwendet, das ähnlich wie das in [[FRITZBOX#Anwesenheitserkennung per Notify|FRITZBOX]] beschrieben ist.</ref> gegeben ist.
Die eigentliche Auslöseverzögerung für die Abwesenheit erfolgt dann über die Auswertung des Attributs ''delayedExecutionCond''.
define rr_Mann_Presence_Timer WeekdayTimer rr_Mann !$we|06:30|awoken !$we|06:40|home $we|08:00|awoken $we|08:30|home !$we|07:30|absent !$we|19:00|home 01234|21:45|gotosleep 01234|22:00|asleep 56|22:40|gotosleep 56|23:00|asleep
attr rr_Mann_Presence_Timer commandTemplate set $NAME  $EVENT
attr rr_Mann_Presence_Timer delayedExecutionCond {ReadingsVal($NAME,'smartphone','absent') eq 'present' and $EVENT eq 'absent'?1:0}


=== zeitweise Deaktivieren ===
=== zeitweise Deaktivieren ===

Version vom 9. Oktober 2018, 12:26 Uhr

Todo: Der Commandref-Abschnitt zu diesem Modul enthält noch einige Fehler und Ungenauigkeiten, die im Zusammenhang mit der Ausarbeitung dieser Wiki-Seite korrigiert werden sollten. Auf dieser Seite fehlen insbesondere noch Anwendungsbeispiele mit Screenshots sowie die Beschreibung von Besonderheiten wie die vereinfachte/integrierte Unterstützung von enable/disable.


WeekdayTimer
Zweck / Funktion
Definition von Wochen-Zeitschaltplänen
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) Unterstuetzende Dienste
Modulname 98_WeekdayTimer.pm
Ersteller igami (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


WeekdayTimer ist ein Hilfsmodul zur Erstellung von (Wochen-)Zeitschaltplänen für Geräte.

Voraussetzungen

Keine.

Anwendung

Define

Ein WeekdayTimer wird angelegt mittels

define meinWDT WeekdayTimer meinDevice <profil> ...

Details: siehe commandref/WeekdayTimer

Attribute

Siehe commandref/WeekdayTimer.

Anwendungsbeispiele

Einfache Timer

  • Rolladensteuerung mit HomeMatic-Rolläden
define Timer_Rolladen_Automode_1 WeekdayTimer TYPE=CUL_HM:FILTER=model=HM-LC-Bl1PBU-FM:FILTER=automode=1 !$we|{sunrise("CIVIL",0,"06:45","08:00")}|on $we|{sunrise("CIVIL",0,"08:40","09:00")}|on {sunset("CIVIL",0,"20:45","22:20")}|off {fhem ("set $NAME:FILTER=STATE!=$EVENT $EVENT")} 

Es werden bestimmte Rolläden, die ein userattr namens automode mit 1 gesetzt haben, zu unterschiedlichen Zeiten am Wochendende bzw. Feiertag und unter der Woche geöffnet bzw. bei Sonnenuntergang geschlossen.

  • Schalten einer Umwälzpumpe für Warmwasser (HM-Aktor)
define Timer_Umwaelzpumpe WeekdayTimer AktorPumpe !$we|05:50|600 $we|06:55|600 12:30|600 set $NAME on-for-timer $EVENT

Timer mit Zusatzbedingungen

  • Rollladen schließen, aber nur, wenn die zugehörige Ausgangstür geschlossen ist[1]:
define Innen.EG.Kueche.RolladenTuer.WT WeekdayTimer Innen.EG.Kueche.RolladenTuer Mo-So|{sunrise_abs(0,"06:30","10:00")}|on Mo-So|23:30|off (Value("Innen.EG.Kueche.RolladenTuer") eq "closed")
  • Umwälzpumpe für einen Brunnen einschalten, aber nur, wenn der Aktor nicht im Heizbetrieb verwendet wird und die Außentemperatur über einer Mindesttemperatur liegt
define Timer_Brunnen_Schildkroeten WeekdayTimer Wasser_Schildkroeten 10:45|1800 12:30|1800 14:00|1800 15:30|1800 17:00|1800 19:00|1800 { if (ReadingsVal("Aussentemperatur_Nord", "state", "no") > 8 && ReadingsVal("Heizung_Schildkroeten","state","active") eq "disabled") { fhem ("set $NAME on-for-timer $EVENT")}}

Verzögerte bedingungsabhängige Auslösung

  • Abbildung eines Anwesenheitstimers, der zusätzlich prüft, ob am zu schaltenden Gerät (hier: ein Dummy) ein Reading namens smartphone (noch) eine gegenläufige Info[2] gegeben ist.

Die eigentliche Auslöseverzögerung für die Abwesenheit erfolgt dann über die Auswertung des Attributs delayedExecutionCond.

define rr_Mann_Presence_Timer WeekdayTimer rr_Mann !$we|06:30|awoken !$we|06:40|home $we|08:00|awoken $we|08:30|home !$we|07:30|absent !$we|19:00|home 01234|21:45|gotosleep 01234|22:00|asleep 56|22:40|gotosleep 56|23:00|asleep
attr rr_Mann_Presence_Timer commandTemplate set $NAME  $EVENT
attr rr_Mann_Presence_Timer delayedExecutionCond {ReadingsVal($NAME,'smartphone','absent') eq 'present' and $EVENT eq 'absent'?1:0}

zeitweise Deaktivieren

Links

Hinweise

  1. Forenthread
  2. Hierfür wird ein Notify verwendet, das ähnlich wie das in FRITZBOX beschrieben ist.