Ankündigung

Einklappen
Keine Ankündigung bisher.

Warnungen in Plugin-Log

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Warnungen in Plugin-Log

    Hallo zusammen!

    Es gab ja schon eine längere Diskussion über die vielen Warnungen seit PL 1.2.6 und der Abhilfe in der kommenden PL 1.2.7.

    Ich würde aber die Warning gerne durch sauber Programmieren lösen. Leider gibt es da ein paar Stellen, wo ich nicht klar komme:

    Code:
    if ($plugin_info{$plugname."_$element->{name}_dim"} > 0)
     Warning: Argument "" isn't numeric in numeric gt (>) at (eval 43983) line 84
    oder
    Code:
    $Licht_Leistung_aktuell +=  $plugin_info{$plugname."_$element->{name}_status"} * $element->{power} * $plugin_info{$plugname."_$element->{name}_dim"}/100;
     Warning: Argument "" isn't numeric in multiplication (*) at (eval 43983) line 96
    Gibt es da eine einfache Möglichkeit oder muss ich hier über eine extra Variable zwischenspeichern?

    Danke
    Robert
    Zuletzt geändert von Robert_Mini; 21.02.2016, 22:04.

    #2
    Hallo Robert

    Bei mir habe ich das Problem gelöst, indem ich bei der Zuweisung an eine Variable, die einen numerischen Wert aufweisen soll, "+0" hinzufüge. Das hat die Warnungen beseitigt. Hier ein Beispiel:
    Code:
        $sperre_wert = $plugin_info{$plugname.'_sperre_wert'}+0;
    Beste Grüsse
    Diego

    Kommentar


      #3
      Danke für den Hinweis.
      Hab jetzt mehr als eine Stunde herumprobiert, aber ohne Erfolg.
      +0 hat an keiner Stelle geholfen, auch zwischenspeichern in eine lokale Variable nicht, was mich sehr verwundert hat.

      Ich habs jetzt aufgegeben. Lösungen sind ja hier gut zusammengefasst:
      https://knx-user-forum.de/forum/supp...s-warnungen-co

      Wobei eins ist mir unklar: PL 1.2.7 => wo gibt's den? 1.2.8. wird als beta genannt, aber bei mir kommt kein Hinweis auf 1.2.7, wenn ich auf update klicke.

      lg
      Robert

      Kommentar


        #4
        Wobei diese beiden Meldungen mir etwas suspekt sind:
        Code:
         
         2016-02-21 21:29:44.210,Datenerfassung_5_Pool,Warning: Argument "00 00" isn't numeric in int at /usr/sbin/wiregated.pl line 978. 2016-02-21 21:29:44.276,Datenerfassung_5_Pool,Warning: Illegal hexadecimal digit ' ' ignored at /usr/sbin/wiregated.pl line 860.
        Im Plugin steht nichts außergewöhnliches:
        Code:
        ... ga Definitionen ...
        
        $plugin_info{$plugname.'_cycle'} = $wg_config{''}{'rrd_interval'};
        
        ## ------- Pool Daten ------ ##
        my $Pool_3Wegeventil = knx_read($Pool_3Wegeventil_ga,86400,5);
        my $Pool_Solar3Wegeventil = knx_read($Pool_Solar_3Wegeventil_ga,86400,5);
        if ($Pool_3Wegeventil > 0) {$Pool_3Wegeventil = 0.98;}
        if ($Pool_Solar3Wegeventil > 0) {$Pool_Solar3Wegeventil =0.94;}
        
        
        update_rrd("Pool_Pumpe_Status","",knx_read($Pool_Pumpe_Status_ga,86400,1));
        update_rrd("Pool_Pumpe_Drehzahl","",knx_read($Pool_Pumpe_Drehzahl_ga,86400,5));
        update_rrd("Pool_Pumpe_LaufzeitTag","",knx_read($Pool_Pumpe_LaufzeitTag_ga,86400,1));
        
        update_rrd("Pool_3Wegeventil","",$Pool_3Wegeventil);
        update_rrd("Pool_Solar_Umwaelzpumpe","",0.96*knx_read($Pool_Solar_Umwaelzpumpe_ga,86400,1));
        
        update_rrd("Pool_FBH_Umwaelzpumpe","",(0.12+knx_read($Pool_FBH_Umwaelzpumpe_ga,86400,1)*0.76));
        update_rrd("Pool_FBH_Umwaelzpumpe_LaufzeitTag","",knx_read($Pool_FBH_Umwaelzpumpe_LaufzeitTag_ga,86400,9));
        
        update_rrd("Pool_Solar_3Wegeventil","",$Pool_Solar3Wegeventil);

        Kommentar


          #5
          Das hatte ich auch mal. Weiß nicht mehr ganz genau, was das war. Könnte es sein, dass der DPT hier nicht passt? (Insb. die Zahl der Bytes)
          TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

          Kommentar


            #6
            Danke Chris, das war's!!
            1x DPT1 statt 9 und 1x DTP5 statt 9.

            lg
            Robert

            Kommentar


              #7
              Zitat von Robert_Mini Beitrag anzeigen
              Wobei diese beiden Meldungen mir etwas suspekt sind:
              Code:
              2016-02-21 21:29:44.210,Datenerfassung_5_Pool,Warning: Argument "00 00" isn't numeric in int at /usr/sbin/wiregated.pl line 978. 2016-02-21 21:29:44.276,Datenerfassung_5_Pool,Warning: Illegal hexadecimal digit ' ' ignored at /usr/sbin/wiregated.pl line 860.
              Die Meldung sehe ich bei mir auch öfters:
              Code:
               
               Illegal hexadecimal digit ' ' ignored at /usr/sbin/wiregated.pl line 860.
              Die Frage ist: wie kann ich herausfinden um welche GA es sich handelt?

              Danke,
              Micha

              Kommentar


                #8
                Bei mir war es ein knx_read mit falscher DPT.

                Würde in dem betroffenen Plugin einfach alle knx_reads nacheinander auskommentieren bis die Meldung weg ist.
                In meinem Fall hab ich die Fehler anhand der GA-Namen bereits erkannt, da Temp <> dpt5 und status nicht dpt9.

                Lg
                Robert

                Kommentar


                  #9
                  Hat jemand eine Idee zu dieser Warnung:
                  Code:
                   
                   2016-02-24 09:02:06.182,wunderground,Warning: Argument "\x{38}\x{33}..." isn't numeric in numeric lt (<) at /usr/sbin/wiregated.pl line 832.
                  lg
                  Robert

                  Kommentar


                    #10
                    Du hast eine Zahl in einem String und willst den nun als Zahl vergleichen, vermute ich.
                    -> String nach Zahl wandeln, dann vergleichen
                    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                    Kommentar


                      #11
                      Wie lassen sich diese Warnings beseitigen?
                      Code:
                       
                       Warning: "my" variable $debug masks earlier declaration in same scope at
                      Hier wird zwar die Problematik erklärt, aber wie kann eine Lösung aussehen?
                      "debug" wird im o.g. Beispiel mehrfach benutzt um mpd/mpc fernzusteuern

                      Code:
                          my $debug = `MPD_PORT=$Port MPD_IP=$IP mpc clear`;
                          my $debug = `MPD_PORT=$Port MPD_IP=$IP mpc load $element->{name}`;
                          my $debug = `MPD_PORT=$Port MPD_IP=$IP mpc play`;

                      Gruß -mfd-
                      KNX-UF-IconSet since 2011

                      Kommentar


                        #12
                        Lass mal bei den hinteren das "my" weg.
                        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                        Kommentar


                          #13
                          Bei letzteren nur weglassen hat nicht ganz gereicht, da debug noch an mehreren Stellen vorkommt.
                          Code:
                          Global symbol "$debug" requires explicit package name at...
                          Aber am Anfang ordentlich deklariert brachte schließlich die Lösung.
                          Gruß -mfd-
                          KNX-UF-IconSet since 2011

                          Kommentar

                          Lädt...
                          X