Приобрел я год назад квартиру и захотелось мне в ней сделать систему умный дом. Начал курить мануалы и смотреть видосы. Т.к. ремонт уже был сделан, то выбор пал на беспроводную систему Zigbee. Можно было сделать и на wifi датчиках, но тогда они конектились бы к одному роутеру и самые дальние из них теряли связь. Технология Zigbee решает эту проблему путём передачи сигнала через другие устройства.
Т.к. лёгких путей я не искал и готовые zigbee шлюзы не будоражили мой мозг, выбор пал мой на связку mini PC + стик SONOFF ZB Dongle-P. Заказал их у китайцев. Подождал месяц. И тут понеслось…
Приближался отопительный сезон. Для контроля температуры в квартире, первым делом решил автоматизировать котел Protherm Lynx. Начал изучать инструкцию на котел и оказалось, что к нему можно подключить термостат. Принцип работы простой. Термостат замыкает контакты — котел включается. Размыкает — котел выключается. Таким образом подключив к котлу zigbee реле мы можем управлять температурой в квартире. Снял кожух с котла и нашел заветную колодку.
Порадовало, что на этой колодке было питание 24 вольта. Подходящее реле нашлось быстро. Его я подключил по схеме.
Параллельно реле подключил еще термостат для ручного управления. Следующий этап — перевод котла в режим управления через термостат. Все делал по этому видео.
На у а дальше начал создавать автоматизации…. Первым делом создал сенсор в templates показывающий среднюю температуру в квартире.
- name: "Средняя температура"
unit_of_measurement: "°C"
state: >
{{
((
(states('sensor.0xa4c1380235cf425f_temperature') | float) +
(states('sensor.0xa4c1380235cef75e_temperature') | float) +
(states('sensor.0xa4c1380235ae34ff_temperature') | float)
)/3) | round (2)
}}
icon: >
mdi:temperature-celsius
В packages добавил следующий код.
protherm_termostat:
input_number:
hysteresis:
name: Гистерезис нагрева котла
min: 0.5
max: 2
step: 0.5
heat_off:
name: Темепратура выключения котла
min: 0
max: 30
step: 0.5
input_boolean:
manual_heat:
name: Ручное включение отоплением
icon: mdi:hand-back-left
В templates создал бинарный сенсор.
- name: "Отопление on"
state: >
{{
(states('sensor.sredniaia_temperatura') | float <= ((states('input_number.heat_off') | float) - (states('input_number.hysteresis') | float)))
and is_state('input_boolean.manual_heat', 'off')
}}
- name: "Отопление off"
state: >
{{
(states('sensor.sredniaia_temperatura') | float >= (states('input_number.heat_off') | float))
and is_state('input_boolean.manual_heat', 'off')
}}
Ну и сама автоматизация.
- alias: Включить котел
trigger:
- platform: state
entity_id:
- binary_sensor.otoplenie_on
to: 'on'
condition:
- condition: state
entity_id: switch.0x00124b00246f2949
state: 'off'
action:
- service: switch.turn_on
data:
entity_id: switch.0x00124b00246f2949
mode: single
- alias: Выключить котел
trigger:
- platform: state
entity_id:
- binary_sensor.otoplenie_off
to: 'on'
condition:
- condition: state
entity_id: switch.0x00124b00246f2949
state: 'on'
action:
- service: switch.turn_off
data:
entity_id: switch.0x00124b00246f2949
mode: single
Добавил карточку в Обзор. Получилось как-то так.
Теперь сижу довольный с телефона управляю отоплением.