Zeitschaltuhr: Unterschied zwischen den Versionen

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
(Added DOIF example)
Keine Bearbeitungszusammenfassung
 
Zeile 2: Zeile 2:
Eine Umwälzpumpe, die an einem FS20 Schalter hängt, soll zu bestimmten Tageszeiten alle 15 Minuten für jeweils 5 Minuten eingeschaltet werden - mit unterschiedlichen Zeiträumen je Wochentag.
Eine Umwälzpumpe, die an einem FS20 Schalter hängt, soll zu bestimmten Tageszeiten alle 15 Minuten für jeweils 5 Minuten eingeschaltet werden - mit unterschiedlichen Zeiträumen je Wochentag.


== Lösungsansatz 1 ==
== Lösungsansatz 1: at ==
Es wird der [http://fhem.de/commandref.html#at at-Befehl] verwendet.
Es wird der [http://fhem.de/commandref.html#at at-Befehl] verwendet.


Zeile 21: Zeile 21:
  }
  }
}</nowiki>
}</nowiki>
== Lösungsansatz 2 ==
== Lösungsansatz 2: at mit Prüflauf ==
Es wird ein dauerhafter Prüflauf genutzt, der alle 15 Minuten prüft, ob der Zeitpunkt der Ausführung erreicht ist.
Es wird ein dauerhafter Prüflauf genutzt, der alle 15 Minuten prüft, ob der Zeitpunkt der Ausführung erreicht ist.


Zeile 27: Zeile 27:
  <nowiki>define pumpe_wd78 at +*00:15 { fhem("set Umwaelzpumpe on-for-timer 300") if(!$we &amp;&amp; $hour&gt;=7 &amp;&amp; $hour&lt;9) }</nowiki>
  <nowiki>define pumpe_wd78 at +*00:15 { fhem("set Umwaelzpumpe on-for-timer 300") if(!$we &amp;&amp; $hour&gt;=7 &amp;&amp; $hour&lt;9) }</nowiki>


== Lösungsansatz 3 ==
== Lösungsansatz 3: RandomTimer ==
Als (einfache) Alternative kann auch das Hilfsmodul [[RandomTimer]] verwendet werden.
Als (einfache) Alternative kann auch das Hilfsmodul [[RandomTimer]] verwendet werden.


== Lösungsansatz 4 ==
== Lösungsansatz 4: WeekdayTimer ==
Alternativ kann das Hilfsmodul [[WeekdayTimer]] genutzt werden.
Alternativ kann das Hilfsmodul [[WeekdayTimer]] genutzt werden.



Aktuelle Version vom 17. Januar 2019, 10:53 Uhr

Anforderung

Eine Umwälzpumpe, die an einem FS20 Schalter hängt, soll zu bestimmten Tageszeiten alle 15 Minuten für jeweils 5 Minuten eingeschaltet werden - mit unterschiedlichen Zeiträumen je Wochentag.

Lösungsansatz 1: at

Es wird der at-Befehl verwendet.

Täglich zur gewünschten Startzeit wird geprüft, ob die Voraussetzungen erfüllt sind. Ist dies der Fall, wird die Pumpe n mal alle 15 Minuten für 5 Minuten eingeschaltet. Die jeweilige Laufzeit der Pumpe wird durch on-for-timer in Sekunden angegeben (300 Sekunden).

  • Täglich 17 Uhr bis 23 Uhr (6 Stunden = 24 Wiederholungen à 15 Minuten)
define PumpeAbendsStart at *17:00:00 {
 { fhem("define PumpeAbends at +*{24}00:15:00 set Umwaelzpumpe on-for-timer 300") }
}
  • An Wochentagen 7 Uhr bis 9 Uhr (8 Wiederholungen), an Wochenenden 7 Uhr bis 17 Uhr (36 Wiederholungen)
define PumpeMorgensStart at *07:00:00 {
 if (!$we) {
   { fhem("define PumpeMorgens at +*{8}00:15:00 set Umwaelzpumpe on-for-timer 300") }
 }
 else {
   { fhem("define PumpeMorgens at +*{36}00:15:00 set Umwaelzpumpe on-for-timer 300") }
 }
}

Lösungsansatz 2: at mit Prüflauf

Es wird ein dauerhafter Prüflauf genutzt, der alle 15 Minuten prüft, ob der Zeitpunkt der Ausführung erreicht ist.

  • An Wochentagen 7 Uhr bis 9 Uhr
define pumpe_wd78 at +*00:15 { fhem("set Umwaelzpumpe on-for-timer 300") if(!$we && $hour>=7 && $hour<9) }

Lösungsansatz 3: RandomTimer

Als (einfache) Alternative kann auch das Hilfsmodul RandomTimer verwendet werden.

Lösungsansatz 4: WeekdayTimer

Alternativ kann das Hilfsmodul WeekdayTimer genutzt werden.

Lösungsansatz 5: DOIF

Siehe DOIF Intervall-Timer

Weitere Beispiele