Columnname based on positive/negative

Hello!

I display how long it takes, to complete charging a battery to 90%.
When it discharging, I calculate how long it takes to 10%.

I would like to display now the text to the time:
90% reached in xxx
10% reached in xxx

This is my stat display:
image

This is my flux query:

import "timezone"
option location = timezone.location(name: "Europe/Vienna")

from(bucket: "bucket")
  |> range(start: -5m, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "PV")
  |> filter(fn: (r) => r["Wechselrichter"] == "Alle")
  |> filter(fn: (r) => r["Speicher"] == "Alle")
  |> filter(fn: (r) => r["_field"] == "Lade/Entladeleistung" or  r["_field"] == "SoC")
  |> filter(fn: (r) => r["_value"] < 20000 and r["_value"] > -20000)
  |> aggregateWindow(every: 5m, fn: last, createEmpty: false)
  |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
  |> map(fn: (r) => ({ r with 
  Ladezeit: if r["Lade/Entladeleistung"] > 300.0 
    then 
      ((40500.0 - (45000.0 * r["SoC"] / 100.0)) / r["Lade/Entladeleistung"]) * 60.0 * 60.0
    else if r["Lade/Entladeleistung"] < -300.0 
    then
     (((45000.0 * r["SoC"] / 100.0) -4500.0) / r["Lade/Entladeleistung"] * -1.0) * 60.0 * 60.0
    else
     0.0
    })
  )
  |> keep(columns: ["Ladezeit"])
  |> yield(name: "last")

Can I change in the flux the column name?

Hi @gedomo1

Yes, you can rename columns using this function`.

Hello Grant!

Thank you. Yes, I know this function, but I need this in a if-then and this is my problem

I have this so far:

from(bucket: "bucket")
  |> range(start: -5m, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "PV")
  |> filter(fn: (r) => r["Wechselrichter"] == "Alle")
  |> filter(fn: (r) => r["Speicher"] == "Alle")
  |> filter(fn: (r) => r["_field"] == "Lade/Entladeleistung" or  r["_field"] == "SoC")
  |> filter(fn: (r) => r["_value"] < 20000 and r["_value"] > -20000)
  |> aggregateWindow(every: 5m, fn: last, createEmpty: false)
  |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
  |> map(fn: (r) => ({ r with 
  Ladezeit: if r["Lade/Entladeleistung"] > 300.0 
    then 
      ((40500.0 - (45000.0 * r["SoC"] / 100.0)) / r["Lade/Entladeleistung"]) * 60.0 * 60.0
    else if r["Lade/Entladeleistung"] < -300.0 
    then
     (((45000.0 * r["SoC"] / 100.0) -4500.0) / r["Lade/Entladeleistung"] * -1.0) * 60.0 * 60.0
    else
     0.0
    })
  )
   |> keep(columns: ["Ladezeit"]) 
  
  |> rename(fn: (column) => {_newColumnName = if 700.0 > 300.0 then "90% erreicht in" else "10% erreicht in"
            return _newColumnName
        },
    )
  |> yield(name: "last")

But I need for the value 700.0 the last value from r[“Lade/Entladeleistung”]