Moin,
ich hatte bis heute ein DOIF laufen, bei welchem ich die "twilight_weather" Werte per wait gedämpft hatte, so dass um den programmierten Lichtwert herum nicht wild geschaltet wird. Nun habe ich mit dem Presence-Modul gespielt und eine recht gut funktionierende Anwesenheitserkennung hin bekommen. Daraufhin hab ich den Presence-Status mit ins DOIF genommen.
Nun hab ich irgendwie einen Knoten im Hirn, denn durch das wait wird jetzt ja auch meine An-/Abwesenheit gedämpft, so dass erst geschaltet wird, wenn ich nach Ablauf der Wartezeit immer noch "home" bin. Ich bräuchte bitte einen Hinweis, wie ich das Schalten bei Schwankungen um den Lichtwert unterdrücke, aber bei Ankunft/Abfahrt aber sofort schalte, wenn die Reste- Bedingungen zutreffen.
## abends einschalten Fr/Sa oder wenn am nächsten Tag Feiertag von
## 16:00 Uhr bis 23:30 Uhr oder sonst bis 21:00
## morgens Mo-Fr von 05:20 Uhr bis 07:30 Uhr
## aber nur, wenn es dunkel genug ist und jemand zu Hause ist
(([?15:00-23:30|56] or [?15:00-23:30] and [?BRB_Feiertag:tomorrow] ne "none" or [?16:00-21:00|01234] and [?BRB_Feiertag:tomorrow] eq "none" or [?05:20-07:30|8]) and [LichtWetter:twilight_weather] <40 and [Mittelstr] eq "home")
(set AZ_ZS_Fenster on)
## sonst ausschalten
DOELSE
(set AZ_ZS_Fenster off)
Danke
Michael
Was hälst Du denn davon, über event-aggregator die Messwerte des Lichtsensors zu glätten und nicht mit wait zu arbeiten? Wait fügt ja feste Wartezeiten ein, mit denen die von Dir beschriebene Trägheit entsteht.
Im Modul Lichtwetter kannst Du das interaktiv machen, indem Du das Attribut event-aggregator auswählst und da zum Beispiel eingibst:
twilight_weather:600:linear:mean
Es werden dann nur alle 600 Sekunden ein artihm. Mittelwert gebildet und ausgegeben.
Christian
Zitat von: cwagner am 25 Oktober 2015, 18:05:36
Was hälst Du denn davon, über event-aggregator die Messwerte des Lichtsensors zu glätten und nicht mit wait zu arbeiten? Wait fügt ja feste Wartezeiten ein, mit denen die von Dir beschriebene Trägheit entsteht.
Im Modul Lichtwetter kannst Du das interaktiv machen, indem Du das Attribut event-aggregator auswählst und da zum Beispiel eingibst:
twilight_weather:600:linear:mean
Es werden dann nur alle 600 Sekunden ein artihm. Mittelwert gebildet und ausgegeben.
Christian
Tausend Dank, es gibt einfach zu viele Parameter, an denen man drehen und die man übersehen kann! Leider gibt es Probleme mit dem Syntax, wenn ich das versuche:
## abends einschalten Fr/Sa oder wenn am nächsten Tag Feiertag von
## 16:00 Uhr bis 23:30 Uhr oder sonst bis 21:00
## morgens Mo-Fr von 05:20 Uhr bis 07:30 Uhr
## aber nur, wenn es dunkel genug ist und jemand zu Hause ist
(([?15:00-23:30|56] or [?15:00-23:30] and [?BRB_Feiertag:tomorrow] ne "none" or [?16:00-21:00|01234] and [?BRB_Feiertag:tomorrow] eq "none" or [?05:20-07:30|8]) and [LichtWetter:twilight_weather:600:linear:mean] <40 and [Mittelstr] eq "home")
(set AZ_ZS_Fenster on)
## sonst ausschalten
DOELSE
(set AZ_ZS_Fenster off)
sagt Fhem das
AZ_DekobeleuchtungAutomatik DOIF: unknown expression format: 600
Gruß
Michael
Der Aufruf des Readings im DOIF ändert sich nicht!
Im Device wird der event-aggregator eingesetzt - entweder interaktiv durch Auswahl des Attributes oder so
attr LichtWetter event-aggregator twilight_weather:600:linear:mean
Es werden also über eine Zeitspanne (hier 5 Minuten) die Readings gemittelt und am Ende dieser Zeit (FHEM nennt es black-out-Zeit) dann ein Reading mit dem Mittelwert als EVENT ausgesandt.
DOIF lauscht ja auf EVENTs und wird do nicht von den Schwankungen immer hin- und hergeschaltet.
Christian
Vielen Dank für die Erklärung, da gibt es noch viel zu lernen. Ich habe jetzt das wait aus dem DOIF raus genommen und werde mal testen, ob alles klappt.
Gruß
Michael