Error on calculating the diff of values

Hello, pls hlp to finde the probelm, union ? thx!

from(bucket: "iobroker_data")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) =>
    r._measurement =~ /modbus.0.holdingRegisters.400[0-9][0-9]_Cell_Voltage_([1-9]|1[0-6])$/
  )
  |> aggregateWindow(every: v.windowPeriod, fn: mean)
  |>group()
  |>drop(columns:["_measurement"])
  |>sort(columns:["_time"])

minimum = data
  |> aggregateWindow(every: v.windowPeriod, fn: min)
  |> map(fn: (r) => ({_time: r._time, minimum: r._value}))

maximum = data
  |> aggregateWindow(every: v.windowPeriod, fn: max)
  |> map(fn: (r) => ({_time: r._time, maximum: r._value}))

differenz = data
  |> aggregateWindow(every: v.windowPeriod, fn: spread)
  |> map(fn: (r) => ({_time: r._time, differenz: r._value}))

union(tables: [minimum, maximum, differenz])

Hello @4711Austria,
Can you share screenshots of what minimum, maximum, and differenz, looks like?
I’m not sure why that’s not working.
Does this example query work for you?

import "generate"

t1 =
    generate.from(
        count: 4,
        fn: (n) => n + 1,
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "foo")
        |> group(columns: ["tag"])

t2 =
    generate.from(
        count: 4,
        fn: (n) => n * (-1),
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "bar")
        |> set(key: "tag2", value: "bar2")
        |> group(columns: ["tag"])

t3 =
    generate.from(
        count: 4,
        fn: (n) => n * (-1),
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "bar")
        |> set(key: "tag3", value: "bar3")
        |> group(columns: ["tag"])

union(tables: [t1, t2, t4])
1 Like

Hi and thx for hlp. I am not jet familiar with the code, pls. always show the hole code I should test, thx.

tried this now:

from(bucket: "iobroker_data")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) =>
    r._measurement =~ /modbus.0.holdingRegisters.400[0-9][0-9]_Cell_Voltage_([1-9]|1[0-6])$/
  )
  |> aggregateWindow(every: v.windowPeriod, fn: mean)
  |>group()
  |>drop(columns:["_measurement"])
  |>sort(columns:["_time"])
  
import "generate"

t1 =
    generate.from(
        count: 4,
        fn: (n) => n + 1,
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "foo")
        |> group(columns: ["tag"])

t2 =
    generate.from(
        count: 4,
        fn: (n) => n * (-1),
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "bar")
        |> set(key: "tag2", value: "bar2")
        |> group(columns: ["tag"])

t3 =
    generate.from(
        count: 4,
        fn: (n) => n * (-1),
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "bar")
        |> set(key: "tag3", value: "bar3")
        |> group(columns: ["tag"])

union(tables: [t1, t2, t4])

result: