Tuya temperature/humidity sensor (TS0601) getting incorrect readings

I recently bought a Tuya TS0601 (_TZE200_a8sdabtg) from AliExpress and periodically (~every 15 minutes) I am getting weird/incorrect readings. Specifically the temperature will drop to 32 degrees Fahrenheit and the humidity will jump to 655.4%. When the sensor is not reporting 32 degrees/655.4% humidity the readings appear to be correct.

Here is a graph showing some of the incorrect readings:

And here is the device signature:

{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4742, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x0302",
      "input_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x0402",
        "0x0405"
      ],
      "output_clusters": [
        "0x0003"
      ]
    }
  },
  "manufacturer": "",
  "model": "TS0601",
  "class": "zigpy.device.Device"
}

I’m curious if anyone else has experience with something like this or has any tips for debugging

2 Likes

Got today the same sort of this devices _TZE200_a8sdabtg . Two pieces and the same behavior as yours.
But no idea. I will let them run through the night to get more measurements about that dropouts.

At the first time I used the reset knob and the values of the thermometers were ok. Up to now I know, that the device turns back to normal measurement by itself.

Help appreciated, thanks.

Problem solution for me:

  • Delete the device Home Assistant.
  • Reset the device with the little pin.
  • Pair the device again with HA.
    Since 1 day exact results in temperature and humidity.

Good luck.

Hi @Wanne-E I tried your approach, but it didn’t work, after one day is still working?

@maxtrussell did you found a different solution.

BTW I have the same devices, two of: TS0601 by _TZE200_a8sdabtg, and using HA in docker in a Raspberry PI 3.

I have the same graph for temperature.

And also something alike for humidity, like it always go to 650% when it does not measure well.

I will love to know how to fix it.

Thanks

Hi @juanjo7, did you manage to solve it? I tried the procedure and that didn’t work as well. If anyone know how to fix it, it will be highly appreciated

To anyone stopping by, after trying multiple things, multiple times each, i decided to correct the values via template. As the not ‘-0.0°C’ and the not ‘655.4%’ values are seemingly correct, i used these templates:

for the temperature:

{% set value = states('sensor.lr_temp_raw') %}
{% if value != '-0.0' %}
  {{ value }}
{% else %}
  {{ states('sensor.living_room_temperature') | float }} 
{% endif %}

and for the humidity:

{% set value = states('sensor.lr_hum_raw') | float %}
{% if value < 120.0 %}
  {{ value }}
{% else %}
  {{ states('sensor.living_room_humidity') | float }}
{% endif %}

I used the self reference possibility, to when the error occur, keep the last known value. You can wait until a valid value come and update your sensor, or you can wake it up, and it will send the readings.
I decided to include the 120% in the humidity sensor for error margin, but other values can work as well


Let’s see how it is going to function, i will come back in a few days to share the results

1 Like

Having the same issue (btw this worked perfectly with Zigbee2MQTT, not sure why they can’t adopt that to some quirks to fix it. Where do you put this in the “template” are you talking about a .yaml somewhere, did you have to specify an ID for each? I have like 4 of these things. Thanks.

Hi, Can you please post your exact configuration for the temperature?

I did the same config, for humidity it works fine but for temperature it doesn’t

As you can see, for temperature I get a smooth line, but for humidity it’s hashed


Temp config :

{% set value = states('sensor.thermometre_bureau_temperature') %}
{% if value != '-0.0' %}
  {{ value }}
{% else %}
  {{ states('sensor.bureau_temperature_net') | float }} 
{% endif %}

Humidity config :

{% set value = states('sensor.thermometre_bureau_humidite_2') | float %}
{% if value < 120.0 %}
  {{ value }}
{% else %}
  {{ states('sensor.bureau_humidite_net') | float }}
{% endif %}

Hi. I added a helper template entity,

and then it was linked to my device

And as you can see, it is Unavailable now because I just restarted my HA instance, so it waits for the correct value to update.

Hi @nwattila , this is my exact configuration

not sure why yours is dashed. Have you tried to parse the input value to float as well?

Maybe investigate what format is your data coming

Just realized i haven’t shown the results, but here it is from a couple days ago to now. There’s a little void from yesterday because i was testing somethings and kept resetting my server for some validation, but it works fine

Everything works fine now, I realized that I made a mistake in the name of the second sensor " {{ states(‘sensor.bureau_temperature_net’) | float }} " instead of " {{ states(‘sensor.bureau_temperature_nette’) | float }} , so obviously when the sensor did not receive an input from the device, there was an empty value


Now it’s all good, thanks

1 Like