Fehler im log seit letztem Update

Begonnen von Markus., 03 April 2017, 21:22:02

Vorheriges Thema - Nächstes Thema

Markus.

Hallo zusmmen,

Seit dem letzten update was ich durchgeführt habe, sind im Log jede Menge Fehlermeldungen die mir leider nicht viel sagen.


Use of uninitialized value $value in concatenation (.) or string at FHEM/Unit.pm line 4394.

Dasa ganze log ist voll davon und zwischen drinn kommt ein paar mal folgfemder Eintrag


^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE .$/ at ./FHEM/93_DbLog.pm line 1058


Hoffe irgendeiner hat eine Idee wie ich das behiben bekomme....

Gruß

Markus

dev0

Du scheinst eine kaputte/unsinnige regexp zu verwenden, die mit * beginnt.

Markus.

#2
Okay, aber das hatte ich vor dem Update nicht....
Wurde da irgendwas geändert in den Modulen Unit oder DBlog?
Und wie kann ich rausfinden welche das/ wo ist?
Kann es eventuell and den DBLogExclude Attributen liegen? Da hab ich irgen´dwie durcheinander in ein paar devices.
Manchmal habe ich DbLogExclude .* und dann habe ich drei devices gefunden die haben DbLogExclude *.


Gruß

Markus

dev0

Zitat von: Markus. am 04 April 2017, 07:44:18
Wurde da irgendwas geändert in den Modulen Unit oder DBlog?
Schau selbst nach: https://forum.fhem.de/index.php/board,57.0.html

Zitat
Und wie kann ich rausfinden welche das/ wo ist?
zB. mit grep nach "*" in Deiner .cfg suchen und ggf. noch weiter filtern...

Zitat
DbLogExclude *.
Kaputt/unsinnnig

enno

Bei mir wird seit dem Update am 04.03. das Log immer mit der gleichen Zeile vollgemüllt:

Use of uninitialized value $value in concatenation (.) or string at FHEM/Unit.pm line 4394.

Weiter nichts. Leider finde ich bis her auch keinen Ansatz den Fehler einzugrenzen.

Die letzte Änderung in Unit.pm war im Januar. Daran liegt es vermutlich eher nicht.

https://forum.fhem.de/index.php/topic,66009.msg572643.html#msg572643

Kann mir einer der Profis noch einen Tip geben wo ich suchen muss?

Gruss
Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

Thorsten Pferdekaemper

Zitat von: enno am 04 April 2017, 09:02:52
Kann mir einer der Profis noch einen Tip geben wo ich suchen muss?
Ja, in FHEM/Unit.pm Zeile 4394...
Im Ernst: Kannst Du mal diese Zeile und 20 Zeilen vorher und nachher hier reinstellen? Das würde es einfacher machen.
Gruß,
   Thorsten
FUIP

enno

Zeile 4394 ist:
    unless ( defined($value) && looks_like_number($value) ) {

und hier etwas mehr drum herum:

################################################################
# Generalized function for DbLog rtype support
sub Unit_DbLog_split($$) {
    my ( $event, $name ) = @_;
    my ( $reading, $value, $unit ) = "";
    # exclude any multi-value events
    if ( $event =~ /(.*: +.*: +.*)+/ ) {
        Log3 $name, 5,
          "Unit_DbLog_split $name: Ignoring multi-value event $event";
        return undef;
    }
    # exclude sum/cum and avg events
    elsif ( $event =~ /^.*(min|max|avg|sum|cum|avg\d+m|sum\d+m|cum\d+m): +.*/ )
    {
        Log3 $name, 5, "Unit_DbLog_split $name: Ignoring sum/avg event $event";
        return undef;
    }
    # automatic text conversions through reading type
    elsif ( $event =~ /^(.+): +(\S+) *(.*)/ ) {
        $reading = $1;
        my ( $txt, $txt_long, $val, $val_num, $symbol ) =
          formatReading( $name, $reading, "" );
        if ( defined($txt) && defined($reading) && defined($val) ) {
            $txt =~ s/[\s\u202F\u00A0]*$val[\s\u202F\u00A0]*//;
            $value = $val;
            if ( !looks_like_number($val) && defined($val_num) ) {
                if ( ref($val_num) eq "ARRAY" ) {
                    $value = $val_num->[1];
                }
                else {
                    $value = $val_num;
                }
            }
            $unit = defined($symbol) ? $symbol : $txt;
        }
    }
    # general event handling
    if ( !defined($value)
        && $event =~
/^(.+): +[\D]*(\d+\.?\d*)[\s\u202F\u00A0]*[\[\{\(]?[\s\u202F\u00A0]*([\w\°\%\^\/\\]*).*/
        && defined($1)
        && defined($2) )
    {
        $reading = $1;
        $value   = ReadingsNum( $name, $1, $2 );
        $unit    = defined($3) ? $3 : "";
    }
    unless ( defined($value) && looks_like_number($value) ) {
        Unit_Log3( $name, $reading, undef, 10,
"Unit_DbLog_split $name: Ignoring event $event: value $value does not look like a number"
        );
        return undef;
    }
    Unit_Log3( $name, $reading, undef, 9,
"Unit_DbLog_split $name: Splitting event $event > reading=$reading value=$value unit=$unit"
    );
    return ( $reading, $value, $unit );
}
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

Thorsten Pferdekaemper

Hi,
da sehen mir ein paar Sachen komisch aus... Schau mal in der MAINTAINER.txt nach, wo das Unterforum für Unit.pm ist und verschiebe dahin.
Gruß,
   Thorsten
FUIP

enno

Die letzte Änderung war von Loredo. Da ich nicht verschieben kann, habe ich ihm mal eine Nachricht geschickt.

Gruss
Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

Loredo

Du scheinst Werte per DbLog loggen zu wollen, die keine Zahl sind (bzw. hast du solche Readings über DbLogInclude o.ä. mit reingenommen, z.B. weil du .* als Wert für das Attribut verwendest). Das ist aus Performance Gründen nicht unbedingt zu empfehlen und fällt nun zufälligerweise auf.


Ich habe einen Patch eingecheckt, der die Meldung zumindest unterdrückt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Markus.

Hallo Loredo,

ich habe folgendes reading bei einem device das mit DBlog geloggt wird


volt    24.7�C (Volt)


Für einen Plot werte ich es folgendermaßen aus


logdb:Temp_Aqua::::$val=~s/([\d.]*).*/$1/;


Kann es sein das die Meldung bei mir daher kommt?

Gruß

Markus

enno

Hallo Loredo,

Das scheint es bei mir gewesen zu sein.

Ich habe einen Homematic Bewegungsmelder mit DbLogInclude  auf ein nicht (mehr) definiertes Reading. Nachdem ich das gelöscht hatte war Ruhe.

Wieder etwas gelernt. Bedanke mich bei allen für die super schnelle Hilfe :)
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

Markus.

Und wie bekomme ich jetzt heraus wo der Fehler liegt? Habe kein Reading gefunden welches geloggt werden soll und nicht mehr vorhanden ist. Und wie bekommt man denn den Patch? Über update ist noch nichts vorhanden.

Gruß

Markus

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Markus.

Suupi geht wieder...

Aber wie bekomme ich den raus welches Reading da rum zickt??

Gruß

Markus