Hallo und guten Abend,
Ich habe versucht, die Fülle der Messages im Reading RETAINED mit Hilfe des Attributes ignoreRegexp zu begrenzen.
ZitatignoreRegexp
if $topic:$message matches ignoreRegexp, then it will be silently ignored. For general purpose servers, it is a good idea to set it e.g. to
homeassistant/[^:"]+/config|tasmota/discovery/[^/:]+/(config|sensors)
and also include the topics used to send commands towards your MQTT clients.
Das hat bei mir zunächst überhaupt nicht geklappt. Ich bin unsicher, aber ich vermute, das hat zwei Ursachen:
1. Die Slashes "/" müssen maskiert werden?! *wegduck*
2. "$topic:$message" hat immer einen Doppelpunkt und wird von dem Beispiel-Regex nicht gematched.
In der MQTT2_SERVER.pm findet sich folgender Ausdruck:
Zitatmy $ir = AttrVal($serverName, "ignoreRegexp", undef);
return if(defined($ir) && "$tp:$val" =~ m/$ir/);
Ich vermute nach etwas Testen, der Ausdruck =~ m/$ir/ wird nur dann wahr, wenn die ganze Zeile zutrifft?
EDIT: Nein, eigentlich sollte das nicht notwendig sein, das folgende Appendum :.* an die regular expression sollte als obsolet sein. Sorry...
Mein Vorschlag - falls ich mich nicht irre (möglich) UND das hier überhaupt der richtige Ort für solche Vorschläge ist - wäre daher:
ZitatignoreRegexp
if $topic:$message matches ignoreRegexp, then it will be silently ignored. For general purpose servers, it is a good idea to set it e.g. to
homeassistant\/[^:"]+\/config:.*|tasmota\/discovery\/[^\/:]+\/(config|sensors):.*
and also include the topics used to send commands towards your MQTT clients.
Falls ich ganz daneben liegen sollte oder der Vorschlag unangemessen ist, haut mich ruhig. Aber ich dachte, ich traue mich jetzt einfach mal :-)
Viele Grüße (und sorry, falls ich falsch liege und Eure Zeit verschwendet habe),
Martin