My Raspberry Pi has a light sensor connected to a GPIO port which counts the number of LED impulses on my electricity meter. Each blip is 0.001 kWh or 1 Wh of energy usage. I am plotting this data to show actual current power usage (kW, not kWh), so I have to divide the _value by v.windowPeriod:

```
from(bucket: "Home")
|> range(start: v.timeRangeStart, stop:v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "mqtt.0.electricity.count_Wh"
and r._field == "value"
)
|> aggregateWindow(every: v.windowPeriod, fn: mean, timeSrc: "_start")
|> derivative(unit: v.windowPeriod)
|> keep(columns: ["_measurement", "_time", "_value"])
|> map(fn: (r) => ({ r with _value: r._value * 12.0 }))
```

The factor of 12.0 is valid when v.windowPeriod == 5 minutes. But of course when I zoom, this value changes. I cannot use `r._value * 60.0 / v.windowPeriod`

, this gives me an error about â€śdurationâ€ť:

```
invalid: error @10:57-10:61: expected float but found duration
```

Using `float(v.windowPeriod)`

to force floats returns

```
invalid: compilation failed: error at @10:63-10:67:
unexpected token for property key: DURATION (1m0s)
```

It seems I need a function to convert a duration into a float (in minutes, possibly fractions of minutes) to be able to do calculations with it.

I could not find this anywhere. Does it exist? Or is there another more efficient way to do what I plan?

Thank you!