Ankündigung

Einklappen
Keine Ankündigung bisher.

RRDTool und Gasverbrauch messen - Denkfehler?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    RRDTool und Gasverbrauch messen - Denkfehler?

    Hallo zusammen, ich hoffe einer kann mir helfen. Ich habe zu Hause inzwischen einige Komponenten so verbunden dass ich meinen Gasverbrauch loggen kann.

    Gedacht ist das ganze mit rrdtool zu machen aber irgendwas läuft da noch falsch.

    Ich lese jede Stunde den Wert des Gasverbrauchs aus und setze ihn auf Null zurück.

    dazu hab ich folgendes Skript in der crontab auf meiner Synology Platte liegen:

    in1=`snmpget -Oqv -v1 -c public 192.168.1.200 1.3.6.1.4.1.5040.1.2.4.1.3.1.3.1`
    echo $in1 > test.txt
    rrdtool update gas.rrd N:$in1

    Das update läuft stündlich und bekommt auch die richtigen Werte (Integer zwischen 0 und 100 ca.)

    das RRA habe ich wie folgt aufgebaut:

    rrdtool create gas.rrd
    -- start 1254344400
    -- step 3600
    DS:gasverbrauch:ABSOLUTE:7200:U:U

    RRA:AVERAGE:0.5:1:24

    RRA:AVERAGE:0.5:24:31

    RRA:AVERAGE:0.5:24:3650

    gedacht ist ein Archiv mit 24 Werten stündlich,
    das nächste mit 24 Averages für 31 Tage
    dann nochmal 24 Averages für 365 tage

    nun ja ... irgendwie geht auch alles. aber ein fetch nach dem ersten Tag sieht so aus:

    1254344400: 5.1041666667e-02
    1254348000: 0.0000000000e+00
    1254351600: 0.0000000000e+00
    1254355200: 0.0000000000e+00
    1254358800: 0.0000000000e+00
    1254362400: 0.0000000000e+00
    1254366000: 0.0000000000e+00
    1254369600: 2.2205615410e-03
    1254373200: 2.2227032103e-03
    1254376800: 1.1116401983e-03
    1254380400: 6.5060599358e-07
    1254384000: 0.0000000000e+00
    1254387600: 0.0000000000e+00
    1254391200: 0.0000000000e+00
    1254394800: 0.0000000000e+00
    1254398400: 0.0000000000e+00
    1254402000: 0.0000000000e+00
    1254405600: 0.0000000000e+00
    1254409200: 5.5522882977e-04
    1254412800: 1.1107876430e-03
    1254416400: nan

    was zum Henker sind die 1.1 mal zehn hoch -3 (also ist schon klar 0.0011 etc) aber wie kommt der an solche Werte? wenn ich jede Stunde eine ganze Zahl einlese (und dann den Zähler beim lesen resette) erwarte ich irgendwie Ganzzahlwerte ... oder? weil ein Average über eine Stunde mit einem Wert in der Stunde ist doch genau der Wert, oder?

    Wo ist mein Denkfehler?

    Wanni

    #2
    Zitat von wanni Beitrag anzeigen

    rrdtool create gas.rrd
    -- start 1254344400
    -- step 3600
    DS:gasverbrauch:ABSOLUTE:7200:U:U

    Wo ist mein Denkfehler?
    Ich glaube es ist so: rrdtool berechnet bei ABSOLUTE aus deinen Eingabewerten den Durchschnittsverbrauchswert pro Sekunde. Wenn du einen Fetch-Wert * 3600 rechnest, dann solltest du den Verbrauch der letzten Stunde bekommen.

    Möchtest du einfach zu jeder Stunde den Stundenverbrauch speichern, müsstest du GAUGE nehmen.

    Othmar
    EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

    Kommentar


      #3
      Hallo
      DS:gasverbrauch:ABSOLUTE:7200:U:U
      warum nicht so
      DS:gasverbrauch:ABSOLUTE:7200:0:100
      Gruß NetFritz

      Ich schaue die rrd_Datenbank immer so an.
      rrdtool dump [--no-header|-n] filename.rrd > filename.xml
      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


        #4
        @TRU:

        Die Idee hatte ich schon, aber die krummen Werte mal 3600 ergibt nicht annähernd was ganzzahliges ...

        und ABSOLUTE ist laut Beschreibung genau der richtige Paramter um Zähler zu speichern die beim lesen auf Null gesetzt werden ... mhhhh

        @NetFritz:

        Die Parameter die gelesen werden SIND ganzzahlig (das hab ich überprüft) beim update müssen die also "eigentlich" auch so übertragen werden. Das 0:100 ist quasi nur ne Sicherheitsabfrage die in meinem Fall aber keine Änderung bringt. Alle Werte SIND zwischen 0 und 100.

        Es muss (meiner Meinung nach) irgendwo bei der AVERAGE Berechnung in der RRA liegen ... irgendwo denk ich da falsch.

        Kommentar


          #5
          Zitat von wanni Beitrag anzeigen
          @TRU:

          Die Idee hatte ich schon, aber die krummen Werte mal 3600 ergibt nicht annähernd was ganzzahliges ...

          und ABSOLUTE ist laut Beschreibung genau der richtige Paramter um Zähler zu speichern die beim lesen auf Null gesetzt werden ... mhhhh
          Meiner Meinung nach liegst du hier beide Male nicht richtig:

          ABSOLUTE macht eigentlich das gleiche wie COUNTER oder DERIVE, mit dem Unterschied, dass COUNTER und DERIVE automatisch für jeden neuen Wert die Differenz zum letzten Wert berechnen während ABSOLUTE den Wert direkt als Differenz behandelt. Eben weil mit ABSOLUTE angenommen wird, dass durch das Lesen der Wert jeweils zurückgesetzt ist. Alle drei berechnen dann im RRD den Durchschnittswert pro Sekunde.

          Als Erklärung für das Fehlen der Ganzzahligkeit kann ich dir folgendes anbieten: RRD berechnet die Werte für vordefinierte Zeitpunkte, ist aber so intelligent, dass es keine Rolle spielt zu welchem Zeitpunkt die Werte geladen werden. Für die Berechnung werden die Werte interpoliert. Ich vermute, dass bei dir für die Berechnung der einzelnen Werte jeweils zwei oder drei Eingabewerte einbezogen werden. Hier bin ich nicht ganz sattelfest, aber wenn du den jeweiligen Fetch-Wert mit 3600 multiplizierst und in die Nähe der tatsächlich gemessenen Stundenwerte kommst, wäre das ganze doch ausreichend erklärt. Oder wenn du 24 dieser berechneten Stundenwerte zusammenzählst, müsste sich eigentlich der Tagesverbrauch ergeben. Das kannst du übrigens automatisch mit CDEFs beim Aufruf graph berechnen lassen.

          Othmar
          EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

          Kommentar

          Lädt...
          X