ich arbeite nun zum ersten mal mit Twilight und mir ist das nicht ganz klar ob das nun auch funktioniert. Evtl. schaut mal jemand drauf.
Ich möchte folgendes erreichen, eine Flurbeleuchtung soll morgens nicht vor 6 Uhr einschalten und im Winter nicht nach 8.30 Uhr, so als Beispiele mal die Zeiten.
Da das Twilight jetzt bei "sr_civil" eine Zeit von 05:56:32 Uhr anzeigt, sollte das DOIF nicht einschalten, ist das richtig..?
Mir ist aber noch nicht ganz klar, wenn es dann hell wird sagen wir mal um 6:45 Uhr wie das dann ausgehen soll, denn es soll ja wenn es hell wird ausgehen..
hier das list:
Internals:
CFGFN ./FHEM/Automation.cfg
DEF ([06:00-08:30] and [Flur_Twilight:aktEvent] eq "sr_civil") (set Flur_Lampe on) DOELSE (set Flur_Lampe off)
NAME di_lamp_Flur
NR 96
NTFY_ORDER 50-di_lamp_Flur
STATE initialized
TYPE DOIF
Readings:
2015-03-18 14:42:12 state initialized
2015-03-18 14:42:12 timer_1_c1 19.03.2015 06:00:00
2015-03-18 14:42:12 timer_2_c1 19.03.2015 08:30:00
Condition:
0 DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf('Flur_Twilight','aktEvent','') eq "sr_civil"
Days:
Devices:
0 Flur_Twilight
all Flur_Twilight
Do:
0 set Flur_Lampe on
1 set Flur_Lampe off
Helper:
last_timer 2
sleeptimer -1
Itimer:
Readings:
0 Flur_Twilight:aktEvent
all Flur_Twilight:aktEvent
Realtime:
0 06:00:00
1 08:30:00
State:
Time:
0 06:00:00
1 08:30:00
Timecond:
0 0
1 0
Timer:
0 0
1 0
Timerfunc:
Timers:
0 0 1
Attributes:
room AutomationTest
list Twilight
Readings:
2015-03-18 14:14:48 aktEvent sr_weather
2015-03-18 14:34:40 azimuth 218.17
2015-03-18 14:34:40 compasspoint south-southwest
2015-03-18 14:14:37 condition 34
2015-03-18 14:14:37 condition_txt Fair
2015-03-18 14:34:40 elevation 31.98
2015-03-18 14:14:48 horizon 3
2015-03-18 14:14:48 light 6
2015-03-18 14:14:48 nextEvent ss_weather
2015-03-18 14:14:48 nextEventTime 18:03:29
2015-03-18 14:14:37 sr 06:36:01
2015-03-18 14:14:37 sr_astro 04:34:55
2015-03-18 14:14:37 sr_civil 05:56:32
2015-03-18 14:14:37 sr_indoor 06:55:46
2015-03-18 14:14:37 sr_naut 05:16:29
2015-03-18 14:14:37 sr_weather 06:55:46
2015-03-18 14:14:37 ss 18:23:15
2015-03-18 14:14:37 ss_astro 20:24:21
2015-03-18 14:14:37 ss_civil 19:02:44
2015-03-18 14:14:37 ss_indoor 18:03:29
2015-03-18 14:14:37 ss_naut 19:42:47
2015-03-18 14:14:37 ss_weather 18:03:29
2015-03-18 14:14:48 state 6
2015-03-18 14:34:40 twilight 100
2015-03-18 14:34:40 twilight_weather 100
vielleicht ist das auch mit Twilight zu kompliziert, evtl. reicht ja sunrise und sunset.
Ich schreibe mal hier die Anforderung hin.
Anwendungsbeispiel: Flur_Licht soll morgens an Werktagen, wenn es hell wird angehen, aber nicht vor 6:00 Uhr ausgehen soll es, wenn es hell wird (Sunset.?), aber spätestens um 8:00 Uhr (letzteres gilt eben für Winter)
Jetzt wird das ganze Konstrukt nichts mehr machen, aber das ist richtig so, denn es ist ja um 6:00 Uhr schon hell
Das DOIF würde ich evtl. so machen, nur mir kommt das mit dem Ausschalten nicht so richtig vor..!
Evtl. hat jemand für den Ausschaltzeitpunkt einen besseren Einfall..?
Ist ja wie in der commanref nur mit umgekehrten Ein/Aus Zeiten
list:
Internals:
CFGFN
DEF ([{sunrise_abs("CIVIL",0,"06:00","08:00")}|8]-[{sunset(0,"06:01","08:00")}])(set Flur_Lampe on) DOELSE (set Flur_lampe off)
NAME di_Flur_Lampe
NR 2674
NTFY_ORDER 50-di_Flur_Lampe
STATE initialized
TYPE DOIF
Readings:
2015-03-19 12:22:04 state initialized
2015-03-19 12:22:04 timer_1_c1 20.03.2015 06:00:00|8
2015-03-19 12:22:04 timer_2_c1 20.03.2015 08:00:00
Condition:
0 DOIF_time_once($hash->{timer}{0},$wday,"8")-DOIF_time_once($hash->{timer}{1},$wday,"")
Days:
0 8
Devices:
Do:
0 set Flur_Lampe on
1 set Flur_lampe off
Helper:
last_timer 2
sleeptimer -1
Itimer:
Realtime:
0 06:00:00
1 08:00:00
State:
Time:
0 {sunrise_abs("CIVIL",0,"06:00","08:00")}
1 {sunset(0,"06:01","08:00")}
Timecond:
0 0
1 0
Timer:
0 0
1 0
Timerfunc:
Timers:
0 0 1
Attributes:
room AutomationTest
Du kannst doch das Reading "twilight_weather" als Bedingung innerhalb eine DOIF einbinden.
z.B. "and [myT:twilight_weather]>50"
Zitat von: Bartimaus am 21 März 2015, 10:38:00
Du kannst doch das Reading "twilight_weather" als Bedingung innerhalb eine DOIF einbinden.
z.B. "and [myT:twilight_weather]>50"
Das dürfte das Einfachste sein und entspricht meinem Beispiel mit Helligkeitssensor (allerdings mit festen Zeiten) zu Lichtsteuerung in der Commandref:
ZitatAnwendungsbeispiel: Lampe soll ab 6:00 Uhr angehen, wenn es dunkel ist und wieder ausgehen, wenn es hell wird, spätestens aber um 9:00 Uhr:
define di_lamp DOIF ([06:00-09:00] and [sensor:brightness] < 40) (set lamp on) DOELSE (set lamp off)
Abgesehen davon bei mir im täglichen Einsatz erprobt ;)
Gruß
Damian
Zitat von: Damian am 21 März 2015, 11:48:17
Das dürfte das Einfachste sein und entspricht meinem Beispiel mit Helligkeitssensor (allerdings mit festen Zeiten) zu Lichtsteuerung in der Commandref:
Abgesehen davon bei mir im täglichen Einsatz erprobt ;)
Gruß
Damian
ich habe wohl dran vorbei gesehen, zzzzh :-\ ;)
es ist bei einem Bekannten und der hat keinen Helleigkeitssensor, dass heißt ganz logisch ich muss es eben ohne machen und mit "twilight_weather"
Das werde ich mal testen...
Werde es so einsetzen:
([06:00-08:00] and [myTwilight:twilight_weather] < 40) (set Flur_Licht on) DOELSE (set Flur_Licht off)
zum Verständnis für mich 1.Bedingung ist für 6:00 Uhr, also sobald es kleiner 40 wird geht das Licht an..?
Zitat von: moonsorrox am 21 März 2015, 13:27:40
([06:00-08:00] and [myTwilight:twilight_weather] < 40) (set Flur_Licht on) DOELSE (set Flur_Licht off)
zum Verständnis für mich 1.Bedingung ist für 6:00 Uhr, also sobald es kleiner 40 wird geht das Licht an..?
ja, zwischen 06:00 und 08:00 Uhr. Wenn vor 06:00 Uhr es kleiner als 40 ist, dann geht das Licht Punkt 06:00 Uhr an. Wenn nach 08:00 Uhr es kleiner 40 wird, passiert nichts.
Gruß
Damian
Gruß
Damian
Zitat von: Damian am 21 März 2015, 15:02:48
ja, zwischen 06:00 und 08:00 Uhr. Wenn vor 06:00 Uhr es kleiner als 40 ist, dann geht das Licht Punkt 06:00 Uhr an. Wenn nach 08:00 Uhr es kleiner 40 wird, passiert nichts.
und wie verhält es sich zwischen 06:00 und 08:00 Uhr, richtet sich die Ausschaltzeit dann nach dem Wert von Twilight..?
Zitat von: moonsorrox am 21 März 2015, 15:32:13
und wie verhält es sich zwischen 06:00 und 08:00 Uhr, richtet sich die Ausschaltzeit dann nach dem Wert von Twilight..?
logischer Weise, wenn twilight_weather >= 40 wird, spätestens um 08:00 Uhr.
Gruß
Damian
Zitat von: Damian am 21 März 2015, 15:52:49
logischer Weise, wenn twilight_weather >= 40 wird, spätestens um 08:00 Uhr.
OK, so hatte ich es mir erhofft...! ;) Danke
ist jetzt schlecht zu testen, da muss ich schon mit der Zeit runter, es wird Frühling :D ;)
so irgendwie stehe ich noch mit dem DOIF Twilight auf dem Schlauch :-\
ich habe das so drin:
([06:00-08:00] and [myTwilight:twilight_weather] < 40) (set Flur_Licht on) DOELSE (set Flur_Licht off)
Gestern ist die Lampe um 6:00 Uhr angegangen und um 6:35 Uhr aus,
Heute ist die Lampe um 6:00 Uhr angegangen und um 6:25 Uhr aus, normal sollte sie eigentlich gar nicht mehr angehen da es ja schon hell ist...
Muss ich jetzt den Wert runter nehmen oder das < Zeichen umdrehen..?
Sehe da grad nicht durch und kann nicht schauen was "twilight_weather" morgens zeigt
Zitat von: moonsorrox am 25 März 2015, 13:31:20
so irgendwie stehe ich noch mit dem DOIF Twilight auf dem Schlauch :-\
ich habe das so drin:
([06:00-08:00] and [myTwilight:twilight_weather] < 40) (set Flur_Licht on) DOELSE (set Flur_Licht off)
Gestern ist die Lampe um 6:00 Uhr angegangen und um 6:35 Uhr aus,
Heute ist die Lampe um 6:00 Uhr angegangen und um 6:25 Uhr aus, normal sollte sie eigentlich gar nicht mehr angehen da es ja schon hell ist...
Muss ich jetzt den Wert runter nehmen oder das < Zeichen umdrehen..?
Sehe da grad nicht durch und kann nicht schauen was "twilight_weather" morgens zeigt
hell, aber offenbar nicht hell genug ist. Wenn um 06:25 Uhr die Lampe ausgeht, dann ist das der Zeitpunkt, wo die Schwelle von 40 überschritten wird. Wenn es dir zu spät ist bzw. zu hell dann musst du einfach die Schwelle deinen Bedürfnissen anpassen. Du schaust einfach welcher Wert in twilight_weather steht, wenn du der Meinung bist, dass es für dich hell genug ist und den Wert setzt du anstelle von 40 ein. Den Wert 40 habe ich doch nur zufällig gewählt.
Gruß
Damian