Um meine Frage vereinfacht darzustellen folgendes Szenario: Ich habe einen Taster um eine Lampe einzuschalten, was aber nur dann passieren soll, wenn es dunkel ist. Ein Helligkeitssensor ist nicht vorhanden, aber FHEM kann das schon, stimmt's!?
Ich glaube folgendes verstanden zu haben:
- sunset_abs() gibt mir die Zeit als Zeichenkette hh:mm für den Sonnenuntergang des aktuellen Tages
- sunrise_abs() entsprechend für den Sonnenaufgang
- Die aktuelle Zeit als Zeichenkette im Format hh:mm bekomme ich mittels sprintf("%%02d:%%02d", $hour, $min)
- Dunkel ist es also (näherungsweise) wenn sprintf(...) größer als sunset_abs() ist oder wenn sprintf(...) kleiner als sunrise_abs() ist.
- Als Vergleichsoperatoren muss ich gt und lt verwenden, weil ich ja Zeichenketten vergleiche, das logische oder kodiert sich als | (senkrechter Strich)
Das Ganze muss nun in ein notify hinein, welches an den Taster gekoppelt wird.
Dann habe ich aber noch TWILIGHT gefunden. das scheint mir noch viel geeigneter für meine Zwecke zu sein. Aber mir ist nicht klar, wie ich das reading "light", bzw. "twilight_wheather" auswerten muss:
- wie muss ich das get-Kommando in mein notify einbauen?
Wo kann ich da noch etwas Hilfreiches nachlesen?
Einen lieben Gruß
Jürgen
Hallo Jürgen,
ich habe noch nicht viel mit TWILIGHT experimentiert, aber dein notify sollte etwa so aussehen:
define LampeAn notify <TASTER>:on {if (ReadingsVal("myTwilight", "twilight_weather",0)<2) {fhem("set <LAMPE> on")}}
mit anderen Worten, wenn das reading "weather_twilight" < 2 ist, dann soll die Lampe angehen.
Viel Erfolg,
Grüße,
Oli
Zu sunset:
- falls es in der at-Zeitangabe verwendet wird, dann bitte die Version ohne _abs nutzen
- es gibt die Funktion isday() zum Pruefen auf Tag und Nacht, oder man vegleicht auf $hms
- sunrise/sunset kann man auch verschieben (siehe commandref), bzw. andere Sonnenwinkel nehmen, ist aber trotzdem weniger flexibel als twilight.