Guten Abend zusammen!
Ich versuche, mein Hoflicht mit der Twilight-Funktion automatisch bei gleicher Dämmerung ein bzw. auszuschalten.
Folgenden Code habe ich in der cfg eingegeben:
define myTL Twilight 48.xxx 13.xxx
#DEFINITION ZEITSCHALTUNG HOFLICHT
define HOF_Licht1_an1 at *{Twilight("myTL","light","3","05:00","08:00")} set HOF_Beleuchtung1 on
Ich bekomme daraufhin folgende Fehlermeldung:
Zitatthe at function "Twilight("myTL","light","3","05:00","08:00")" must return a timespec and not Undefined subroutine &main::Twilight called at (eval 79958) line 1, <$fh> line 105
Ich habe die Definition vom Wiki abgeleitet und kann daher die Fehlermeldung eigtl nicht nachvollziehen.
Findet Ihr einen Syntaxfehler oder habe ich (mal wieder) ein Verständnisproblem?
Danke für die Hilfe!
jager
Das steht so bestimmt nicht im Wiki, falls doch bitte Quelle nennen, damit ich das abändern kann. ;)
Zitat
{Twilight("myTL","light","3","05:00","08:00")}
Du willst die Perl-Funktion "twilight" innerhalb des Moduls Twilight aufrufen, darum muss der Aufruf auch klein geschrieben werden. Zudem enthält Dein Aufruf einen Parameter zu viel. Es gibt nur 4.
Wenn Du es so probierst, könnte es dem gewünschten Ergebnis entsprechen:
Zitat{twilight("myTL","light","05:00","08:00")}
Zum Testen: Kopiere das einfach in das Befehls-Eingabefeld von Fhem und löse aus. Dann siehst Du das Ergebnis und es ist hoffentlich was Du möchtest und kannst Dein at entsprechend bauen.
Danke erstmal, ich probier's so.
den Wert 3 wollte ich für die Auswahl der bürgerlichen Dämmerung hinterlegen. Muss ich das dann woanders machen?
Twilight innerhalb twilight... Das klingt unnötig kompliziert! Ist es überhaupt sinnvoll, das so zu machen, um nur das Licht 2x an und wieder aus zu schalten?
Gruß
Jager
Zitat von: jager am 24 Januar 2015, 19:04:28
den Wert 3 wollte ich für die Auswahl der bürgerlichen Dämmerung hinterlegen. Muss ich das dann woanders machen?
Dann müsstest Du nach meiner Meinung laut Commandref so aufrufen:
{twilight("myTL","sr_civil","05:00","08:00")}
Woher Dein Parameter "light" kommt, konnte ich jetzt nicht feststellen
ZitatTwilight innerhalb twilight... Das klingt unnötig kompliziert! Ist es überhaupt sinnvoll, das so zu machen, um nur das Licht 2x an und wieder aus zu schalten?
Du nutzt halt einfach für Deine Zwecke eine Funktion aus dem Modul und nicht die vorgebenen Readings Deines Devices "Twilight". Dadurch kannst Du einfach min/max-Zeiten vorgeben und brauchst keine if/elsif-Konstrukte. Sinnvoll? Für mich schon, wenn man dämmerungsabhängig schaten möchte.
Es wird klarer... :)
Danke!!!
Zu sr_civil hätte ich noch eine Frage.
Wo finde ich eine Übersicht der Attribute?
Hintergrund ist, dass ich jetzt genau festlegen möchte, bei welchem Dämmerungsgrad ein und bei welchem wieder ausgeschaltet werden soll.
Das hier mit Light 1, 2, 3 habe ich daher
http://www.fhemwiki.de/wiki/Twilight (http://www.fhemwiki.de/wiki/Twilight)
Zitat von: jager am 24 Januar 2015, 19:47:54
Zu sr_civil hätte ich noch eine Frage.
Wo finde ich eine Übersicht der Attribute?
Die Parameter findest Du in der Commandref zu Twilight. Das sind die Readings ss_.* und sr_.*; dort steht ganz unten auch etwas zur twilight-Funktion
Zitat
Das hier mit Light 1, 2, 3 habe ich daher
http://www.fhemwiki.de/wiki/Twilight (http://www.fhemwiki.de/wiki/Twilight)
Das sind die Werte für das Reading "light" in Deinem Twilight-Device.
Jetzt ist alles korrekt drin.
Vielen Dank krikan!
Ich schau jetzt mal oben es so schaltet, wie es soll.
Schönen Abend!
So, die Schaltung klappt immer recht gut, mir ist im Logfile nur aufgefallen, dass das Licht am Abend 2x angeschaltet wird.
Rein logisch macht das nix aus, aber sauber ist es halt nicht.
#DEFINITION TWILIGHT POSITION
define myTL Twilight 48.XXXX 13.XXXXX
#DEFINITION ZEITSCHALTUNG HOFLICHT
define HOF_Licht1_an1 at *06:00:00 set HOF_Beleuchtung1 on
define HOF_Licht1_aus1 at *{twilight("myTL","sr","06:30","09:00")} set HOF_Beleuchtung1 off
define HOF_Licht1_an2 at *{twilight("myTL","ss","15:00","20:00")} set HOF_Beleuchtung1 on
define HOF_Licht1_aus2 at *01:00:00 set HOF_Beleuchtung1 off
Logfile:
2015.02.01 16:56:20 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.01 16:57:55 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.02 01:00:00 3: CUL_HM set HOF_Beleuchtung1 off
2015.02.02 06:00:00 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.02 07:40:45 3: CUL_HM set HOF_Beleuchtung1 off
2015.02.02 16:57:55 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.02 16:59:31 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.03 01:00:00 3: CUL_HM set HOF_Beleuchtung1 off
2015.02.03 06:00:00 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.03 07:39:26 3: CUL_HM set HOF_Beleuchtung1 off
2015.02.03 16:59:31 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.03 17:01:05 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.04 01:00:00 3: CUL_HM set HOF_Beleuchtung1 off
2015.02.04 06:00:00 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.04 07:38:03 3: CUL_HM set HOF_Beleuchtung1 off
2015.02.04 17:01:05 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.04 17:02:42 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.05 01:00:00 3: CUL_HM set HOF_Beleuchtung1 off
2015.02.05 06:00:00 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.05 07:36:41 3: CUL_HM set HOF_Beleuchtung1 off
2015.02.05 17:02:42 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.05 17:04:17 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.06 01:00:00 3: CUL_HM set HOF_Beleuchtung1 off
2015.02.06 06:00:00 3: CUL_HM set HOF_Beleuchtung1 on
2015.02.06 07:35:16 3: CUL_HM set HOF_Beleuchtung1 off
Wo steckt mein Fehler?
Gruß
jager
So, die Schaltung klappt immer recht gut, mir ist im Logfile nur aufgefallen, dass das Licht am Abend 2x angeschaltet wird.
Rein logisch macht das nix aus, aber sauber ist es halt nicht.
Das dürfte am at liegen und daran, dass der Sonnenuntergang ab jetzt langsam immer später stattfindet.
Nach der Ausführung des at ermittelt das at seinen nächsten Schaltzeitpunkt und das ist eben nur ein wenig später.