sunset, sunrise und wann ist es dunkel?

Begonnen von ujaudio, 02 Dezember 2014, 21:25:21

Vorheriges Thema - Nächstes Thema

ujaudio

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
Einen lieben Gruß
Jürgen

KernSani

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


RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

rudolfkoenig

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.