FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: Der_Tom am 26 März 2022, 11:50:28

Titel: MQTT2_DEVICE endlos Fehler im Log
Beitrag von: Der_Tom am 26 März 2022, 11:50:28
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
Titel: Antw:MQTT2_DEVICE endlos Fehler im Log
Beitrag von: rudolfkoenig am 26 März 2022, 12:39:40
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.
Titel: Antw:MQTT2_DEVICE endlos Fehler im Log
Beitrag von: Der_Tom am 26 März 2022, 12:54:17
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
Titel: Antw:MQTT2_DEVICE endlos Fehler im Log
Beitrag von: Der_Tom am 26 März 2022, 13:00:04
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
Titel: Antw:MQTT2_DEVICE endlos Fehler im Log
Beitrag von: Der_Tom am 26 März 2022, 14:32:00
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
Titel: Antw:MQTT2_DEVICE endlos Fehler im Log
Beitrag von: rudolfkoenig am 27 März 2022, 12:47:12
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.