FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: cocojambo am 14 Dezember 2017, 21:15:22

Titel: DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: cocojambo am 14 Dezember 2017, 21:15:22
Ich habe einen opt.Fensterschalter der die states "geschlossen und geoeffnet" meldet, je nach Zustand. Mit DOIF steuere ich dann einen SIG2 an, der an das Schliessen des Fensters mehrfach erinnert.
define Badfenster_DOIF DOIF ([Badfenster] eq "geoeffnet") (set Badfenster_Text off) DOELSEIF ([Badfenster] eq "geschlossen") (set Badfenster_Text on)
attr Badfenster_DOIF repeatcmd 900                   
attr Badfenster_DOIF repeatsame 20                   
attr Badfenster_DOIF room Unsorted
attr Badfenster_DOIF do always

Das funktioniert 100%ig so, aber bei jeder Initialisierung zb. bei "save fhem.cfg" wird der jeweilige state des Fensterschalters ausgegeben, was nervig ist.
Ich habe dann probiert, DOIF so zu ändern das nur noch tatsächliche state Änderungen berücksichtigt werden sollen.
define Badfenster_DOIF DOIF ([Badfenster:state] eq "geoeffnet") (set Badfenster_Text off) DOELSEIF ([Badfenster:state] eq "geschlossen") (set Badfenster_Text on)
mit dem Attribut
attr Badfenster_DOIF checkReadingEvent 1
Leider geht dann garnichts mehr. Auch andere Lösungen mit *state, ?state oder state: die ich im Forum gefunden habe, haben mir nicht geholfen.
Weiß jemand wie man das definieren muß?
Gruß aus Köln
Norbert
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: Damian am 14 Dezember 2017, 21:58:45
Probiere mal:

define Badfenster_DOIF DOIF ([Badfenster:"geoeffnet"]) (set Badfenster_Text off) DOELSEIF ([Badfenster:"geschlossen"]) (set Badfenster_Text on)
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: cocojambo am 14 Dezember 2017, 22:23:49
Habs gerade mal probiert, scheint im ersten Ansatz zu funktionieren. Werde es morgen mal ausgiebig unter verschiedenen "states" probieren. Erst mal Danke für deine super schnelle Hilfe...(und das um die Zeit ?) Obs funktioniert oder nicht, ich melde mich natürlich auf jeden Fall zurück.

Gruß
Norbert us "Kölle"
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: Frank_Huber am 14 Dezember 2017, 22:41:16
Zum Verständnis,

Deine Version triggert auf den Zustand.
Damian's Korrekture auf das Event.

Der Zustand ist immer da. Das event nur zum Zeitpunkt des Ereignisses.

Mit dem Handy online, daher kurz gefasst...

Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: cocojambo am 15 Dezember 2017, 16:08:03
Leider funktioniert es noch nicht so wie es soll. Es wird zwar jetzt jedes Event ausgelöst und es tut sich auch nichts mehr beim Neustart und bei save fhem.cfg, aber dafür gibt es jetzt sporadisch tagsüber und auch mitten in der Nacht die Nachricht vom "Badezimmerfenster". Mal nach 1 Std, mal alle 2 Std, ohne jeglichen Grund. Im Log ist auch kein Hinweis zu finden wer das auslöst. Ich habe mal die Zeiten verkürzt, hat aber keinen Einfluss darauf. So sieht es im Moment aus:
define Badfenster_DOIF DOIF ([Badfenster:"geoeffnet"]) (set Badfenster_Text off) DOELSEIF ([Badfenster:"geschlossen"]) (set Badfenster_Text on)
attr Badfenster_DOIF repeatcmd 60                   
attr Badfenster_DOIF repeatsame 20                       
attr Badfenster_DOIF do always                     
attr Badfenster_DOIF wait 30:0                           
attr Badfenster_DOIF checkReadingEvent 1         


Gruß
Norbert
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: cocojambo am 16 Dezember 2017, 12:12:49
Ich glaube ich weiß wodurch diese sporadischen Durchsagen kommen. Meistens treten sie im LOG auf nachdem diese Meldung dort steht:
CUL_HM set HMST statusRequest
Dann wird jeweils der Text aktiviert von dem Zustand, der gerade aktuell ist, und zwar immer der "geschlossen" Zustand. Wie kann man verhindern, das bei der Zustandsmeldung des Aktor jeweils ein Event ausgelöst wird?

Gruß
Norbert
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: Frank_Huber am 16 Dezember 2017, 12:14:25
Versuch mal event-on-change-reading zu setzen.
Dann sollte Ruhe sein.

Mit dem Handy online, daher kurz gefasst...

Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: cocojambo am 17 Dezember 2017, 12:53:38
Vielen Dank für den Änderungsvorschlag.
Habe die Änderung gemacht und mal abgewartet bis der nächste Status Request kommt. Im LOG steht dann wieder folgendes:
2017.12.17 12:45:31 3: CUL_HM set HMST statusRequest
2017.12.17 12:45:32 3: CUL_HM set Hoflicht_Einfahrt statusRequest
2017.12.17 12:45:33 3: CUL_HM set Hoflicht_Treppe statusRequest
2017.12.17 12:45:34 3: CUL_HM set Jalousie_Fenster statusRequest
2017.12.17 12:45:35 3: CUL_HM set Jalousie_Tuer statusRequest
2017.12.17 12:45:36 3: CUL_HM set Toreinfahrt statusRequest
2017.12.17 12:45:37 3: CUL_HM set Werkstatt_Led statusRequest
2017.12.17 12:47:31 3: FS20 set Badfenster_Text on
2017.12.17 12:47:31 3: FS20 set Badfenster_Text on
2017.12.17 12:47:32 3: FS20 set Badfenster_Text on
2017.12.17 12:47:32 3: FS20 set Badfenster_Text on
2017.12.17 12:47:34 3: FS20 set Badfenster_Text on
2017.12.17 12:47:35 3: FS20 set Badfenster_Text on

hat also leider nix bewirkt. Das Fenster meldet weiter "geschlossen".

Gruß
Norbert aus Köln
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: Frank_Huber am 17 Dezember 2017, 14:43:07
Hast du das Attribut auch richtig gesetzt? Also mit ".*" oder den einzelnen Readings?

Mit dem Handy online, daher kurz gefasst...

Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: cocojambo am 17 Dezember 2017, 14:56:39
Hatte es zuerst probiert mit einzelnen Readings durch Komma getrennt. Habe es jetzt noch mal geändert.
attr Badfenster_DOIF event-on-change-reading .*
Entschuldigung, hätte ich vielleicht direkt machen sollen. Ich probiere es jetzt noch mal.
Gruß
Norbert
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: Frank_Huber am 17 Dezember 2017, 16:04:54
Nicht in doif, bei den Sensoren!

Also beim Fensterkontakt.

Mit dem Handy online, daher kurz gefasst...
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: cocojambo am 18 Dezember 2017, 15:31:02
Das funktioniert zu gut. Jetzt reagiert DOIF garnicht mehr und das "Fenster" schweigt.
attr Badfenster event-on-change-reading .*

Gruß aus Köln
Norbert
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: Per am 18 Dezember 2017, 16:09:40
Nicht die feine englische, aber probier mal:
define Badfenster_DOIF DOIF ([Badfenster:"statusRequest"])
DOELSEIF([Badfenster:"geoeffnet"]) (set Badfenster_Text off)
DOELSEIF ([Badfenster:"geschlossen"]) (set Badfenster_Text on)

ohne event-on-change-reading im Badfenster.
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: cocojambo am 18 Dezember 2017, 16:39:44
Vielen Dank für den Tipp. Geht aber leider nicht. Der "geöffnet Text" wird sofort wiedergegeben ohne wait und eine Wiederholung findet auch nicht statt. "geschlossen" geht.

Was mir gerade einfällt, ich werde mal das Attribut "do always" weglassen, dann müßte es funktionieren, weil dann nur DOIF reagiert wenn sich wirklich der state ändert und nicht jedesmal wenn der gleiche state gemeldet wird. Mal sehen obs geht, oder gibt es doch noch eine andere Möglichkeit?

Gruß aus Köln
Norbert
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: Frank_Huber am 18 Dezember 2017, 19:24:30
Zitat von: cocojambo am 18 Dezember 2017, 15:31:02
Das funktioniert zu gut. Jetzt reagiert DOIF garnicht mehr und das "Fenster" schweigt.
attr Badfenster event-on-change-reading .*

Gruß aus Köln
Norbert
Wie schaut denn aktuell dein doif aus?

Mit dem Handy online, daher kurz gefasst...

Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: cocojambo am 19 Dezember 2017, 10:46:06
So schaut es aktuell aus:

define Badfenster_DOIF DOIF ([Badfenster:"geoeffnet"]) (set Badfenster_Text off) DOELSEIF ([Badfenster:"geschlossen"]) (set Badfenster_Text on)
attr Badfenster_DOIF checkReadingEvent 1                   
#attr Badfenster_DOIF do always
attr Badfenster_DOIF repeatcmd 60                   
attr Badfenster_DOIF repeatsame 20                     
attr Badfenster_DOIF wait 30:0                           


Habe die LOG Datei komplett durchgesehen von gestern abend bis heute morgen. Das Badfenster taucht kein einziges mal auf und ich habe alle Funktionen durchprobiert, es scheint es geht in dieser Form ohne "do always". Das einzige was ich bemerkt habe ist das der "trigger_cnt" Wert des Gebers um ca. 20 höher ist als gestern, aber wenns geht, stört mich das nicht.

Gruß
Norbert
Titel: Antw:DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus
Beitrag von: Frank_Huber am 19 Dezember 2017, 15:00:26
Also damit sollte es funktionieren.
Bei jedem Statuswecghsel der Badfenster Readings wird ein Event erzeugt, und dein DOIF sollte darauf reagieren.
Wenn es das nicht tut kannst ja mal den Eventmonirtor öffnen und auf "Badfenster" filtern.
Dann machst das Badfenster paarmal Auf und zu.
Solltest dann alles im Eventmonitor sehen.