(gelöst) Twilight + notify

Begonnen von TomHB, 22 Mai 2022, 10:36:33

Vorheriges Thema - Nächstes Thema

TomHB

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

Otto123

#1
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomHB

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

rudolfkoenig

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.

TomHB

Vielen Dank für die Antwort.
Hab schon wieder mal an mir selbst gezweifelt  ;)

Otto123

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?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomHB

#6
Probiere es gerade aus... :)

Warum aber Twilight laut Ereignisanzeige mal eine Gradänderung verschluckt ist mir aber immer noch ein Rätsel.

Beta-User

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).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomHB

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.

Beta-User

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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomHB

OK. Danke für die Aufklärung :)