NEWS
Sehr große Zahlen
-
Hallo,
ein Datenpunkt des iobroker liefert sehr große Zahlen. Es handelt sich um die summierte abgegebene Energie des Inverters ins Hausnetz in Wattsekunden seit Betriebsbeginn, gemessen und addiert vom mystrom switch und per WLAN übertragen. Aktuell übersteigt der Wert die Zahl 10^9. Und ungefähr seitdem aktualisert Grafana diesen Wert nicht mehr in der grafischen Darstellung. Der Wert wird auch nicht mehr im table view angezeigt.
Gibt es eine Grenze für diese Datenpunkte? Oder eine Grenze bei der Übergabe an Grafana? Scheint bei 999 Mio zu liegen.
Hat jemand eine Idee, wie man das Problem beheben kann?Danke für jede Hilfe!
-
@mere13 keine Ahnung. Aber warum denn "Wattsekunden" und nicht Wh oder kWh?
Ro75.
-
@ro75 sagte in Sehr große Zahlen:
@mere13 keine Ahnung. Aber warum denn "Wattsekunden" und nicht Wh oder kWh?
Ro75.
meine Glaskugel meint, dass das Gerät dieses so ausspuckt
-
@homoran ja, ja. Aber warum rechnet man dann solche Werte nicht einfach um.
Ro75.
EDIT: 1000 Wattsekunden = 0,277778 Wattstunden = 0,000277778 Kilowattstunden
ODER Wert / 3600 = Wattstunden und das durch 1000 = Kilowattstunden -
@ro75 Klar. Aber das Gerät gibt halt erst mal diese Werte aus. Das kann ich nicht ändern.
-
@mere13 Ich teile dann in Grafana den Wert durch 3600, um auf Wh zu kommen. Aber dazu muss der Wert dort erst mal ankommen. In iobroker habe ich nix gefunden, um gleich zu dividieren. Der Wert kommt über Json.
-
@mere13 wie übergibst du denn die Werte nach Grafana? Als JSON oder als extrahierter Wert aus der JSON in einen numerischen Datenpunkt?
Ro75.
-
@ro75 Über Blockly und dann an eigenen datenpunkt
-
@mere13 nun Blockly ist nicht meine Welt, aber ich denke da kann man gleich (um)rechnen.
Ro75.
-
@ro75 ja, ist leider auch nicht meine Welt. Vielleicht gibt's ja hier einen Blockly Spezialisten?
Hab was mit Mathe-Funktionen gefunden, aber das JSON davor macht's für mich kompliziert. -
@mere13 sagte in Sehr große Zahlen:
In iobroker habe ich nix gefunden, um gleich zu dividieren.
Das kann man in einem Alias machen.
Nutzt dir aber vermultich nix, wenn im Ursprung schon nix gescheites ankommt. -
@mere13 sagte in Sehr große Zahlen:
ist leider auch nicht meine Welt.
das solltest du ändern.
@mere13 sagte in Sehr große Zahlen:
aber das JSON davor macht's für mich kompliziert.
was kommt denn in iobroker an?
und wieso klappt das mit Wattsekunden? -
@mere13
Den request-Baustein musst Du auch mal anpacken und durch http(GET) ersetzen. Da ist der javascript-Adapter bei Dir scheinbar nicht auf dem aktuellsten Stand.
Würde dann mit Umrechnung (Teilung durch 3600 und ohne Nachkommastellen gerundet) in etwa so ausschauen
-
@homoran haben uns jetzt überlappt. Schau mir das gleich an.
in iobroker kommt die Riesenzahl an. Ich hab jetzt in Blockly eine Rechnung eingebaut: / 10°^6. Versaut mir halt alle Werte bis zum jetzigen Zeitpunkt -
@mere13 was ist das dann für ein Wert?
Ro75.
-
@mere13 sagte in Sehr große Zahlen:
10°^6. Versaut mir halt alle Werte bis zum jetzigen Zeitpunkt
Übergibst Du die Daten an influx2 ?
Dann könntest Du in der influx-Query ja bspw. abfragen, ob die Werte < 10^9 sind. Alle Werte die < 10^9 sind ohne Umrechnung weiterverwenden. Die größeren Werte weiterhin umrechnen. -
@wolfi913 ja. an influx2. Wo geht das genau? Ich müsste eher einen Zeitpunkt angeben, ab dem durch 3600 geteilt wird.
-
@mere13 sagte in Sehr große Zahlen:
@wolfi913 ja. an influx2. Wo geht das genau? Ich müsste eher einen Zeitpunkt angeben, ab dem durch 3600 geteilt wird.
Zeitpunkt kann ich Dir leider nicht sagen. Aber mit dem Wert < 10^9 könnte es so funktionieren
(ungetestet)|> map(fn: (r) => ({r with _newvalue: if r._value > 10000000000.0 then r._value / 3600.0 else r._value})) |> keep(columns: ["_time", "_newvalue"])
-
Danke! Blockly geht schon mal.