MQTT2_DEVICE endlos Fehler im Log

Begonnen von Der_Tom, 26 März 2022, 11:50:28

Vorheriges Thema - Nächstes Thema

Der_Tom

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

rudolfkoenig

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.

Der_Tom

#2
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

Der_Tom

#3
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

Der_Tom

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

rudolfkoenig

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.