Tuya radiator valve (TS0601) calibration from external sensor (via zigbee2mqtt)

I use the Calibration trigger in automation in order to calibrate the temperature in the thermal head. I use mqtt switch as a switch, since it is important for me that all control is duplicated on the second HA, but you can use auxiliary elements, the same switch. If the trigger for temperature calibration has been triggered and if a switch or switch is turned on in the condition, then the calibration will work.

I have noticed that most blueprints won’t work when you have Home Assistant legacy entity attributes disabled in Zigbee2MQTT. This will remove the local_temperature_calibration as an attribute from the TS0601 entity itself.

The blueprint mentioned below will require an additional entity (the seperate number local_temperature_calibration enitity of the TS0601 valve)

I wrote a new TRV calibrator that I expect to work with other valves and it should be platform agnostic in certain degree (I expected to work with Z2M and ZHA). Can someone help me to test it?

It works great with my TV02-Zigbee

Hello,
I have a question regarding your blueprint.
I’ve imported it, but when I want to setup the automation, the blueprint asks me for “TRV Calibration State”, and in the entity field, I don’t have anything to chose, so the error that I have is : “Message malformed: Missing input trv_calibration_number”
I know I am a rookie in Home Assistant, please help me understand :slight_smile:

Thanks,

These TRVs store local calibration in flash memory - 100000 rw cycles max. That is 100000 changes of calibration.
If you change temperature every 10 minutes: 100000/ ( 24 * 6) = 694.44 days. In 2 years your TRV will be dead.

Подскажите пожалуйста, как определить:

switch.gostinaia_termogolovka_kalibrovka_temperatury

и на что он должен ссылаться?

и что за группа?

group.livingroom_termostat_info_and_menu

у Вас несколько радиаторов? Можно тоже пример?

Это все индивидуальные настройки и моя собственная стилизация.

switch.gostinaia_termogolovka_kalibrovka_temperatury нужен в качестве нужно ли нам включать автокалибровку или нет. Я могу для себя решить, должна ли работать калибровка или нет. Если нет, то просто выключаю, а если да, то включаю. Это аналогично тому, что мы просто выключаем автоматизацию, только выключать автоматизации глупо, так как можно использовать вспомогательные элементы выключатель или просто выключатель MQTT в качестве условии

group.livingroom_termostat_info_and_menu это нужно для стилизации. Я просто создаю группу и добавляю туда все управление от головки и смотрится в гуи компактно, а как кликаешь на меню, то разворачивается панель, где выводится вся инфа и все управление термоголовкой и так я делаю для каждой комнаты

image

Код для гуи, как видно скриншоте

entity: sensor.thermostat_livingroom
type: custom:multiple-entity-row
icon: mdi:thermostat
name: Термостат
secondary_info:
  attribute: Батарея
  name: 'Батарея:'
show_state: false
entities:
  - entity: group.livingroom_termostat_info_and_menu
    name: Меню
    state_color: true
    icon: mdi:information-outline
    styles:
      width: 50px
  - entity: sensor.gostinaia_tiv_temperature
    name: Температура
    styles:
      width: 70px
  - entity: sensor.gostinaia_termostat_position
    name: Позиция
    styles:
      width: 50px
  - entity: sensor.livingroom_termostat_local_temperature_calibration
    name: Калибровка
    state_color: true
    icon: false
    styles:
      width: 90px

а в файлик groups.yaml (группы) я добавил следующее и это меню и отображается в гуи

#Гостиная: Термостат
#Объект: group.livingroom_termostat_info_and_menu
livingroom_termostat_info_and_menu:
  name: "Гостиная: Термостат. Инфо и меню"
  icon: mdi:thermostat
  all: false
  entities:
    - switch.livingroom_termostat_local_temperature_calibration #Включить\выключить автокалибровку термоголовки
    - sensor.gostinaia_termostat_position #Position
    - sensor.gostinaia_termostat_comfort_temperature #Comfort temperature
    - number.gostinaia_termostat_comfort_temperature #Comfort temperature
    - number.gostinaia_termostat_eco_temperature #Eco temperature
    - sensor.gostinaia_termostat_min_temperature #Min temperature
    - sensor.gostinaia_termostat_max_temperature #Max temperature
    - number.gostinaia_termostat_min_temperature #Min temperature
    - number.gostinaia_termostat_max_temperature #Max temperature
    - number.gostinaia_termostat_local_temperature_calibration #Local temperature calibration
    - sensor.gostinaia_termostat_force #Force
    - switch.gostinaia_termostat_auto_lock #Auto lock
    - switch.gostinaia_termostat_valve_detection #Valve detection
    - switch.gostinaia_termostat_window_detection #Window detection
    - switch.gostinaia_termostat_away_mode #Away mode
    - number.gostinaia_termostat_away_preset_days #Away preset days
    - number.gostinaia_termostat_away_preset_temperature #Away preset temperature
    - lock.gostinaia_termostat_child_lock #Child lock
    - select.gostinaia_termostat_force #Force
    - number.gostinaia_termostat_boost_time #Boost time
    - binary_sensor.gostinaia_termostat_battery_low #Battery low
    - binary_sensor.gostinaia_termostat_update_available #Update available
    - sensor.gostinaia_termostat_update_state #Update state

Nobody cares if your are not writing in English.

5 Likes

Спасибо за ответ.
Просто если из GUI создавать выключатель то он input_boolean, поэтому и смутило почему switch, если его создавать через template, надо задать что делать в режимах on и off,

okay you point to that problem. But what is the solution for @X4LD1M0 blueprint?

Haven’t seen any tear-down pictures or videos of these and don’t want to tear it down myself during winter. If if really has so limited write cycles then it makes no sense to use any kind of external calibration. Unless someone can make a custom firmware for the device where it doesn’t write at all.

I tried to follow your example but I’m struggling to understand where to find the entity ‘gostinaia_termostat_local_temperature_correction’.
Is this Z2M specific?
I’m usizng Deconz to integrate my TS0601s and here’s the entities/attributes I get:

hvac_modes:
  - heat
  - 'off'
  - auto
min_temp: 7
max_temp: 35
preset_modes:
  - auto
  - boost
  - comfort
  - complex
  - eco
  - holiday
  - manual
current_temperature: 22.5
temperature: 18
hvac_action: 'off'
preset_mode: manual
offset: -100
valve: 100
locked: false
friendly_name: TRV Bathroom
supported_features: 17

Like you, I’m also moving off better thermostat because of over complication.

I think that is comparable to your “offset”.

@gavlexx You seem to know this valve at a low level…Have you seen an error ‘E1’ on this valve? I have currently four that are not functional due to this - even removed from the radiator. When powering up, the self-check fails. I have pulled one apart and checked that the motor is functioning correctly by using a directly connected battery. When put back together it fails again.

I decided to calibrate only if the external temperature is at least 0.5°C below the target temperature. If the room has reached the desired temperature, I don’t care if the TRV’s measured temperature is correct or not.