Hallo.
Ich möchte eine Lampe (Steckdose_A) um 7:25 einschalten, aber nur wenn es dunkel ist und um 8:00 Uhr wieder ausschalten.
Ein bestehendes at was nur per Uhrzeit geschaltet hat, habe ich nun versucht zu ändern:
Das Twilight device heißt LichtWetter bei mir.
*07:25:00 if {twilight("LichtWetter","state",<6)} set Steckdose_A on
oder
*07:25:00 {if {twilight("LichtWetter","state",<6)} {fhem("set Steckdose_A on")}}
If kenn eich aus BASIC / C / Arduino, hier das mit den Klammern ist schon seltsam.
Generell weiß ich aber auch nicht, wie man an solche Infos ran kommt. Die commandref hilft mir da gar nicht weiter.
Hab zwar einiges an Beispielen im Internet gefunden, aber meist nur was mit Sonnenuntergang oder zu einer bestimmten Zeit.
Kann mir hierzu jemand weiterhelfen ?
Perl Code kommt in geschweifte Klammern.
if, elsif und else Statements kommen in normale Klammern.
An bestimmte Readings kommst Du mit ReadingsVal(...).
{fhem "set ..... on" if(ReadingsVal("T","light",0)<5)}
Gruß
Dan
Ansonsten wäre auch ein DOIF sehr einfach umzusetzen: http://fhem.de/commandref_DE.html#DOIF (http://fhem.de/commandref_DE.html#DOIF) bzw. hier fast dein Fall: http://fhem.de/commandref_DE.html#DOIF_checkReadingEvent (http://fhem.de/commandref_DE.html#DOIF_checkReadingEvent) oder http://fhem.de/commandref_DE.html#DOIF_Kombination_von_Ereignis_und_Zeitsteuerung_mit_logischen_Abfragen
Z.B
define di_light DOIF ([07:25-08:00] and [LichtWetter:light] < 6 and !$we) (set Steckdose_A on) DOELSE (set Steckdose_A off)
Edit: Soll denke ich nur unter der Woche angeschaltet werden um 07:25.
Edit2: Code optimiert
Super ! Das DOIF gefällt mir.
Und ja, gute Idee das mit den Wochentagen !
Ist eine Lampe im Außenbereich, und jetzt wenn es morgens noch dunkel ist, kann die an sein, wenn die Kinder zu Schule gehen.
Die Wochentage kannst Du bei der Zeitspanne mit angeben: Wochentagsteuerung (http://fhem.de/commandref_DE.html#DOIF_Wochentagsteuerung)
define di_light DOIF ([07:25-08:00|8] and [LichtWetter:light] < 6) (set Steckdose_A on) DOELSE (set Steckdose_A off)