rrdtool ohne kommazahlen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • hi zusammen,

    hab ne Frage.
    Habe mehrere Sensoren über das airpi Projekt laufen.
    Dazu habe ich eine RRD Datenbank angelegt. Die Daten werden auch reingeschrieben.

    tempbmp tempdht press humi light no2 co vol smoke

    1451769248: 20 21 999 52 U U U U U

    Ich stelle mir aktuell die Frage, warum die Zahlen hinter dem Komma nicht eingetragen werden.
    Also Temperatur ist ja nicht genau 21 Grad, sondern 21,43453 Grad.

    Ist das normal?

    Danke

  • Hi, schwoof;
    Etwas wenig Info für den Anfang :s ;
    1. Woher kommen deine eingetragenen Werte? Benutzt Du die üblichen DS18... -1-Wire-Sensoren, die einen etwas komplizierten Auslesevorgang benötigen? Liefert diese Anwendung tatsächlich die Nachkommastellen?
    2. rrdtool arbeitet mit Punkt als Dezimalzeichen. Wenn hier eine Zahl mit Komma eingetragen wird, müsste rrdtool sich beschweren und "NaN" statt eines gerundeten Wertes ausgeben.

    rasray
    ...sorry, mal wieder ohne Brille vor'm Bildschirm gesessen und das "airpi" überlesen. Kenne Ich bis jetzt noch nicht, die Frage bleibt aber trotzdem, ob die dazugehörige Anwendung Nachkommastellen liefert.

    Einmal editiert, zuletzt von rasray (3. Januar 2016 um 11:31)

  • Hallole,

    habe mal gestöbert und in /outputs/rrd.py folgende Zeilen gefunden:

    Code
    if [i for i, x in enumerate(dataPoints) if x["name"] == "TemperatureDHT" and x["sensor"] == "DHT22"]:
                            array_index = [i for i, x in enumerate(dataPoints) if x["name"] == "TemperatureDHT" and x["sensor"] == "DHT22"][0]
                            rrd_value = rrd_value + ":" + str(int(round(dataPoints[array_index]["value"])))

    Sehe Ich das mit meinen python-Unkenntnissen richtig, dass str(int(round(dataPoints[array_index]["value"])) der Übeltäter ist - Rundung auf Integer = Ganzzahl?

    Wohl ja, denn in Zeile 67 steht:
    # prints something like "N:20:21:999:44:14127:34286:641304:2758:17073"

    An die Fachleute hier:
    Wäre es ok, die Zeile so abzuändern:

    Code
    rrd_value = rrd_value + ":" + str(float(dataPoints[array_index]["value"]))


    ?

    rasray

    Einmal editiert, zuletzt von rasray (4. Januar 2016 um 16:08)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!