InfluxDB

duration

from(bucket: "home_assistant")
  |> range(start: 2023-09-01T00:00:00.000Z, stop: now())
  |> filter(fn: (r) => r["entity_id"] == "orvibo_switch_1")
  |> filter(fn: (r) => r["_field"] == "value")
  |> elapsed(unit: 1s)
  |> map(fn: (r) => ({ r with elapsedFloat: float(v: r.elapsed)/3600.0 }))
  |> filter(fn: (r) => r["_value"] == 0)
  |> aggregateWindow(every: 31d, fn: sum, column:"elapsedFloat")
  |> yield(name: "sum")