DOIF löst immer beim Speichern, Initiallisieren oder bei save fhem.cfg aus

Begonnen von cocojambo, 14 Dezember 2017, 21:15:22

Vorheriges Thema - Nächstes Thema

cocojambo

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
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Damian

Probiere mal:

define Badfenster_DOIF DOIF ([Badfenster:"geoeffnet"]) (set Badfenster_Text off) DOELSEIF ([Badfenster:"geschlossen"]) (set Badfenster_Text on)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cocojambo

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"
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Frank_Huber

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...


cocojambo

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
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

cocojambo

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
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Frank_Huber

Versuch mal event-on-change-reading zu setzen.
Dann sollte Ruhe sein.

Mit dem Handy online, daher kurz gefasst...


cocojambo

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
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Frank_Huber

Hast du das Attribut auch richtig gesetzt? Also mit ".*" oder den einzelnen Readings?

Mit dem Handy online, daher kurz gefasst...


cocojambo

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
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Frank_Huber

Nicht in doif, bei den Sensoren!

Also beim Fensterkontakt.

Mit dem Handy online, daher kurz gefasst...

cocojambo

Das funktioniert zu gut. Jetzt reagiert DOIF garnicht mehr und das "Fenster" schweigt.
attr Badfenster event-on-change-reading .*

Gruß aus Köln
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Per

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.

cocojambo

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
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Frank_Huber

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...