TUYA Inkbird ITC-308-WIFI Shows Wrong State Data

I am using Smart Life to include the Inkbird ITC-308-WIFI. It is working fine in the smart life app, but the data coming in is just wrong. It is not a multiplier, so far as I can tell, either.

Right now, my set point is 36.0 F and temp is 43.5 F from Smart Life. The states in HA are:

hvac_modes:

  • ‘off’
    min_temp: 25
    max_temp: 70
    target_temp_step: 0.5
    current_temperature: 33
    temperature: 38
    friendly_name: ITC-308-WIFI
    supported_features: 1

Only the friendly name matches what is in Smart Life. Any ideas?

I figured it out. Both are off, but differently.

For current temp: (reported temp -32)*10+32 = actual temp
For setpoint: (reported -32)*10 * 5/9 = actual

Could you elaborate on your to fix this issue as I have the same issue

Here is the code I used:

sensor: 
  - platform: template
    sensors:
      itc308_set_temp:
        device_class: temperature
        value_template: >
            {{ (((state_attr('climate.inkbird308', 'temperature')-32)*50/9) | round (1)) }}

      itc308_temp:
        device_class: temperature
        value_template: >
            {{ ((((state_attr('climate.inkbird308', 'current_temperature')-32)*10)+32) | round (1)) }}
      itc308_temp_f:
        device_class: temperature
        value_template: >
            {{ state_attr('climate.inkbird308', 'current_temperature_f') }}
1 Like

So I just got into home assistant. Is this in the configuration.yaml somewhere? Or something…

And do I replace all instances of “inkbird308” with the device name of the specific device? Or is that like a thing that needs to be exactly that?

Yeah, put it in configuration.yaml. All the stuff I added for this is below, but I cannot recall why I put in the last part…somewhat new to this. Then you can add the sensor to your dashboard (sensor.itc308_temp is mine).

tuya:
  username: xxxxxxxxxxx
  password: xxxxxxxxxx
  country_code: 39
  platform: tuya
sensor: 
  - platform: template
    sensors:
      itc308_set_temp:
        device_class: temperature
        value_template: >
            {{ (((state_attr('climate.inkbird308', 'temperature')-32)*50/9) | round (1)) }}

      itc308_temp:
        device_class: temperature
        value_template: >
            {{ ((((state_attr('climate.inkbird308', 'current_temperature')-32)*10)+32) | round (1)) }}
      itc308_temp_f:
        device_class: temperature
        value_template: >
            {{ state_attr('climate.inkbird308', 'current_temperature_f') }}
  - platform: time_date
    display_options: 
      - time
      - date
      - date_time
      - time_date

You are indeed the savior of my bacon my friend. Thanks :blush:

Also do I need country code 39? Because I was under the impression that you needed to put country code 1. unless your actually in Italy and i misunderstood.

Also if I have two if these do I just add the part from “sensor:” onward twice and add the part before that only once?

No worries. I am in Italy, hence 39.

For two of these, you would add, I think, just the below parts again. BUT, the state_attr will have to reference the 2nd device which should be different than the first one. Basically you would have the same exact things, but would need to change the names of the sensors (i.e., itc308_set_temp is mine, but you can make it whatever you want) and the reference entity_id (climate.inkbird308). You can find the entity id by clicking on the device after you add it and clicking on the Entity.

add this part twice, change the sensor names and change the entity for the 2nd group of them.

      itc308_set_temp:
        device_class: temperature
        value_template: >
            {{ (((state_attr('climate.inkbird308', 'temperature')-32)*50/9) | round (1)) }}

      itc308_temp:
        device_class: temperature
        value_template: >
            {{ ((((state_attr('climate.inkbird308', 'current_temperature')-32)*10)+32) | round (1)) }}
      itc308_temp_f:
        device_class: temperature
        value_template: >
            {{ state_attr('climate.inkbird308', 'current_temperature_f') }}

I ordered a 2nd one today, so should be able to confirm all this next week or so.

just got around to it today. looks like its telling me my credentials are wrong in the logs. do i put a 1 in front of the number? or just the number? like 1-456-7890 which when i write it is 14567890 or do i put 14567890? because i didnt put the 1. or should i be using my email address? also do you have to use the name of the device under where it says “itc308_temp” or the number that tuya gives home assistant? and have you tried using the second one yet and did it work? thanks in advance :slight_smile:

its also telling me the tuya is depreciated and to remove it from the config. so idk.

so i reinstalled the regular tuya integration and it lets me change some settings. it asks me if i want to change it to celsius or if i want farenheight. when i put it on farenheight it shows that its set to 6 degrees. its not. its set to 65. it asks for the temperature values divider, current temperature value divider, has a check box that says use dividend temperature value for set temperature command, has something that asks for the target temperature step which gives me options of whole halfs and tenths, min target temperature and max target temperature. im ot sure what to do with this.

ok so i misread what you said, but i changed the “climate.inkbird308” to the id that home assistant gave me thats more or less random characters. however i still have the tuya integration installed via the diag flow or whatever and its telling me that the config file is depreciated in logs, is that why its not working?

Ok so, I uninstalled the tuya addon but added the stuff in the config, then restarted it and it reinstalled tuya using the config. It didn’t change any settings for temperature though. I’m not sure how to change anything if it’s not in the config. I put 35 and 10 for the current temperature and set temperature divider respectively which made the values correct however if I change the temperature or the current temperature changes it’s totally wrong again.