FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: TomHB am 22 Mai 2022, 10:36:33

Titel: (gelöst) Twilight + notify
Beitrag von: TomHB am 22 Mai 2022, 10:36:33
Guten Morgen,

ich habe 1 - nein, eigentlich 2 Probleme:
Ich versuche Twilight mit dem Reading azimuth zu nutzen, um mein Rollo zusteuern.

Dabei ist mir aufgefallen, das hier nicht jedes Grad ein Ereignis auslöst, sondern auch schon mal eines übersprungen wird.
defmod Sonnenstand Twilight xxx yyy 0
attr Sonnenstand event-on-change-reading azimuth, twilight,.*
attr Sonnenstand stateFormat Winkel: azimuth° / Höhe: elevation° / Helligkeit: twilight%


(Das Modul Astro hatte ich noch nicht ausprobiert, weil ich erstmal versuchen wollte das Problem so zu lösen.)
Daher habe ich versucht, es mit einem Notify zu kompensieren, welches 2 Grade berücksichtigt.

Hier will das, was in dem Wiki-Eintrag https://wiki.fhem.de/wiki/Notify (https://wiki.fhem.de/wiki/Notify) steht nicht so ganz funktionieren, oder ich verstehe es einfach nicht so. ;)
Die Beispiele mit den Platzhaltern sind :
Schalter(1|2|3) → hört auf Schalter1, Schalter2 und Schalter3
dimmer:pct:.(100|7[6-9]|[89][0-9]) → reagiert, wenn pct einen Wert über 75 annimmt.

Also habe ich mein Notify wie folgt aufgebaut (für 90°+91°):
defmod n_RolloKuecheAusfahren notify Sonnenstand:azimuth:.9(0|1) {   oder 
defmod n_RolloKuecheAusfahren notify Sonnenstand:azimuth:.(90|91) {  oder
defmod n_RolloKuecheAusfahren notifySonnenstand:azimuth:.(9[01]) {

Bei einigen bekomme ich ein "REGEXP (!)":
Could not optimize the regexp:
    Sonnenstand:azimuth:.9(0|1)

How I tried (notifyRegexpCheck):

    Sonnenstand:azimuth:.9(0: device Sonnenstand (OK)
    1): unknown (ignored)


Ich verstehe nicht, warum es nicht funktioniert, weil es doch eigentlich dem 1./2. Beispiel entspricht.
Mag hier jemand seinen Wissensschatz mit mir teilen?
Danke!
Titel: Antw:Twilight + notify
Beitrag von: Otto123 am 22 Mai 2022, 10:56:17
Hi,

ich meine das hier
Zitatattr Sonnenstand event-on-change-reading azimuth, twilight,.*
ist doppelter Unfug.
ZitatDieses Attribut enthält eine durch Kommata getrennte Liste von "readings".
Entweder eine Liste von Readings (mit Komma nicht mit Komma und Leerzeichen) oder alle -> .*
mach mal:
attr Sonnenstand event-on-change-reading .*

Und ist der Wert azimuth nicht eine Fließkomma Zahl? Da wird der trigger auf zwei Ziffern nicht funktionieren. triggere doch einfach auf das Reading und mach eine Abfrage im folgenden Perl Teil

Gruß Otto
Titel: Antw:Twilight + notify
Beitrag von: TomHB am 22 Mai 2022, 11:05:19
Danke,
das event-on-change-reading ist in der Tat etwas vermurkst (Noch aus meinen jüngeren FHEM-Jahren).

Ja, vorher hatte ich es auch so, aber das kann ein "Grund"-Grad:
Sonnenstand:azimuth:.90.*

Würde es halt aber gerne über das Notify direkt lösen und nicht durch nachfolgende Logik.
Einfach weils gehen müsste...
Titel: Antw:Twilight + notify
Beitrag von: rudolfkoenig am 22 Mai 2022, 11:08:50
Der "Regexp-Optimierer" (richtiger: die Optimierung, um sinnlose Pruefungen in den Modulen wie notify zu vermeiden) ist nicht perfekt, insb. wenn man das | Zeichen im Regexp verwendet.
Das ist keine Katastrophe, und hat nur bei grossen Installationen mit vielen Events eine spuerbare Auswirkung.

Mit Sonnenstand:azimuth:.(9[01]) hat es kein Problem und mit Sonnenstand:azimuth:.9[01] auch nicht, gerade getestet.
Titel: Antw:Twilight + notify
Beitrag von: TomHB am 22 Mai 2022, 11:13:31
Vielen Dank für die Antwort.
Hab schon wieder mal an mir selbst gezweifelt  ;)
Titel: Antw:Twilight + notify
Beitrag von: Otto123 am 22 Mai 2022, 11:16:05
Einen Schwellwert als Gleitkomma Zahl durch ein Suchmuster im notify zu ermitteln ist mMn der schwierigste Weg

Aber dann müsste da wieder der Rest dran?
Sonnenstand:azimuth:.9[01].*

Oder das Reading in einen Integer Wert umgewandelt werden?
Titel: Antw:Twilight + notify
Beitrag von: TomHB am 22 Mai 2022, 11:25:16
Probiere es gerade aus... :)

Warum aber Twilight laut Ereignisanzeige mal eine Gradänderung verschluckt ist mir aber immer noch ein Rätsel.
Titel: Antw:Twilight + notify
Beitrag von: Beta-User am 22 Mai 2022, 11:58:40
Zitat von: TomHB am 22 Mai 2022, 11:25:16
Warum aber Twilight laut Ereignisanzeige mal eine Gradänderung verschluckt ist mir aber immer noch ein Rätsel.
könnte sein, dass der Maintainer der Ansicht war, dass minimale Änderungen keinen interessieren ::) ...
(Und den Eindruck hatte, dass viele User Probleme damit haben, event-on-Attribute korrekt zu setzen).
Titel: Antw:Twilight + notify
Beitrag von: TomHB am 22 Mai 2022, 16:16:50
Zitat von: Beta-User am 22 Mai 2022, 11:58:40
(Und den Eindruck hatte, dass viele User Probleme damit haben, event-on-Attribute korrekt zu setzen).
Klingt nicht nach konstruktiver Kritik...


Zitat von: Otto123 am 22 Mai 2022, 11:16:05
Aber dann müsste da wieder der Rest dran?
Sonnenstand:azimuth:.9[01].*
Korrekt, ohne funktioniert es nicht.
Titel: Antw:Twilight + notify
Beitrag von: Beta-User am 22 Mai 2022, 16:35:01
Zitat von: TomHB am 22 Mai 2022, 16:16:50
Klingt nicht nach konstruktiver Kritik...
Sorry, das war nicht persönlich gemeint.

Das Modulverhalten ist jetzt schon länger so (ca. 2 Jahre?), ohne, dass es bisher jemandem aufgefallen zu sein scheint. Was ich aber immer wieder (bei allen möglichen numerischen Werten) sehe, ist die pauschale ".*"-Empfehlung für event-on-change-reading von vielen anderen Usern, die hier gar nicht helfen würde (weil da praktisch immer irgendwelche Differenzen errechnet werden).

Jedenfalls bist du nicht alleine mit der Frage, wie man die readingFnAttributes sinnvoll setzt, siehe aktuell z.B. https://forum.fhem.de/index.php/topic,111905.msg1222441.html#msg1222441 (für Shelly allg./pm gab es schon einen Diskussionsvorschlag von meiner Seite, den aber keiner effektiv zuende führen wollte).

Von daher habe ich kein allzu schlechtes Gewissen, wenn ich hier mal auf das (gefühlte) "Hä, warum verhält sich Twilight an der Stelle so komisch?!?" nicht einen konkreten Vorschlag für eine "gute" Hysterese und einen sinnvollen Intervall-Wert frei Haus liefere...
Titel: Antw:(gelöst) Twilight + notify
Beitrag von: TomHB am 22 Mai 2022, 16:37:08
OK. Danke für die Aufklärung :)