Hi @Thomas_Decock
I think this will work. There may be a more elegant way to just have one single column called elapsed which has the float value, but I created a second column called elapsedFloat and then divided by 3600.0 to get the decimal hours.
from(bucket: "junkbucket")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "BinaryData")
|> filter(fn: (r) => r["_field"] == "value")
|> filter(fn: (r) => r["device"] == "smartphone")
|> filter(fn: (r) => r["person"] == "Thomas")
|> elapsed(unit: 1s)
|> map(fn: (r) => ({ r with elapsedFloat: float(v: r.elapsed)/3600.0 }))
|> filter(fn: (r) => r["_value"] == 0)
|> aggregateWindow(every: 1d, fn: sum, column:"elapsedFloat")
|> yield(name: "sum")