Home Assistant. Термостат из датчика температуры и нормально открытого клапана.

В стандартном понимании включенное отопление это когда подается питание, иначе как бы например электрическое отопление работало без питания, однако есть разные системы и одна из систем основана на перекрывании теплоносителя клапаном, но есть нормально закрытый клапан, это когда нет питания — нет отопления, клапан теплоноситель перекрывает и нормально открытый клапан, это когда нет питания и отопление есть поскольку клапан не перекрывает подачу теплоносителя.

в Home Assistant для термостата есть специальный компонент Generic Thermostat который позволяет реализовать управление клапаном основываясь на показаниях температурного датчика.

У меня имеется нормально открытый термической сервопривод. Он имеет следующие характеристики:

— скорость открытия/закрытия: 3 минуты

— напряжение питания: 220 В

— потребляемая мощность: 2 Вт

Привод подключен к умной розетке Tuya, в прочем от Tuya там осталось только название и модуль на микросхеме BK7231 который перепрошит альтернативной прошивкой ESPHome, в HomeAssistant канал реле этой розетки в объектах (Настройки — Устройства и службы — Объекты) называется switch.prise02_relay

Так же есть zigbee датчик температуры Xiaomi WSDCGQ11LM, температура в Home Assistant с которого в объектах называется sensor.sensor01_temperaturee

для работы термостата в Home Assistant в файле configuration.yaml нам надо написать следующий код:

climate:
  - platform: generic_thermostat
    unique_id: termostat01
    name: Salon
    heater: switch.prise02_relay
    target_sensor: sensor.sensor01_temperaturee

Где switch.prise02_relay и sensor.sensor01_temperaturee соответствующие объекты.

Но такой код подходит только для случая если нет питания — нет отопления, есть питание — есть отопление, у нас клапан нормально открытый и логика работы обратная: есть питание — нет отопления, нет питания — нагрев, по этому нам надо изменить логику. Есть 2 способа в моем случае, это изменить логику работы реле в прошивке ESPHome добавив инвертирование, либо создать в HomeAssistant Template Switch

switch:
  - platform: template
    switches:
      switch_reversed01:
        value_template: "{{ is_state('switch.prise02_relay', 'off') }}"
        turn_on:
          service: switch.turn_off
          data:
            entity_id: switch.prise02_relay
        turn_off:
          service: switch.turn_on
          data:
            entity_id: switch.prise02_relay

где:

switch.prise02_relay — наше реле к которому подключен нормально открытый клапан

switch_reversed01 — наше реверсивное реле, если у него состояние включается, то switch.prise02_relay — выключается, если состояние выключается то switch.prise02_relay — включается. И в интеграции generic_thermostat нам надо заменить наше реле switch.prise02_relay на созданную интеграцию switch_reversed01. Необходимо учесть, что switch_reversed01 это всего лишь шаблон, чтобы он стал переключателем надо в начало добавить switch. и получится switch.switch_reversed01

Код нашего термостата будет выглядеть так:

climate:
  - platform: generic_thermostat
    unique_id: termostat01
    name: Salon
    heater: switch.switch_reversed01
    target_sensor: sensor.sensor01_temperaturee

где мы заменили наше физическое реле switch.prise02_relay на наше реверсивное виртуальное реле switch.switch_reversed01

Сохраняем файл configuration.yaml и перезагружаем Home Assistant и добавляем наш термостат в Lovelace интерфейс. Вот наш термостат:

Сейчас термостат в режиме Обогрев, посмотрим статус нашего реле

Как видно оно выключено, то есть питание на нормально открытый клапан не подается и клапан открыт и батарея нагревается. Таким образом я заменил термоголовку на батарейках которую постоянно закрывали одеждой  в результате чего была не правильная температура.

 

Home Assistant. Термостат из датчика температуры и нормально открытого клапана.

Навигация по записям