I want to use one common subflow for many types of sensors to get the sensors value.
The sensors value is received from the MQTT message with "msg.topic" = "tele/xxx/SENSOR", sent with TELEPERIOD interval.
A "Environment Variables" is used to configure the sensor type to the subflow.
I use the "mqtt node in"-node to get the MQTT message to the "Function"-node.
The solution below works, in a "Function node", but there must be a smarter way to avoid all these hardcoded If-conditions (= less code).
if (msg.topic === "tele/" + env.get("MQTTTopic") + "/SENSOR")
{
if (env.get("Sensor") === "DS18B20.Temperature") { indata = msg.payload.DS18B20.Temperature }
if (env.get("Sensor") === "DS18B20_1.Temperature") { indata = msg.payload.DS18B20_1.Temperature }
if (env.get("Sensor") === "DS18B20_2.Temperature") { indata = msg.payload.DS18B20_2.Temperature }
if (env.get("Sensor") === "DS18B20_3.Temperature") { indata = msg.payload.DS18B20_3.Temperature }
if (env.get("Sensor") === "DS18B20_4.Temperature") { indata = msg.payload.DS18B20_4.Temperature }
if (env.get("Sensor") === "DS18B20_5.Temperature") { indata = msg.payload.DS18B20_5.Temperature }
if (env.get("Sensor") === "DS18B20_6.Temperature") { indata = msg.payload.DS18B20_6.Temperature }
if (env.get("Sensor") === "DS18B20_7.Temperature") { indata = msg.payload.DS18B20_7.Temperature }
if (env.get("Sensor") === "DS18B20_8.Temperature") { indata = msg.payload.DS18B20_8.Temperature }
if (env.get("Sensor") === "ANALOG.Temperature1") { indata = msg.payload.ANALOG.Temperature1 }
if (env.get("Sensor") === "ANALOG.Temperature2") { indata = msg.payload.ANALOG.Temperature2 }
if (env.get("Sensor") === "ANALOG.Temperature3") { indata = msg.payload.ANALOG.Temperature3 }
if (env.get("Sensor") === "ANALOG.Temperature4") { indata = msg.payload.ANALOG.Temperature4 }
if (env.get("Sensor") === "ANALOG.Temperature5") { indata = msg.payload.ANALOG.Temperature5 }
if (env.get("Sensor") === "ANALOG.Temperature6") { indata = msg.payload.ANALOG.Temperature6 }
if (env.get("Sensor") === "ANALOG.Temperature7") { indata = msg.payload.ANALOG.Temperature7 }
if (env.get("Sensor") === "ANALOG.Temperature8") { indata = msg.payload.ANALOG.Temperature8 }
if (env.get("Sensor") === "DHT11.Temperature") { indata = msg.payload.DHT11.Temperature }
if (env.get("Sensor") === "DHT12.Temperature") { indata = msg.payload.DHT12.Temperature }
if (env.get("Sensor") === "HTU21.Temperature") { indata = msg.payload.HTU21.Temperature }
if (env.get("Sensor") === "SHT1X.Temperature") { indata = msg.payload.SHT1X.Temperature }
if (env.get("Sensor") === "SHT30.Temperature") { indata = msg.payload.SHT30.Temperature }
if (env.get("Sensor") === "SHT4X.Temperature") { indata = msg.payload.SHT4X.Temperature }
if (env.get("Sensor") === "BME280.Humidity") { indata = msg.payload.BME280.Humidity }
if (env.get("Sensor") === "BME280.Pressure") { indata = msg.payload.BME280.Pressure }
.
.
}