Статья

Приручи Home Assistant. Климат

Оглавление

БудильникСигнализация

Визуальное представление

В наличии:

Обычная квартираИнтеграция zigbee2mqttВ качестве координатора Conbee 2Управляемые термоголовки Eurotronic Spirit ZigbeeДатчики температуры/влажности MiДоработанный клапан приточной вентиляции от застройщика, в моем случае - Vortice Vort QuadroУвлажнитель MI Smart Antibacterial Humidifier

Задача

Точный климат контроль по всей квартире

Адаптивный климат-контроль

На каждой батареи своя термоголовка, она имеет встроенный датчик температуры, который, к слову говоря, не показывает реальных значений комнат. Даже если указать значение калибровки, оно все равно будет сильно отставать в виду расположения термоголовки - непосредственная близость к батареи, плотные шторы. Поэтому термоголовки и их управление мы привяжем к датчикам Mi.
Проветривание в течении дняПоддержание комфортной влажности в помещениях

Обзор карточек

Сам увлажнитель подключен через кастомную интеграцию.

Полное функциональное управление.

Карточка отображения также кастомная.

Раздельное управление термоголовками, кастом.

Кастомная карточка.

По сенсорам солнца отображается восход и заход. Если наводить курсор, будет отображать данные на определенное время.

Можно увеличить и двигать.

Конфиг карточки

type: 'custom:config-template-card' entities: - sensor.sunrise - sensor.sunset card: type: 'custom:apexcharts-card' header: show: true show_states: true colorize_states: true title: Показатели span: start: day graph_span: 24h all_series_config: stroke_width: 2 extend_to_end: false series: - entity: sensor.mi_climate_room_temperature group_by: func: raw duration: 30min stroke_width: 2 name: Температура color_threshold: - value: 25 color: blue opacity: 1 - value: 26 color: green - value: 27 color: red - entity: sensor.mi_climate_room_humidity group_by: func: raw duration: 30min stroke_width: 2 name: Влажность y_axis_precision: 0 apex_config: annotations: xaxis: - x: '$' label: text: ☼ borderWidth: 0 style: background: '#0000' - x: '$' label: text: ☾ borderWidth: 0 style: background: '#0000' tooltip: x: format: 'dddd dd MMM - HH:mm' xaxis: tooltip: enabled: false legend: show: false grid: borderColor: '#7B7B7B' chart: foreColor: white zoom: type: x enabled: true autoScaleYaxis: true toolbar: show: true autoSelected: zoom tools: zoom: true zoomin: false zoomout: false pan: true reset: true

Доработка клапана приточной вентиляции

Используется серво, подключенный к Wemos D1 Mini. Прошивка собрана через ESPHome. Можно и Tasmota собрать, но использовать неудобно, калибровать проблемно. Цена вопроса 300 руб.

Конфиг и автоматизация для управления термоголовками

#Добавляем ползунок установки температуры input_number: thermostats_adaptive: name: Температура icon: mdi:thermometer-lines initial: 25 min: 20 max: 27 step: 0.5 #Переключатель, выключатель адаптивного управления input_boolean: thermostats_adaptive: name: Адаптивное управление icon: mdi:home-thermometer-outline #Сенсор целевого значения для термоголовок sensor: - platform: template sensors: thermostat_adaptive_target: friendly_name: Термостаты. Целевое значение адаптив. value_template: "{{ state_attr('climate.thermostat_room', 'current_temperature') }}" #Сенсор отслеживающий превышение или понижение - platform: template sensors: thermostat_adaptive_change_temp: friendly_name: Термостаты. Температура изменение. value_template: > {% if states('input_number.thermostats_adaptive_testtemp') | float < states("input_number.thermostats_adaptive") | float -%} up {% else %} down {% endif %} #Сенсор для отображения температуры с датчиков термоголовок - platform: template sensors: termostat_room_current_temperature: friendly_name: Термостат комната. Текущая температура. value_template: "{{ state_attr('climate.thermostat_2', 'current_temperature') }}" unit_of_measurement: '°C' - platform: template sensors: termostat_kitchen_current_temperature: friendly_name: Термостат кухня. Текущая температура. value_template: "{{ state_attr('climate.thermostat_3', 'current_temperature') }}" unit_of_measurement: '°C' automation: #Включение адаптивного управления при старте HA - alias: Термостаты. Адаптивное управление включение. trigger: - platform: state entity_id: input_boolean.thermostats_adaptive to: "on" - platform: homeassistant event: start action: service: input_number.set_value entity_id: input_number.thermostats_adaptive data: value: "{{ states('sensor.thermostat_adaptive_target') }}" #Указание целевой температуры для термоголовок - alias: Термостаты. Адаптивное управление. trigger: #Срабатывает при превышении или понижении # - platform: state # entity_id: sensor.thermostat_adaptive_change_temp # to: "up" # - platform: state # entity_id: sensor.thermostat_adaptive_change_temp # to: "down" #или проверять каждые 30 минут - platform: time_pattern minutes: "/30" condition: condition: state entity_id: input_boolean.thermostats_adaptive state: 'on' action: - service: climate.set_temperature entity_id: climate.thermostat_room data_template: temperature: > #если температыра с датчика Mi недостаточна, давать команду тероголовке увеличить на 1 градус. {% if states('sensor.mi_climate_room_temperature') | float < states("input_number.thermostats_adaptive") | float -%} {{ states('sensor.thermostat_adaptive_target') | float 1 }} {% else %} #если температыра с датчика Mi превышает, давать команду тероголовке увеличить на 1 градус. {{ states('sensor.thermostat_adaptive_target') | float - 2 }} {% endif %} - service: climate.set_temperature entity_id: climate.thermostat_kitchen data_template: temperature: > {% if states('sensor.mi_climate_room_temperature') | float < states("input_number.thermostats_adaptive") | float -%} {{ states('sensor.thermostat_adaptive_target') | float 1 }} {% else %} {{ states('sensor.thermostat_adaptive_target') | float - 2 }} {% endif %}

Конфиг и автоматизация для управления клапаном приточной вентиляции

input_number: servo_control: name: Клапан. Управление initial: -55 min: -55 max: 20 step: 1 mode: slider input_boolean: servo_button: name: Клапан icon: mdi:home-thermometer-outline automation: - alias: Write Servo Value to ESP trigger: platform: state entity_id: input_number.servo_control action: - service: esphome.air2_control_servo data_template: level: '{{ trigger.to_state.state | int }}' - alias: Write Servo buttom off trigger: platform: state entity_id: input_boolean.servo_button to: "off" action: - service: input_number.set_value entity_id: input_number.servo_control data: value: -55 - alias: Write Servo buttom on trigger: platform: state entity_id: input_boolean.servo_button to: "on" action: - service: input_number.set_value entity_id: input_number.servo_control data: value: 20 - alias: Write Servo Value to ESP trigger: platform: state entity_id: input_number.servo_control action: - service: esphome.air2_control_servo data_template: level: '{{ trigger.to_state.state | int }}' - alias: Write Servo Value to ESP_TEST trigger: platform: state entity_id: input_number.servo_control_calibrate action: - service: esphome.air2_control_servo data_template: level: '{{ trigger.to_state.state | int }}'

PS

Для данного решения можно применить дополнительные автоматизации:

Экономия тепла. Телефоны обитателей квартиры отслеживаются. Как только все уходят, можно убавлять целевую температуру. Или указать рабочие дни и время.Проветривание и влажность. Если вы проветриваете больше 30 минут, есть смысл выключать увлажнитель, т.к. он будет работать вхолостую.Целевая температура в помещении:


Круто! Кое что позаимствовал... Только вопрос как описаны сенсоры:

  - sensor.sunrise
- sensor.sunset

Если сансет понятно где взять то санрайз там только завтрашний.

Вот тут нет ли ошибки?

'input_number.thermostats_adaptive_testtemp'

Да, нужно подставить реальный сенсор температуры. Это виртуальный я создавал, для тестов.

Вообще, в качестве триггера хватает проверки каждые 30 мин. Эта автоматизация добавлялась для моментальной отработки в случае превышения/снижения температуры.

Отличная реализация. Скопирую себе некоторые вещи. Ещё бы добавить CO2 и кондиционер в карточку с соответствующими автоматизациями, тогда комфорт и лень будут в союзе)

кондиционера не хватает да полного климата

А можно у автора запросить конфиг всей карты увлажнителя?

Это кастомная карточка: https://github.com/artem-sedykh/mini-humidifier">

https://github.com/artem-sedykh/mini-humidifier">https://github.com/artem-sedyk...

К ней дополнительно добавлен header (фото увлажнителя).

Я бы тоже с удовольствием взглянул, у меня пока не очень получается )



Добрый день, знатоки!

У меня так и не получилось добавить Mi Smart Antibacterial Humidifier - deerma.humidifier.jsq5 (ZNJSQ01DEM)  через кастомную интеграцию https://github.com/syssi/xiaomi_airpurifier">https://github.com/syssi/xiaom... в HA.

Потратил несколько часов в итоге картина следующая (фото)

https://sprut.ai/static/media/cache/00/94/91/5/11009814/84117/1000x_image.png?1639329663" alt="1000x_image.png?1639329663" />

Помогите, пожалуйста, с советом.

Если еще актуально то я добавил такой же (

ZNJSQ01DEM

) через 

Xiaomi Miot Auto (https://github.com/al-one/hass-xiaomi-miot">https://github.com/al-one/hass...) из HACS



Вернуться назад

Устройства


Espressif Systems

wemos D1 mini

(5 отзывов)

Вернуться назад