Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Division by zero

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

    [wiregate] - √ - Division by zero

    Hallo zusammen!

    Ich erhalte seit einigen Tagen in einem Plugin regelmäßig folgenden Fehler:
    [WARNUNG]2012-10-29 20:59:04.607,FBH_PI_Essz_FussbodenT,,0s,Illegal division by zero at /usr/share/perl5/Math/Round.pm line 112.[/WARNUNG]

    Der Witz an der Sache: Ich verwende round gar nicht.
    Beim Plugin handelt es sich um einen leicht modifizierten PI-Regler von Makki.

    (Bewußt) geändert habe ich eigentlich auch nichts und der Regler ist seit 2 Monaten fehlerlos gelaufen.

    Danke für eure Ideen
    Robert

    #2
    Tja, dann wirst du wohl im Plugin FBH_PI_Essz_FussbodenT nach einer Division o.ä. suchen müssen...
    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


      #3
      Habs grad gefunden!
      Code:
        my $dT1 = nearest(.0[B][COLOR=Red]0[/COLOR][/B],$dT);
      Hatte die Anzahl der Nachkommastellen reduziert und nearest(.00, $x) mag perl nicht so recht.
      lg Robert

      Kommentar


        #4
        nearest ist ein kindchen von Math::Round, insofern logisch und der Mathematiker wie der Rechner teilt halt nicht so gern durch 0

        Nachdem die Plugins als eval gemacht sind, passiert da aber nichts dramatisches, vermeiden sollte man es trotzdem weil das Plugin dann nicht läuft..

        Makki
        EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
        -> Bitte KEINE PNs!

        Kommentar


          #5
          Zitat von makki Beitrag anzeigen
          Nachdem die Plugins als eval gemacht sind, passiert da aber nichts dramatisches, vermeiden sollte man es trotzdem weil das Plugin dann nicht läuft..
          Kl. Nachtrag: Das Plugin hat seine Job weiterhin gut gemacht.
          Das nearest(.00,xx) stand ganz am Ende vor dem return (um das Log übersichtich zu halten runde ich die Werte vorher), und bis dorthin waren alle knx_write schon erledigt.

          Ich hatte auch das Gefühl, dasss normalerweise ein Plugin mit error: div by zero solange nicht mehr aufgerufen wird, bis es zumindest erneut gespeichert wurde. In diesem Fall aber nicht so, und so ist der Boden schön warm geblieben.

          Danke und lg
          Robert

          Kommentar


            #6
            Nee die Plugins werden stur aufgerufen - ob mit oder ohne (Laufzeit!-)Fehler - und laufen (interpretiert) genau bis zu der Zeile wo's knatscht..

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #7
              Hallo
              Ein eval davor verhindert Division by zero.
              eval { $answer = $a / $b; };
              Gruß NetFritz
              KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
              WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
              PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

              Kommentar

              Lädt...
              X