From 7151fbedfad1c3f1b7d798d8e354a8f8f384579c Mon Sep 17 00:00:00 2001 From: damian-s Date: Sun, 8 Mar 2015 20:24:27 +0000 Subject: [PATCH] 98_DOIF.pm: Doku zu indirekten Zeitangaben angepasst git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@8177 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_DOIF.pm | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/fhem/FHEM/98_DOIF.pm b/fhem/FHEM/98_DOIF.pm index 6ba9f9e2f..3dcf6282a 100644 --- a/fhem/FHEM/98_DOIF.pm +++ b/fhem/FHEM/98_DOIF.pm @@ -1276,17 +1276,18 @@ Schalten mit Zeitfunktionen, hier: bei Sonnenaufgang und Sonnenuntergang:

define di_light DOIF ([{sunrise_abs()}-{sunset(1800,"17:00","21:00")}])(set outdoorlight off) DOELSE (set outdoorlight on)

-Schalten mit indirekten Zeitangaben
+Indirekten Zeitangaben

-Statt fester Zeitangaben können auch Stati, Readings oder Internals angegeben werden. Diese müssen eine Zeitangabe im Format HH:MM oder HH:MM:SS beinhalten.
+Oft möchte man keine festen Zeiten im Modul angeben, sondern Zeiten, die man z. B. über Dummys über die Weboberfläche verändern kann. +Statt fester Zeitangaben können Stati, Readings oder Internals angegeben werden. Diese müssen eine Zeitangabe im Format HH:MM oder HH:MM:SS beinhalten.

-Anwendungsbeispiel
+Anwendungsbeispiel: Lampe soll zu einer bestimmten Zeit eingeschaltet werden. Die Zeit soll über den Dummy time einstellbar sein:

define time dummy
set time 08:00
define di_time DOIF ([[time]])(set lamp on)


-oder Angaben mit Zeitintervallen
+Ebenfalls funktionieren indirekte Zeitangaben mit Zeitintervallen. Hier wird die Ein- und Ausschaltzeit jeweils über einen Dummy bestimmt:

define begin dummy
set begin 08:00
@@ -1294,13 +1295,23 @@ set begin 08:00
define end dummy
set end 10:00

-define di_time DOIF ([[begin]-[end]])(set radio on) DOELSE (set radio off)

+define di_time DOIF ([[begin]-[end]]) (set radio on) DOELSE (set radio off)

Bei einer Änderung des angebenen Status oder Readings wird die geänderte Zeit sofort im Modul aktualisiert.

-Die Endzeit soll abhängig von der Beginnzeit mit Hilfe einer eignen Perl-Funktion, hier: OffTime(), bestimmt werden. begin und end sind Dummys, wie oben definiert:
+Angabe eines Readings als Zeitangabe. Beispiel: Schalten anhand eines Twilight-Readings:

-define di_time DOIF ([[begin]-[end]]) (set lamp on, set end_time {(OffTime("[begin]"))}) DOELSE (set lamp off)
+define di_time DOIF ([[myTwilight:ss_weather]])(set lamp on)
+
+Dynamische Änderung einer Zeitangabe.
+
+Anwendungsbeispiel: Die Endzeit soll abhängig von der Beginnzeit mit Hilfe einer eigenen Perl-Funktion, hier: OffTime(), bestimmt werden. begin und end sind Dummys, wie oben definiert:
+
+define di_time DOIF ([[begin]-[end]]) (set lamp on, set end {(OffTime("[begin]"))}) DOELSE (set lamp off)
+
+Indirekte Zeitangaben lassen sich mit Wochentagangaben kombinieren, z. B.:
+
+define di_time DOIF ([[begin]-[end]|7]) (set radio on) DOELSE (set radio off)

Kombination von Ereignis- und Zeitsteuerung mit logischen Abfragen