FHEM Forum

FHEM => Automatisierung => Thema gestartet von: topfi am 01 April 2014, 10:56:25

Titel: Randomtimer von Sonnenuntergang bis: feste Zeit
Beitrag von: topfi am 01 April 2014, 10:56:25
Hallo,

ich habe zur Anwesenheitssimulation einen Randomtimer definiert. Dieser soll von Sonnenuntergang bis 19:30 Uhr aktiv sein. Das hat auch tadellos funktioniert, bis der Sonnenuntergang nach 19:30 Uhr gerutscht ist. Da jetzt die Einschaltzeit im Argument von Randomtimer NACH der Ausschaltzeit liegt, beginnt der Timer also irgendwann nach 19:30 aktiv zu werden und läuft die ganze Nacht und den Folgetag bis 19:30 durch. Wie kann ich es erreichen, dass der Timer deaktiviert wird, wenn die Einschaltzeit nach der Ausschaltzeit liegt?

Mein codeschnipsel:

define ZufallsTimerBad RandomTimer *{sunset_abs("HORIZON=-3")} Licht_Bad *{ReadingsVal("ZufallsTimerBad_aus","state","23:30")} 600
attr ZufallsTimerBad disableCond (!isabwesend())


ZufallsTimerBad_aus wird über ein webCmd eingestellt und steht derzeit auf 19:30 Uhr.
Titel: Antw:Randomtimer von Sonnenuntergang bis: feste Zeit
Beitrag von: betateilchen am 01 April 2014, 11:51:38
Bitte nicht mit sunset_abs arbeiten, das macht immer irgendwann Kummer.

*{sunset("HORIZON=-3",0,"15:00","19:30")}

sorgt dafür, dass der Timer nicht vor 15 Uhr und nicht nach 19:30 Uhr eingeschaltet wird.

Steht übrigens auch in der commandref Dokumentation zum Nachlesen.
Titel: Antw:Randomtimer von Sonnenuntergang bis: feste Zeit
Beitrag von: topfi am 01 April 2014, 12:58:13
Manchmal sieht man den Wald vor Bäumen nicht.  ;) Dabei nutze ich sunset ohne _abs  für andere Timer. Jetzt habe ich aber dadurch gelernt, dass sunset_abs gerade bei länger werdenden Tagen Probleme macht, weil es zwischen dem alten und dem nächsten sunset keinen Tag addiert. Das war jetzt hier nicht das Problem, aber es ist interessant.

Mit dem puren sunset-Befehl habe ich natürlich die Möglichkeit, die ich brauche, danke.
Titel: Antw:Randomtimer von Sonnenuntergang bis: feste Zeit
Beitrag von: betateilchen am 01 April 2014, 13:11:41
q.e.d.  :P
Titel: Antw:Randomtimer von Sonnenuntergang bis: feste Zeit
Beitrag von: topfi am 01 April 2014, 15:53:24
Irgendwie funktioniert das nicht:
define ZufallsTimerBad RandomTimer *{sunset("HORIZON=-3",0,"15:00",{ReadingsVal("ZufallsTimerBad_aus","state","23:30")})} Licht_Bad *{ReadingsVal("ZufallsTimerBad_aus","state","23:30")} 600
Der RandomTimer soll frühestens 15:00 bis zur im Wert ZufallsTimerBad_aus eingestellten Zeit laufen. Jetzt bekomme ich immer nur 00:00 als Einschaltzeit.  Trage ich statt {ReadingsVal("ZufallsTimerBad_aus","state","23:30")})}  einfach "22:00" ein, geht es. Der Timer soll aber gar nicht erst anspringen, wenn der Sonnenuntergang nach ZufallsTimerBad_aus liegt. Momentan ist das 19:30. Wo liegt mein Fehler?

[Edit:] Ich glaube, ich habe es selbst gefunden: Die geschweiften Klammern um das erste ReadingsVal müssen weg. Dabei dachte ich, das sei Perl und kein FHEM... Naja, ich bin Anfänger, siehe die IF-Diskussion. Wobei: beim zweiten Readingsval müssen sie wieder hin. Das verstehe, wer will. :D
Titel: Antw:Randomtimer von Sonnenuntergang bis: feste Zeit
Beitrag von: Dietmar63 am 01 April 2014, 16:25:35
mußt halt noch üben!
Titel: Antw:Randomtimer von Sonnenuntergang bis: feste Zeit
Beitrag von: topfi am 02 April 2014, 08:48:56
Nun ist der Randomtimer wieder angesprungen und lief die ganze Nacht. Anfangs- und Endzeit waren identisch auf 19:30 Uhr. Ich möchte (und hatte das auch so erwartet), dass der RandomTimer NICHT aktiviert wird, wenn Anfangs- und Endzeit identisch sind.  Gibt es da einen Trick oder muss ich wirklich eine IF-Abfrage einbauen?