guten morgen zusammen,
bei mir wird das Log mit Warnungen überflutet. Leider kann ich nicht sagen seit wann dieses so it.
...
2022.03.26 11:28:46 0: RE: tele/DVES_2F585B/INFO.:.*
2022.03.26 11:28:46 0: RE: tele/tasmota_8E4AC0/INFO.:.*
2022.03.26 11:28:46 0: RE: mqttjs_b9daee77:conbee2mqtt/bridge/logging:.*
2022.03.26 11:28:46 0: RE: conbee2mqtt/bridge/logging:.*
2022.03.26 11:28:46 0: RE: tele/Obi_3/INFO.:.*
2022.03.26 11:28:46 0: RE: conbee2mqtt/bridge/log:.*\"type\".\"devices\".\"message\".*
2022.03.26 11:28:46 0: RE: tele/tasmota_0E49AE/INFO.:.*
2022.03.26 11:28:46 0: RE: tele/Obi_1/INFO.:.*
2022.03.26 11:28:46 0: RE: .* { json2nameValue($EVENT,'',$JSONMAP) }:.*
2022.03.26 11:28:46 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/^.* { <-- HERE json2nameValue(.*,'',.*) }:.*$/ at ./FHEM/10_MQTT2_DEVICE.pm line 176.
2022.03.26 11:28:46 1: stacktrace:
2022.03.26 11:28:46 1: main::__ANON__ called by ./FHEM/10_MQTT2_DEVICE.pm (176)
2022.03.26 11:28:46 1: main::MQTT2_DEVICE_Parse called by fhem.pl (4127)
2022.03.26 11:28:46 1: main::Dispatch called by ./FHEM/00_MQTT2_SERVER.pm (563)
2022.03.26 11:28:46 1: main::MQTT2_SERVER_doPublish called by ./FHEM/00_MQTT2_SERVER.pm (443)
2022.03.26 11:28:46 1: main::MQTT2_SERVER_Read called by ./FHEM/00_MQTT2_SERVER.pm (513)
2022.03.26 11:28:46 1: main::__ANON__ called by fhem.pl (3458)
2022.03.26 11:28:46 1: main::HandleTimeout called by fhem.pl (702)
2022.03.26 11:28:46 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/^.* { <-- HERE json2nameValue(.*,'',.*) }:.*$/ at ./FHEM/10_MQTT2_DEVICE.pm line 176.
2022.03.26 11:28:46 1: stacktrace:
2022.03.26 11:28:46 1: main::__ANON__ called by ./FHEM/10_MQTT2_DEVICE.pm (176)
2022.03.26 11:28:46 1: main::MQTT2_DEVICE_Parse called by fhem.pl (4127)
2022.03.26 11:28:46 1: main::Dispatch called by ./FHEM/00_MQTT2_SERVER.pm (563)
2022.03.26 11:28:46 1: main::MQTT2_SERVER_doPublish called by ./FHEM/00_MQTT2_SERVER.pm (443)
2022.03.26 11:28:46 1: main::MQTT2_SERVER_Read called by ./FHEM/00_MQTT2_SERVER.pm (513)
2022.03.26 11:28:46 1: main::__ANON__ called by fhem.pl (3458)
2022.03.26 11:28:46 1: main::HandleTimeout called by fhem.pl (702)
2022.03.26 11:28:46 0: RE: tele/DVES_10A401/INFO.:.*
2022.03.26 11:28:46 0: RE: tele/tasmota_9AFBC1/INFO.:.*
2022.03.26 11:28:46 0: RE: tele/DVES_79D59A/INFO.:.*
2022.03.26 11:28:46 0: RE: tele/DVES_2BDDDA/INFO.:.*
...
diese Logausgabe habe ich mal eingefügt, um zu sehen , woher es überhaupt kommt:
2022.03.26 11:28:46 0: RE: tele/Obi_1/INFO.:.*
2022.03.26 11:28:46 0: RE: .* { json2nameValue($EVENT,'',$JSONMAP) }:.*
hieir entsprechende Zeilen aus dem modul:
for my $step (1,2,3,4) {
my $dp = MQTT2_DEVICE_getRegexpHash($step, $cid, $topic);
next if(!$dp);
foreach my $re (keys %{$dp}) {
my $reAll = $re;
$reAll =~ s/\$[a-z0-9_]+/\.\*/gi;
Log3 "test", 0, "RE: $re " ;
next if(!("$topic:$value" =~ m/^$reAll$/s ||
"$cid:$topic:$value" =~ m/^$reAll$/s));
kann sich hierauf jemand einen Reim machen und mir ggf. bei der Problemsuche helfen ?
gruss Thomas
Vermutung: entweder devicetopic oder readingList entspricht nicht dem, was ich erwarte.
Kannst Du bitte die "Raw definition" Ausgabe aller MQTT2_DEVICEs zeigen? Vmtl. ist das Problemkind eines mit einem devicetopic.
Wenn es nicht oeffentlich sein soll, dann bitte per PM.
Die zusaetzliche Zeile einzufuegen war vermutlich gute Absicht, erschwert mir jedoch das Finden der Problemzeile: entweder kann ich nicht addieren, der gezeigte Codestueck gehoert nicht zum Log, oder ich verstehe perl nicht.
ok, anbei nochmal ein LogAuszug ohne die eingebaute Log Ausgabe , also Originalmodul (direkt nach Fhemstart):
2022.03.26 12:46:52 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/^.* { <-- HERE json2nameValue(.*,'',.*) }:.*$/ at ./FHEM/10_MQTT2_DEVICE.pm line 169.
2022.03.26 12:46:52 1: stacktrace:
2022.03.26 12:46:52 1: main::__ANON__ called by ./FHEM/10_MQTT2_DEVICE.pm (169)
2022.03.26 12:46:52 1: main::MQTT2_DEVICE_Parse called by fhem.pl (4127)
2022.03.26 12:46:52 1: main::Dispatch called by ./FHEM/00_MQTT2_SERVER.pm (563)
2022.03.26 12:46:52 1: main::MQTT2_SERVER_doPublish called by ./FHEM/00_MQTT2_SERVER.pm (443)
2022.03.26 12:46:52 1: main::MQTT2_SERVER_Read called by ./FHEM/00_MQTT2_SERVER.pm (513)
2022.03.26 12:46:52 1: main::__ANON__ called by fhem.pl (3458)
2022.03.26 12:46:52 1: main::HandleTimeout called by fhem.pl (702)
2022.03.26 12:46:52 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/^.* { <-- HERE json2nameValue(.*,'',.*) }:.*$/ at ./FHEM/10_MQTT2_DEVICE.pm line 169.
2022.03.26 12:46:52 1: stacktrace:
2022.03.26 12:46:52 1: main::__ANON__ called by ./FHEM/10_MQTT2_DEVICE.pm (169)
2022.03.26 12:46:52 1: main::MQTT2_DEVICE_Parse called by fhem.pl (4127)
2022.03.26 12:46:52 1: main::Dispatch called by ./FHEM/00_MQTT2_SERVER.pm (563)
2022.03.26 12:46:52 1: main::MQTT2_SERVER_doPublish called by ./FHEM/00_MQTT2_SERVER.pm (443)
2022.03.26 12:46:52 1: main::MQTT2_SERVER_Read called by ./FHEM/00_MQTT2_SERVER.pm (513)
2022.03.26 12:46:52 1: main::__ANON__ called by fhem.pl (3458)
2022.03.26 12:46:52 1: main::HandleTimeout called by fhem.pl (702)
2022.03.26 12:46:52 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/^.* { <-- HERE json2nameValue(.*,'',.*) }:.*$/ at ./FHEM/10_MQTT2_DEVICE.pm line 169.
2022.03.26 12:46:52 1: stacktrace:
Die Rawdefinitionen sind leider schon einige :
edit - gelöscht wegen Forumsfehler
die liste mit den rawdefinitionen verursacht leider einen Fehler in der Forumsdarstellung .
PM kann ich dir nicht schicken .
gruss Thomas
edit: habe sie nun als Anhang beigefügt
da ich davon ausgehe, das es sich nicht um ein allgemeines ( sondern um ein spezifischen ) problem handelt und ich dieses für mich behoben habe kann es wohl vernachlässigt werden.
danke und gruss thomas
Die readingList Regexp Pruefung wurde bis eben vor dem Ersetzen mit devicetopic durchgefuehrt, das habe ich geaendert.
Weiterhin habe ich CheckRegexp in fhem.pl erweitert, damit dieser Fehler abgefangen wird, komischerweise wird das im eval ignoriert.
Die angehaengte raw definition erzeugt damit solche Fehlermeldungen beim Startup:
Zitat2022.03.27 12:36:59 3: Bad regexp >.* { json2nameValue($EVENT,'',$JSONMAP) }:.*< in readingList attribute for MQTT2_zigbee_0x84fd27fffe6bdad6: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/^.* { <-- HERE json2nameValue($EVENT,'',$JSONMAP) }:.*$/ at fhem.pl line 6403, <$fh> line 1375.
Das ist zwar nicht perfekt (das Problem liegt im devicetopic, nicht im readingList), aber ein Schritt in die richtige Richtung.