[vz-users] Zu kleine Leistungswerte gehen verloren?

Julian Sikorski belegdol at gmail.com
Fr Jul 31 16:28:32 CEST 2026


Am 28.07.26 um 23:55 schrieb Julian Sikorski:
> Hallo zusammen,
> 
> Ich schreibe Daten aus einem S0 Gaszähler parallel in InfluxDB und in 
> MariaDB über middleware:
> 
>           "protocol" : "s0",
>           "enabled" : true,
>           "gpio" : 1007,
>           "configureGPIO" : true,
>       "debounce_delay" : 30,
>       "high_wait" : 250,
>       "resolution": 100,
>           "channels": [{
>                   "uuid" : "54cfcba0-41ed-11f0-aa48-3b6ada3bc5b9",
>                   "middleware" : "http://odroidxu4.local:8080",
>                   "identifier" : "Impulse"
>            },{
>                   "uuid" : "7b999202-beeb-11f0-a847-d6428ceaa5ba",
>                   "api": "influxdb",
>           "host": "http://odroidxu4.local:8086",
>                   "identifier" : "Power"
>            }]
> 
> 
> ich habe folgendes Verhalten beobachtet: seit dem 1. Mai ist es schon 
> zweimal passiert, dass keine Leistung in InfluxDB geschrieben wurde 
> obwohl es ein Impuls in MariaDB gibt:
> 
> Time    influxdb    mariadb
> 16.06.2026, 09:46:41    21,3    1
> 16.06.2026, 10:00:02    44,9    1
> 16.06.2026, 21:28:16        1
> 16.06.2026, 21:28:59    830    1
> 16.06.2026, 21:29:26    1340    1
> 24.07.2026, 16:29:31    863    1
> 24.07.2026, 16:30:14    837    1
> 28.07.2026, 06:19:29        1
> 28.07.2026, 06:21:16    336    1
> 28.07.2026, 06:23:30    270    1
> 
> Bei dem 2. Mal ist mir die vzlogger Dienst abgeschmiert und wurde erst 
> an dem 28. Juli neugestartet. Kann es sein, dass für die erste Messung 
> seit dem start des Dienstes keine Leistung berechnet werden kann, da man 
> mindestens zwei Werte braucht? In diesem Fall wäre Leistung für die 
> Berechnung der Zählerstände ungeeignet da für jedes Neustart von dem 
> Dienst ein Impuls verloren geht.
> Für InfluxDB nutze ich die Leistungswerte da ich nicht hinbekommen habe 
> die Leistung Dashboard (volkszähler Nachbildend) mittels InfluxQL in 
> Grafana zu berechnen.
> 
> LG,
> Julian
> 
> 
In der Tat gibt es Leistungswerte erst ab dem 2. Impuls:

https://github.com/volkszaehler/vzlogger/blob/2a4d18e4569fe184abb00db4764d61a0ca22291d/src/protocols/MeterS0.cpp#L419-L425

Ich habe es in Grafana mittels Flux hinbekommen die Leistung zu berechnen:

from(bucket: "vzlogger")
     |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
   |> filter(fn: (r) =>
       r._measurement == "vzlogger" and
       r._field == "value" and
       r.uuid == "7b999202-beeb-11f0-a847-d6428ceaa5ba"
   )
   |> elapsed(unit: 1ns)
   |> map(fn: (r) => ({
       r with
       _value: float(v: "3.6e+13") / float(v: r.elapsed)
   }))
   |> aggregateWindow(
       every: v.windowPeriod,
       fn: mean,
       createEmpty: true
   )
     |> map(fn: (r) => ({ r with uuid: "Gas" }))
     |> drop(columns: ["_field", "_measurement"])

Mit InfluxQL geht es leider nicht, da sich ELAPSED() mit GROUP BY nicht 
vertragen:

https://docs.influxdata.com/influxdb/v1/query_language/functions/#elapsed

Man könnte es zwar ohne Aggregation lassen (es gibt nicht so viele 
Datenpunkte), dann sehen aber die Zeiten wo kein Gas benutzt wird doof aus.

LG,
Julian



Mehr Informationen über die Mailingliste volkszaehler-users