# Tuya TS0601\_soil

**URL:** <https://discourse.nodered.org/t/tuya-ts0601-soil/96340>\
**Category:** Share Your Projects\
**Created:** [30 March 2025 14:28 UTC](https://discourse.nodered.org/t/tuya-ts0601-soil/96340 "2025-03-30T14:28:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![c3poSAW](https://avatars.discourse-cdn.com/v4/letter/c/df705f/32.png) [@c3poSAW](https://discourse.nodered.org/u/c3poSAW)\
**Post date:** [30 March 2025 14:28 UTC](https://discourse.nodered.org/t/tuya-ts0601-soil/96340/1 "2025-03-30T14:28:20Z")

</div>

Hi maybe someone need this one day. I use Tasmota bridge with a Tuya TS0601\_soil Sensor and Mosquitto mqqt broker. Here is the code i used in a function node with 4 outputs. With the Alarmvalue i'm not that sure.

This is what i resevied in Tasmota:

```auto
14:14:18.909 MQT: tele/ZigbeePro/SENSOR = {"ZbReceived":{"0xA80E":{"Device":"0xA80E","Name":"ErdfeuchteSensor","EF00/0205":27,"Endpoint":1,"LinkQuality":72}}}
14:14:19.060 MQT: tele/ZigbeePro/SENSOR = {"ZbReceived":{"0xA80E":{"Device":"0xA80E","Name":"ErdfeuchteSensor","EF00/0203":0,"Endpoint":1,"LinkQuality":65}}}
14:14:19.209 MQT: tele/ZigbeePro/SENSOR = {"ZbReceived":{"0xA80E":{"Device":"0xA80E","Name":"ErdfeuchteSensor","EF00/020F":60,"Endpoint":1,"LinkQuality":65}}}
14:14:19.609 MQT: tele/ZigbeePro/SENSOR = {"ZbReceived":{"0xA80E":{"Device":"0xA80E","Name":"ErdfeuchteSensor","EF00/040E":1,"Endpoint":1,"LinkQuality":61}}}

```

```auto
// Empfangene Nachricht verarbeiten
const input = msg.payload;

// Falls die Nachricht im "ZbReceived"-Format ankommt
if (input.ZbReceived) {
    const deviceKey = Object.keys(input.ZbReceived)[0];
    msg.payload = input.ZbReceived[deviceKey]; // Extrahiere Gerätedaten
}

const sensorData = msg.payload;

// Ausgänge vorbereiten (jeder Output bekommt eine eigene msg-Kopie)
const outputs = [];

// Output 1: Temperatur (°C)
if (sensorData["EF00/0205"] !== undefined) {
    const msgTemp = {...msg};
    msgTemp.payload = sensorData["EF00/0205"];
    msgTemp.device = sensorData.Device;
    msgTemp.unit = "°C";
    msgTemp.linkQuality = sensorData.LinkQuality;
    msgTemp.topic = "temperature";
    outputs[0] = msgTemp;
} else {
    outputs[0] = null;
}

// Output 2: Feuchte (%)
if (sensorData["EF00/0203"] !== undefined) {
    const msgHumidity = {...msg};
    msgHumidity.payload = sensorData["EF00/0203"];
    msgHumidity.device = sensorData.Device;
    msgHumidity.unit = "%";
    msgHumidity.linkQuality = sensorData.LinkQuality;
    msgHumidity.topic = "humidity";
    outputs[1] = msgHumidity;
} else {
    outputs[1] = null;
}

// Output 3: Batterie (%)
if (sensorData["EF00/020F"] !== undefined) {
    const msgBattery = {...msg};
    msgBattery.payload = sensorData["EF00/020F"];
    msgBattery.device = sensorData.Device;
    msgBattery.unit = "%";
    msgBattery.linkQuality = sensorData.LinkQuality;
    msgBattery.topic = "battery";
    outputs[2] = msgBattery;
} else {
    outputs[2] = null;
}

// Output 4: Alarm (0/1, dezimal)
if (sensorData["EF00/040E"] !== undefined) {
    const msgAlarm = {...msg};
    msgAlarm.payload = sensorData["EF00/040E"]; // bleibt 0 oder 1
    msgAlarm.device = sensorData.Device;
    msgAlarm.linkQuality = sensorData.LinkQuality;
    msgAlarm.topic = "alarm";
    outputs[3] = msgAlarm;
} else {
    outputs[3] = null;
}

// Return der Ausgänge (für 4 Output-Ports in der Function-Node)
return outputs;

```

---

<div class="post-metadata">

**Author:** ![marcus-j-davies](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marcus-j-davies/32/103435_2.png) [@marcus-j-davies](https://discourse.nodered.org/u/marcus-j-davies)\
**Post date:** [30 March 2025 14:42 UTC](https://discourse.nodered.org/t/tuya-ts0601-soil/96340/2 "2025-03-30T14:42:13Z")

</div>

Thanks for your contribution @c3poSAW

Just a small edit I made.  
I moved this from **Share Your Nodes** to **Share Your Projects**

**Share Your Nodes** : Sharing/Developing Nodes you have coded, that users can install from the palette menu/npm (Extra Nodes)  
**Share Your Projects** : Sharing flows/workflows/solutions that can be imported & used by others

---

<div class="post-metadata">

**Author:** ![c3poSAW](https://avatars.discourse-cdn.com/v4/letter/c/df705f/32.png) [@c3poSAW](https://discourse.nodered.org/u/c3poSAW)\
**Post date:** [1 April 2025 16:22 UTC](https://discourse.nodered.org/t/tuya-ts0601-soil/96340/3 "2025-04-01T16:22:41Z")

</div>

thanks for that, i was not aware. Next Time i will do it right.
