[gelöst] event-on-change-reading für bestimmte Readings unterdrücken

Begonnen von Rampler, 13 Dezember 2022, 11:26:00

Vorheriges Thema - Nächstes Thema

Rampler

Hallo zusammen,
ich möchte bestimmte Readings unterdrücken.
Ich wiki steht:

Falls ein Reading namens "unwanted" KEINE Events erzeugen soll, lässt sich das mit
    attr <device> event-on-change-reading (?!unwanted).*
unterdrücken


Ich habe nun folgendes Reading:
Aussentemperatur:0.2,(?!Warmwassertemperatur.*),.*
jedoch wird das Reading immer noch geschrieben.

Was mache ich falsch ?

VG  Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Otto123

#1
Hallo Klaus,

event-on-change-reading unterdrückt die events, nicht das schreiben des Readings.

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

Beta-User

und wenn ganz am Ende ",.*" steht, ist das möglicherweise auch nicht im Sinne des Erfinders...

Wie immer: Ohne kompletten Input und sinnvolle Beschreibung des eigentlichen Schmerzes kann man schlecht beurteilen, wie der Schmerz beseitigt werden könnte.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

betateilchen

Zitat von: Otto123 am 13 Dezember 2022, 11:29:40
event-on-change-reading unterdrückt die events nicht das schreiben des Readings.

und wenn Otto jetzt auch noch ein Komma an die richtige Stelle gesetzt hätte, wäre sein Text erheblich einfacher zu verstehen  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

Zitat von: betateilchen am 13 Dezember 2022, 11:37:23
und wenn Otto jetzt auch noch ein Komma an die richtige Stelle gesetzt hätte, wäre sein Text erheblich einfacher zu verstehen  8)
Meine große Schwäche  ;D
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

Rampler

Zitat von: Otto123 am 13 Dezember 2022, 11:29:40
Hallo Klaus,

event-on-change-reading unterdrückt die events, nicht das schreiben des Readings.

Gruß Otto

Hi Otto,
ja sorry, war etwas schwammig beschrieben...
Das Reading Warmwassertemperatur wird immer verändert, das will und kann ich auch nicht unterbinden.
Jedoch möchte ich den einen Event "Warmwassertemperatur" unterdrücken. Alle anderen Readings sollen Events erzeugen, deswegen, ".*" am Schluss.

Gruß Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Wernieman

Sorry aber ich verstehe Dich nicht ..

ZitatDas Reading Warmwassertemperatur wird immer verändert, das will und kann ich auch nicht unterbinden.
Jedoch möchte ich den einen Event "Warmwassertemperatur" unterdrücken

Willst Du jetzt Warmwassertemperatur haben (erster Satz) oder nicht (zweiter Satz)?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Rampler

Zitat von: Wernieman am 13 Dezember 2022, 11:57:53
Sorry aber ich verstehe Dich nicht ..
Willst Du jetzt Warmwassertemperatur haben (erster Satz) oder nicht (zweiter Satz)?

So, wie Otto bereits geschrieben hat, die  Readingsaktualisierung kann nicht verhindert werden.
Mit dem event-on-change-reading  wird bestimmt ob man für bestimmte Readings auch Events bei Veränderung erzeugen will.
Von daher möchte ich das Event unterdrücken..
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Beta-User

#8
...ist es denn sooooo schwer?

Aussentemperatur:0.2,(?!Warmwassertemperatur).*

EDIT: Langform...

event-on-change-reading ist eine POSITIVLISTE, nur was dort gelistet wird, erzeugt überhaupt noch Events (es sei denn, man nimmt ergänzend (!) event-on-update-reading" zu Hilfe). ".*" bedeutet: Alles, aber nur bei Veränderung, die andere Fassung ist dann "alles, außer xy".
Und es wird der Reihe nach abgearbeitet, also die erste Angabe mit dem Threshold nur, wenn dieser überschritten ist (oder die max-Zeit überschritten wird, falls angegeben).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Rampler

Wie gesagt im Wiki steht:
Falls ein Reading namens "unwanted" KEINE Events erzeugen soll, lässt sich das mit
    attr <device> event-on-change-reading (?!unwanted).*
unterdrücken


Deshalb meine Frage ...
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Beta-User

JA. ABER: ohne das Komma! Siehe die konkrete Fassung vom letzten Post. Sonst gibt es am Ende der Liste IMMER einen match, nämlich ".*"...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Rampler

So, jetzt habe ich es endlich auch gecheckt..
Danke nochmal !!
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

bartman121

Zitat von: Beta-User am 13 Dezember 2022, 12:09:15
...ist es denn sooooo schwer?

Aussentemperatur:0.2,(?!Warmwassertemperatur).*

EDIT: Langform...

event-on-change-reading ist eine POSITIVLISTE, nur was dort gelistet wird, erzeugt überhaupt noch Events (es sei denn, man nimmt ergänzend (!) event-on-update-reading" zu Hilfe). ".*" bedeutet: Alles, aber nur bei Veränderung, die andere Fassung ist dann "alles, außer xy".
Und es wird der Reihe nach abgearbeitet, also die erste Angabe mit dem Threshold nur, wenn dieser überschritten ist (oder die max-Zeit überschritten wird, falls angegeben).

Naja, eine Positivliste besagt doch nur, dass alles herangezogen wird, was auf den Regexp-matched ....

Wann zum Beispiel im Fall vom unifi-controller unmengen an Readings hat, deren Name sich unterscheidet, aber manche readings (bestimmte Suffixe) nicht will, dann geht auch sowas:
.*^((?!last_seen|uptime|snr|lastUpdate|utilization).)*$

Beta-User

Zitat von: bartman121 am 13 Dezember 2022, 15:34:06
Naja, eine Positivliste besagt doch nur, dass alles herangezogen wird, was auf den Regexp-matched ....
...oder eben auch, dass alles nicht herangezogen wird, was nicht matcht. Und genau das ist der Sinn der Negativ-regexp. Dass man diese erweitern kann, versteht sich eigentlich von selbst, aber da so viele daran scheitern, ist das Beispiel m.E. vielleicht hilfreich.

Würde aber über die Syntax nochmal nachdenken...
Zitat
.*^((?!last_seen|uptime|snr|lastUpdate|utilization).)*$
Wo ist der funktionale Unterschied zu dem hier:
^(?!last_seen|uptime|snr|lastUpdate|utilization).*$
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

bartman121

#14
nunja, merkste selbst?

bei meinem Beispiel kann die ausgeschlossene Zeichenkette irgendwo im String stehen, bei deinem Beispiel nur am Anfang.

Es geht bei mir um den Suffix an einem Reading-Namen....
  2022-12-13 17:23:49   6300a13c46e0fb0018e86735 connected
     2022-12-13 17:23:49   6300a13c46e0fb0018e86735_accesspoint AP-FLUR
     2022-12-13 17:23:49   6300a13c46e0fb0018e86735_essid not_used_24
     2022-12-13 17:23:49   6300a13c46e0fb0018e86735_hostname 192.168.2.63
     2022-12-13 17:23:49   6300a13c46e0fb0018e86735_last_seen 2022-12-13 17:23:49
     2022-12-13 17:23:49   6300a13c46e0fb0018e86735_snr 54
     2022-12-13 17:23:49   6300a13c46e0fb0018e86735_uptime 655072
     2022-12-13 17:23:49   6300a48c46e0fb0018e86800 connected
     2022-12-13 17:23:49   6300a48c46e0fb0018e86800_accesspoint AP-FLUR
     2022-12-13 17:23:49   6300a48c46e0fb0018e86800_essid not_used_24
     2022-12-13 17:23:49   6300a48c46e0fb0018e86800_hostname 192.168.2.8
     2022-12-13 17:23:49   6300a48c46e0fb0018e86800_last_seen 2022-12-13 17:23:49
     2022-12-13 17:23:49   6300a48c46e0fb0018e86800_snr 29
     2022-12-13 17:23:49   6300a48c46e0fb0018e86800_uptime 1484548
     2022-12-13 17:23:49   6300aac846e0fb0018e869de disconnected
     2022-12-13 17:23:49   6300aac846e0fb0018e869de_accesspoint unknown
     2022-12-13 17:23:49   6300aac846e0fb0018e869de_essid UNDEFINED
     2022-12-13 17:23:49   6300aac846e0fb0018e869de_hostname Unknown
     2022-12-13 17:23:49   6300aac846e0fb0018e869de_last_seen 2022-10-17 19:29:29
     2022-10-18 04:56:35   6300aac846e0fb0018e869de_snr 37
     2022-10-18 04:56:35   6300aac846e0fb0018e869de_uptime 46767
     2022-12-13 17:23:49   6300bfb646e0fb0018e881e0 disconnected
     2022-12-13 17:23:49   6300bfb646e0fb0018e881e0_accesspoint unknown
     2022-12-13 17:23:49   6300bfb646e0fb0018e881e0_essid UNDEFINED
     2022-12-13 17:23:49   6300bfb646e0fb0018e881e0_hostname Unknown
     2022-12-13 17:23:49   6300bfb646e0fb0018e881e0_last_seen 2022-12-12 22:51:38
     2022-12-13 05:33:04   6300bfb646e0fb0018e881e0_snr 57
     2022-12-13 05:33:04   6300bfb646e0fb0018e881e0_uptime 21
     2022-12-13 17:23:49   6300c00046e0fb0018e8827b disconnected
     2022-12-13 17:23:49   6300c00046e0fb0018e8827b_accesspoint AP-FLUR
     2022-12-13 17:23:49   6300c00046e0fb0018e8827b_essid not_used_24
     2022-12-13 17:23:49   6300c00046e0fb0018e8827b_hostname 192.168.2.82
     2022-12-13 17:23:49   6300c00046e0fb0018e8827b_last_seen 2022-12-13 15:03:00
     2022-12-13 17:23:49   6300c00046e0fb0018e8827b_snr 39
     2022-12-13 17:23:49   6300c00046e0fb0018e8827b_uptime 10
     2022-12-13 17:23:49   6300c03f46e0fb0018e8833b disconnected
     2022-12-13 17:23:49   6300c03f46e0fb0018e8833b_accesspoint AP-FLUR
     2022-12-13 17:23:49   6300c03f46e0fb0018e8833b_essid not_used_24
     2022-12-13 17:23:49   6300c03f46e0fb0018e8833b_hostname 192.168.2.76
     2022-12-13 17:23:49   6300c03f46e0fb0018e8833b_last_seen 2022-12-13 05:59:02
     2022-12-13 17:23:49   6300c03f46e0fb0018e8833b_snr 37
     2022-12-13 17:23:49   6300c03f46e0fb0018e8833b_uptime 13
     2022-12-13 17:23:49   6300c06a46e0fb0018e88470 disconnected
     2022-12-13 17:23:49   6300c06a46e0fb0018e88470_accesspoint unknown
     2022-12-13 17:23:49   6300c06a46e0fb0018e88470_essid UNDEFINED
     2022-12-13 17:23:49   6300c06a46e0fb0018e88470_hostname Unknown
     2022-12-13 17:23:49   6300c06a46e0fb0018e88470_last_seen 2022-12-13 01:19:07
     2022-12-13 05:33:04   6300c06a46e0fb0018e88470_snr 41
     2022-12-13 05:33:04   6300c06a46e0fb0018e88470_uptime 30


Es geht auch nicht darum, dass ich es besser kann als du, ich habs nämlich zusammengeklaut und ein bisschen probiert. Ihr könnt das definitiv besser