Join in flux the sensors

I am having this error
runtime error @39:4-39:79: map: map function must return an object, got float

attached the query
TH1 = from(bucket: “sensors”)
|> range(start: -1m)
|> filter(fn: (r) => r[“_field”] == “temperature”)
|> filter(fn: (r) => r[“_measurement”] == “TH1” )
|> drop(columns:[“_start”, “_stop”, “_measurement”, “_field”])
|> yield(name: “TH1”)

TH2 = from(bucket: “sensors”)
|> range(start: -1m)
|> filter(fn: (r) => r[“_field”] == “temperature”)
|> filter(fn: (r) => r[“_measurement”] == “TH2” )
|> drop(columns:[“_start”, “_stop”, “_measurement”, “_field”])
|> yield(name: “TH2”)

TH = join(tables: {TH1: TH1, TH2: TH2}, on: [“_time”])
|> yield(name: “TH”)

TC1 = from(bucket: “sensors”)
|> range(start: -1m)
|> filter(fn: (r) => r[“_field”] == “temperature”)
|> filter(fn: (r) => r[“_measurement”] == “TC1” )
|> drop(columns:[“_start”, “_stop”, “_measurement”, “_field”])
|> yield(name: “TC1”)

TC2 = from(bucket: “sensors”)
|> range(start: -1m)
|> filter(fn: (r) => r[“_field”] == “temperature”)
|> filter(fn: (r) => r[“_measurement”] == “TC2” )
|> drop(columns:[“_start”, “_stop”, “_measurement”, “_field”])
|> yield(name: “TC2”)

TC = join(tables: {TC1: TC1, TC2: TC2}, on: [“_time”])
|> yield(name: “TC”)

join(tables: {TC: TC, TH: TH}, on: [“_time”])
|> yield(name: “TCTH”)

|> map(fn: (r) => (r._value_TC2 - r._value_TC1)/(r._value_TH1 - r._value_TH2))
|> yield(name: “efficiency”)

Need your support in this oportunity

@David_Ramirez

I set up some test data for TC1, TC2, TH1 and TH2 pumping random integers every 5 seconds, then used your query:

TH1 = from(bucket: "junkbucket")
|> range(start: -1m)
|> filter(fn: (r) => r["_field"] == "temperature")
|> filter(fn: (r) => r["_measurement"] == "TH1" )
|> drop(columns:["_start", "_stop", "_measurement", "_field"])
|> yield(name: "TH1")

TH2 = from(bucket: "junkbucket")
|> range(start: -1m)
|> filter(fn: (r) => r["_field"] == "temperature")
|> filter(fn: (r) => r["_measurement"] == "TH1" )
|> drop(columns:["_start", "_stop", "_measurement", "_field"])
|> yield(name: "TH2")

TH = join(tables: {TH1: TH1, TH2: TH2}, on: ["_time"])
|> yield(name: "TH")

TC1 = from(bucket: "junkbucket")
|> range(start: -1m)
|> filter(fn: (r) => r["_field"] == "temperature")
|> filter(fn: (r) => r["_measurement"] == "TH1" )
|> drop(columns:["_start", "_stop", "_measurement", "_field"])
|> yield(name: "TC1")

TC2 = from(bucket: "junkbucket")
|> range(start: -1m)
|> filter(fn: (r) => r["_field"] == "temperature")
|> filter(fn: (r) => r["_measurement"] == "TH1" )
|> drop(columns:["_start", "_stop", "_measurement", "_field"])
|> yield(name: "TC2")

TC = join(tables: {TC1: TC1, TC2: TC2}, on: ["_time"])
|> yield(name: "TC")

join(tables: {TC: TC, TH: TH}, on: ["_time"])
|> yield(name: "TCTH")

|> map(fn: (r) => (r._value_TC2 - r._value_TC1)/(r._value_TH1 - r._value_TH2))
|> yield(name: "efficiency")

Running the above, I also got the error that you mentioned:

Changing the map() function as follows fixed it for me:

|> map(fn: (r) => ({_value: ((r._value_TC2 - r._value_TC1)/(r._value_TH1 - r._value_TH2))}))

thank you @grant1 problem is fixed with your changes, deeply appreciate your support

Cheers from Honduras Central America

Great problem was solved with your support, every day is a learning lesson!!!

Cheers from Honduras Central America