Guten Abend,
mal wieder eine typische Anfängerfrage - danke für eure Hilfe !
Ich möchte ein Außenlicht morgens an Arbeitstagen (!$we) frühestens um 5:45 (spätestens um 8:00, jahreszeitabhängig /astro) einschalten, wenn die Helligkeit draußen unter 200 Lux liegt.
Die reine Astro-Zeitschaltung über einen entsprechenden AT-Befehl und Berechnung des Einschalt-Zeitpunkts über SUNRISE funktioniert. Gerne würde ich die Brightness-Werte, die mein HM-Sen-Li-O liefert dazu nutzen, um z.B um 5:45Uhr ( im Sommer also deutlich nach Sonnenaufgang) zu prüfen, ob es bereits so hell ist, dass das Aussenlicht nicht mehr eingeschaltet werden muss.
Das TWILIGHT Modul liefert mir zu ungenaue Daten und da ja der Helligkeitssensor ohnehin in Betrieb ist, würde ich die lokalen Werte gerne nutzen. Ein NOTIFY mit Abfrage der Helligkeit und Einschalten bekomme ich auch funktionierend hin:
define Helligkeitssensor_Sued_notify_1 notify (Helligkeitssensor_Sued:brightness.*) {if ($EVTPART1 < 200) {fhem "set Aussenlicht on"}}
aber die Perl-Struktur in einem AT will mir nicht gelingen (mein fehlerhafter Code):
define AussenlichtOn at *{sunrise(-60,"05:45","08:00")} { if (!$we && (Helligkeitssensor_Sued:brightness.*) {if ($EVTPART1 < 200) {fhem "set Aussenlicht on"}};;
Die Prüfung auf Unterschreiten der Helligkeitsschwelle soll nur einmal zum Einschaltzeitpunkt erfolgen, also nicht im Sinne einer ständigen THRESHOLD Prüfung.
Bin auf eure Ideen gespannt :)
Hi,
die Idee heisst (ungetestet):
{ if (!$we and ReadingsNum("Helligkeitssensor_Sued","brightness",999) < 200) {fhem "set Aussenlicht on"}}
ein regEx wie beim notify ist an dieser Stelle nicht verwendbar, er filtert einen Event und greift nicht auf Readings zu.
Gruß Otto
Guten Morgen Otto,
Deine Idee ist auch getestet gut und funktioniert, herzlichen Dank für Deine Antwort! :)