Hallo,
Da ich bisher immer noch nicht genau von Hand einen notify Schreiben kann nutze ich die Hilfen mit change the condition und change the executed command. Wobei letzteres nur einen command zulässt, wenn man weitere will muss man die doch von Hand und einfach-Semikolon und set ... ergänzen.
Aber egal. Ich habe also die Condition mit der Hilfe erzeugt und verzweifel.
Haustuer:state:open.*|Haustuer:trigger_cnt:.* set WEB_Pushover msg Haustuer offen ; set Ausgabe_LED on-for-timer 15
Beide Condition habe ich wie gesagt mit der Hilfe erstellt. Es werden dann die Befehle mit pushover und der LED ausgeführt sobald die Haustuer auf ist. Dort ist ein HM-SEC-SCo verbaut.
Aber was ich nicht verstehe ist der Umstand, dass die erste condition alleine stehend
Haustuer:state:open.* set WEB_Pushover msg Haustuer offen ; set Ausgabe_LED on-for-timer 15
nichts auslöst beim Öffnen der Haustuer, die zweite condition alleine stehend
Haustuer:trigger_cnt:.* set WEB_Pushover msg Haustuer offen ; set Ausgabe_LED on-for-timer 15
natürlich bei jeder Änderung des Zählers des Turkontakts die Befehle ausführt. Die erste condition sollte doch beim Eintreten des Zustands open (im reading state) die Befehle auslösen. Und wenn der state wieder auf closed geht (Haustuer wieder closed) passiert nix.
Warum also führt die erste condition alleine stehend zu nix während die zweite condition alleine stehend funktioniert? Wie gesagt, ich habe beide condition über die change the condition eingetragen, nicht von Hand in die DEF geschrieben.
Fhem ist 6.0 und alle Update gemacht.
Danke.
state ist "speziell" das steht nicht im Event!
Öffne doch mal den Eventmonitor, da siehst du es und könntest dir die beiden Einzel-Trigger auch erzeugen lassen...
Dann funktionieren die normalerweise auch ;)
https://wiki.fhem.de/wiki/Event_monitor
"verodern" mit | kennst du ja schon...
Du kannst auch das Attribut addStateEvent beim notify setzen (nicht wirklich empfohlen)...
Dann "erscheint" auch state bzw. es "steht" im Trigger ABER ist trotzdem NICHT zu sehen im Eventmonitor, daher nicht empfohlen...
Wenn zu häufig Meldungen kommen, dann mal bzgl. event-on-change-reading und "Verwandte" schauen...
Gruß, Joachim
Es kommt folgendes im eventmonitor und für mich ist das alles normal:
2020-12-30 21:47:24 CUL_HM Haustuer contact: open (to VCCU)
2020-12-30 21:47:24 CUL_HM Haustuer open
2020-12-30 21:47:24 CUL_HM Haustuer trigger_cnt: 205
2020-12-30 21:47:24 CUL_HM VCCU_Btn5 trigLast: Haustuer:open
2020-12-30 21:47:24 CUL_HM VCCU_Btn5 trig_Haustuer: Open_205
2020-12-30 21:47:24 CUL_HM VCCU_Btn5 trigLast: Haustuer:open
2020-12-30 21:47:24 CUL_HM VCCU_Btn5 trig_Haustuer: Open_205
2020-12-30 21:47:24 CUL_HM Ausgabe_LED trigLast: fhem:02
2020-12-30 21:47:25 CUL_HM VCCU_Btn5 trigLast: Haustuer:open
2020-12-30 21:47:25 CUL_HM VCCU_Btn5 trig_Haustuer: Open_205
2020-12-30 21:47:25 Pushover WEB_Pushover apiRemaining: 7357
2020-12-30 21:47:25 Pushover WEB_Pushover lastMessage: Haustuer offen
2020-12-30 21:47:25 Pushover WEB_Pushover lastAction: -
2020-12-30 21:47:25 Pushover WEB_Pushover lastDevice: i8,ipadmichael
2020-12-30 21:47:25 Pushover WEB_Pushover lastRequest: 302c551b-d214-4cba-b355-e3fa2f7af487
2020-12-30 21:47:25 Pushover WEB_Pushover lastResult: ok
2020-12-30 21:47:25 CUL_HM Ausgabe_LED on
2020-12-30 21:47:25 CUL_HM Ausgabe_LED_MP3 commState: CMDs_done
2020-12-30 21:47:25 CUL_HM Ausgabe_LED_MP3 CMDs_done
2020-12-30 21:47:28 Pushover WEB_Pushover msg Haustuer offen
2020-12-30 21:47:28 CUL_HM Ausgabe_LED_MP3 commState: CMDs_pending
2020-12-30 21:47:28 CUL_HM Ausgabe_LED_MP3 CMDs_pending
2020-12-30 21:47:28 CUL_HM Ausgabe_LED set_on-for-timer 15
2020-12-30 21:47:28 CUL_HM Ausgabe_LED_MP3 commState: CMDs_processing...
2020-12-30 21:47:28 CUL_HM Ausgabe_LED trigLast: fhem:02
2020-12-30 21:47:28 CUL_HM Haustuer contact: closed (to VCCU)
2020-12-30 21:47:28 CUL_HM Haustuer closed
2020-12-30 21:47:28 CUL_HM Haustuer trigger_cnt: 206
2020-12-30 21:47:28 CUL_HM VCCU_Btn5 trigLast: Haustuer:closed
2020-12-30 21:47:28 CUL_HM VCCU_Btn5 trig_Haustuer: Closed_206
2020-12-30 21:47:28 CUL_HM VCCU_Btn5 trigLast: Haustuer:closed
2020-12-30 21:47:28 CUL_HM VCCU_Btn5 trig_Haustuer: Closed_206
2020-12-30 21:47:28 CUL_HM Ausgabe_LED trigLast: fhem:02
2020-12-30 21:47:29 Pushover WEB_Pushover apiRemaining: 7356
2020-12-30 21:47:29 Pushover WEB_Pushover lastMessage: Haustuer offen
2020-12-30 21:47:29 Pushover WEB_Pushover lastAction: -
2020-12-30 21:47:29 Pushover WEB_Pushover lastDevice: i8,ipadmichael
2020-12-30 21:47:29 Pushover WEB_Pushover lastRequest: 7135754d-8f5f-4588-869c-5234f345911a
2020-12-30 21:47:29 Pushover WEB_Pushover lastResult: ok
2020-12-30 21:47:29 CUL_HM Ausgabe_LED trigLast: fhem:02
2020-12-30 21:47:29 CUL_HM Ausgabe_LED on
2020-12-30 21:47:29 CUL_HM Ausgabe_LED_MP3 commState: CMDs_done
2020-12-30 21:47:29 CUL_HM Ausgabe_LED_MP3 CMDs_done
Folgendes kommt, wenn nur die Open-condition im notify drin ist:
2020-12-30 21:50:59 CUL_HM Haustuer contact: open (to VCCU)
2020-12-30 21:50:59 CUL_HM Haustuer open
2020-12-30 21:50:59 CUL_HM Haustuer trigger_cnt: 207
2020-12-30 21:51:00 CUL_HM VCCU_Btn5 trigLast: Haustuer:open
2020-12-30 21:51:00 CUL_HM VCCU_Btn5 trig_Haustuer: Open_207
2020-12-30 21:51:00 CUL_HM VCCU_Btn5 trigLast: Haustuer:open
2020-12-30 21:51:00 CUL_HM VCCU_Btn5 trig_Haustuer: Open_207
2020-12-30 21:51:01 CUL_HM VCCU_Btn5 trigLast: Haustuer:open
2020-12-30 21:51:01 CUL_HM VCCU_Btn5 trig_Haustuer: Open_207
2020-12-30 21:51:06 CUL_HM Haustuer contact: closed (to VCCU)
2020-12-30 21:51:06 CUL_HM Haustuer closed
2020-12-30 21:51:06 CUL_HM Haustuer trigger_cnt: 208
2020-12-30 21:51:06 CUL_HM VCCU_Btn5 trigLast: Haustuer:closed
2020-12-30 21:51:06 CUL_HM VCCU_Btn5 trig_Haustuer: Closed_208
2020-12-30 21:51:06 CUL_HM VCCU_Btn5 trigLast: Haustuer:closed
2020-12-30 21:51:06 CUL_HM VCCU_Btn5 trig_Haustuer: Closed_208
Open wird erkannt und an die VCCU gemeldet. Der trigger zählt beide Änderungen. Closed wird auch übermittelt.
Das peering an den virtuellen Kanal Btn5 der VCCU kann doch nichts damit zu tun haben.
Aber wie gesagt, ich habe ja nur die Hilfe für change the condition genutzt. Da hoffe ich doch, dass die von der Hilfe angebotenen Condition auch alle funktionieren. Den state closed bietet die Hilfe im Auswahlfenster gar nicht an um es als condition zu nutzen. Das ging aber früher in Fhem 5.6 alles so wie ich es in der condition hatte.
Ich will ja auch prüfen an der terrassentuer wenn sie closed ist darf Fhem die Rolllade um x Uhr runterfahren, wenn state Open ist dann nicht, denn dann sperren wir uns aus.
In deiner RegEx vom notify steht 'state'!
Siehst du bei den Eventmonitorausgaben irgendwo 'state'?
Ich nicht...
Daher wird DAS notif auch nicht getriggert...
Wobei: bitte "code-Tags" nehmen zum Posten! Das '#' im "Menü"...
So ist es ganz schwer lesbar...
Hast du das Wiki bzgl. Eventmonitor angesehen!?
Markiere doch eine Zeile und lass dir ein notify erzeugen oder schau dir an was denn dort als RegEx steht...
Gruß, Joachim
Das condition Haustuer:open.* ohne state funktioniert. Diese Erklärung steht auch so in Etwa in der Hilfe zum device notify.
Ich verstehe aber nicht, warum dann die change the condition Hilfe eine unbrauchbare Condition erzeugt? Ist das ein Fehler in der Auswahlliste zu den condition? Guck du mal bitte selber in die Hilfe.
Warum soll ich mir die Hilfe anschauen?
Ich hab noch nie verwendet (verm.) wovon du hier sprichst...
(bzw. gab es glaub ich bzgl. dem was du schreibst schon mal einen Thread mit "Verbesserungsanfrage")
Nutze einfach den Eventmonitor und gut...
Allerdings: wenn du dein erstes gepostetes notify korrejt erstellst, wird es (da du ja ODER hast) häufiger triggern!!
Also entweder mit if oder IF arbeiten, gleich DOIF nehmen und auch bzgl. event-on-change-reading Readings "eindämmen"...
Gruß, Joachim
Aber das was du willst geht doch anders!?
Also ein at um x-Uhr und IM at prüfen (ReadingsVal) ob das Fenster auf oder zu ist und dann eben schliessen oder nicht...
Allerdings wenn es um die Zeit offen ist fährt später auch kein Rollladen mehr...
Also ich denke du musst noch mal nachdenken bzgl. deiner Logik bzw. was genau du unter welchen Bedingungen willst...
Gruß, Joachim
Ich habe das state aus dem notify entfernt und so funktioniert es ja. Duhast sicher Recht, dass Du die Hilfe nicht mehr nutzen musst. Ich nutze sie auch nur dann, wenn etwas einfach nicht funktioniert. Und wenn es dann mit der Hilfe auch nicht funktioniert, wird man als Mini-halb-Laie beim direkten Befehle Schreiben verzweifeln.
Nach einem Thread, der quasi mein Problem mit falscher condition schon behandelt, habe ich nicht gesucht, denn ich denke ja gar nicht daran, dass es tatsächlich falsch vorgeschlagen wird. Ich Laie Zweifel da an mir.
Danke für die Hilfe.
- die Hilfe kann nicht alle Werte wissen, die state nehmen kann. Das ist nur eine Hilfe und muss nicht unbedingt vollständig sein
- die Hilfe bietet alle Readings des Devices als mögliche Regex. state kann in bestimmten Fällen funktionieren (hier aber nicht). Wiederum: das ist nur eine Hilfe
Der sicherste Weg, um ein notify zu erstellen, wenn man nicht weiss, wie man die Regex aufbauen muss, ist durch den Eventmonitor. So muss man nicht "als Mini-halb-Laie beim direkten Befehle Schreiben verzweifeln"
Hier würde ich so wie so nicht den "state" Event benutzen, sondern "contact"
Da kann ich nix mehr hinzufügen...
Wäre in etwa meine Antwort gewesen... ;)
Gruß, Joachim
Zitat von: MadMax-FHEM am 30 Dezember 2020, 22:09:30
Aber das was du willst geht doch anders!?
Also ein at um x-Uhr und IM at prüfen (ReadingsVal) ob das Fenster auf oder zu ist und dann eben schliessen oder nicht...
Allerdings wenn es um die Zeit offen ist fährt später auch kein Rollladen mehr...
Also ich denke du musst noch mal nachdenken bzgl. deiner Logik bzw. was genau du unter welchen Bedingungen willst...
Gruß, Joachim
Ja das ist eine Zeitsteuerung über twilight. Ja ich weiß dass die Rolllade dann später nicht mehr runterfährt. Aber da ich ja zu Hause bin, denn die Terrassentür war ja offen, schließe ich die Rolllade später von Hand. Und glaub mir, ich habe schon getüftelt, dass er den ,,unterdrückten" Befehl für die Rolllade nach x-Minuten erneut absetzen soll. Auf dem Papier mit Der Abfrage ob der Befehl wegen der twilight Zeit schon mal gesetzt wurde aber nicht ausgeführt werden konnte und deshalb erneut in x Minuten gesendet werden soll, habe ich das schon programmiert. Hier in Fhem in Kombination mit ([{ ;; kann ich das nicht.
Komplizierte Dinge ,,programmiere" ich dann im Iobroker mit blocky. Das ist für einen Laien einfacher. Da habe ich es einfach hinbekommen unsere Kaffeemaschine morgens korrekt einzuschalten in Abhängigkeit vom Typ Tag (WE oder Werktag), ob einer überhaupt zu Hause ist, ob es ein Feiertag in NRW ist oder wir anderweitig an einem Werktag frei haben und deshalb nicht um 05:30 Uhr aufstehen sondern um 09:00 Uhr.
Zitat von: amenomade am 30 Dezember 2020, 22:12:55
- die Hilfe kann nicht alle Werte wissen, die state nehmen kann. Das ist nur eine Hilfe und muss nicht unbedingt vollständig sein
- die Hilfe bietet alle Readings des Devices als mögliche Regex. state kann in bestimmten Fällen funktionieren (hier aber nicht). Wiederum: das ist nur eine Hilfe
Der sicherste Weg, um ein notify zu erstellen, wenn man nicht weiss, wie man die Regex aufbauen muss, ist durch den Eventmonitor. So muss man nicht "als Mini-halb-Laie beim direkten Befehle Schreiben verzweifeln"
Hier würde ich so wie so nicht den "state" Event benutzen, sondern "contact"
Das mit dem reading contact closed ( to VCCU) merke ich mir und werde mal versuchen, die notify so zu bauen anstelle den state zu nutzen.
Danke an euch.
Zitat von: misave am 30 Dezember 2020, 22:24:12
Das mit dem reading contact closed ( to VCCU) merke ich mir und werde mal versuchen, die notify so zu bauen anstelle den state zu nutzen.
Danke an euch.
Du musst nich "bauen". Einfach, wie schon erwähnt, die entspr. Zeile im Eventmonitor markieren, und auf "Create/modify device" klicken. Dann kannst Du die Regex einfach kopieren.