Try to get the data from one day

Hi guys,
i do this query

from(bucket: "Solaranlage-Short-Term")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "Consumption")
  |> filter(fn: (r) => r["host"] == "TotalSelfConsumption")
  |> filter(fn: (r) => r["_field"] == "TotalSelfConsumption")
    |> aggregateWindow(every: 1d, fn: (tables=<-, column) => tables
      |> integral(unit: 1s),
      createEmpty: false
  )
  |> map(fn: (r) => ({ r with _value: r._value / 3600.0 }))
  |> filter(fn: (r) => exists r._stop)  
  |> yield(name: "daily_consumption_kWh")
  

I would expect to get exactly one data point. But I get two. The second value 23.2566… is the correct one.
I set the time range from 2025-02-02 00:00:00 to 2025-02-02 15:50:54 (The day so far.)

Does anyone have any idea what I am doing wrong?

Cheers

Hello @Nicolas_Lauinger,

import "array"
data = array.from(rows: [{_time: 2025-02-02T00:00:00Z, _value: 1.0},{_time: 2025-02-02T15:50:54Z, _value: 2.0}])

data
  |> range(start: 2025-02-02T00:00:00Z, stop: 2025-02-02T15:50:54Z)
  |> aggregateWindow(every: 1d, fn: (tables=<-, column) => tables
      |> integral(unit: 1s),
      createEmpty: false
  )
  |> map(fn: (r) => ({ r with _value: r._value / 3600.0 }))
  |> filter(fn: (r) => exists r._stop)  
  |> yield(name: "daily_consumption_kWh")

This worked for me. I’m not sure what’s happening.

This helps explain the behavior of aggWindow()

Can you verify that the problem is a range agg window conflict by adding:

from(bucket: "Solaranlage-Short-Term")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "Consumption")
  |> filter(fn: (r) => r["host"] == "TotalSelfConsumption")
  |> filter(fn: (r) => r["_field"] == "TotalSelfConsumption")
    |> aggregateWindow(every: 1d, fn: (tables=<-, column) => tables
      |> integral(unit: 1s),
      createEmpty: false
  )
  |> yield(name: "after aggwindow") 
  |> group()
  |> yield(name: "after group") 
  |> map(fn: (r) => ({ r with _value: r._value / 3600.0 }))
  |> filter(fn: (r) => exists r._stop)  
  |> yield(name: "daily_consumption_kWh")

And seeing if there are two tables in the after aggwindow result and if a group fixes it?

This is the result of your query.