FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Markus. am 03 April 2017, 21:22:02

Titel: Fehler im log seit letztem Update
Beitrag von: Markus. am 03 April 2017, 21:22:02
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
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: dev0 am 04 April 2017, 07:39:01
Du scheinst eine kaputte/unsinnige regexp zu verwenden, die mit * beginnt.
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: Markus. am 04 April 2017, 07:44:18
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
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: dev0 am 04 April 2017, 08:24:00
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
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: enno am 04 April 2017, 09:02:52
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
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: Thorsten Pferdekaemper am 04 April 2017, 09:49:55
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
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: enno am 04 April 2017, 11:33:59
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 );
}
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: Thorsten Pferdekaemper am 04 April 2017, 11:40:13
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
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: enno am 04 April 2017, 13:43:17
Die letzte Änderung war von Loredo. Da ich nicht verschieben kann, habe ich ihm mal eine Nachricht geschickt.

Gruss
Enno
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: Loredo am 04 April 2017, 16:05:09
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.
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: Markus. am 04 April 2017, 17:02:00
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
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: enno am 04 April 2017, 20:08:17
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 :)
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: Markus. am 05 April 2017, 06:14:33
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
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: Loredo am 05 April 2017, 08:11:19
Updates ab 7:46


Gruß

Julian
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: Markus. am 05 April 2017, 10:56:38
Suupi geht wieder...

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

Gruß

Markus
Titel: Antw:Fehler im log seit letztem Update
Beitrag von: Loredo am 05 April 2017, 10:59:53
Wenn diese Funktion nicht vorhanden ist, wäre das ein Feature Request für das DbLog Modul.