Подключение увлажнителя Xiaomi к home assistant

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

Задача

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

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

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

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

Увлажнитель Deerma SJS600, Xiaomi ecosystem, интеграция в Home Assistant

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

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

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

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

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

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

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

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

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

Увлажнитель Xiaomi Smartmi 2 в Home Assistant

Используется серво, подключенный к 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: «>» #Сенсор отслеживающий превышение или понижение — platform: template sensors: thermostat_adaptive_change_temp: friendly_name: Термостаты.

Температура изменение. value_template: > up down #Сенсор для отображения температуры с датчиков термоголовок — platform: template sensors: termostat_room_current_temperature: friendly_name: Термостат комната. Текущая температура. value_template: «>» unit_of_measurement: ‘°C’ — platform: template sensors: termostat_kitchen_current_temperature: friendly_name: Термостат кухня. Текущая температура. value_template: «>» 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: «>» #Указание целевой температуры для термоголовок — 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 градус. > #если температыра с датчика Mi превышает, давать команду тероголовке увеличить на 1 градус. > — service: climate.set_temperature entity_id: climate.thermostat_kitchen data_template: temperature: > > >

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

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: ‘>’ — 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: ‘>’ — 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: ‘>’

Xiaomi aiot ax3600 отзывы

PS

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

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

Источник: sprut.ai

Home Assistant: Daikin FTXB-C и Tuya IR

После состоявшегося знакомства с HA и беглого изучения его возможностей, у меня возникло серьезное желание перенести управление кондиционерами в эту систему. А обострилось это желание после того, как я уехал со всей семьей в отпуск, забыв выключить кондиционер в одной из комнат…

В наличии у меня имелось 3 кондиционера Daikin бюджетной серии FTXB-C. Никаких «умных» функций в них не предусмотрено, а поиск возможных хаков или модификаций на тот момент успеха не принес.
Штатно эти кондиционеры комплектуются вот таким пультом дистанционного управления:

Контроль работы

После случая с оставленным на 2 недели работающим кондиционером мне, прежде всего, захотелось иметь возможность определить — работает кондиционер или нет.
Решить эту проблему без серьезных денежных затрат получилось приклеив на шторки кондиционеров по самому обычному датчику-геркону Xiaomi (Door >» ac_living_room_status: device_class: power value_template: «>» ac_bedroom_status: device_class: power value_template: «>»

И автоматизации. Например, с оповещением о слишком долгой работе:

— alias: AC — long running [24h] initial_state: true trigger: platform: state entity_id: — binary_sensor.0x158d00039cf974_contact — binary_sensor.0x158d0003d54725_contact — binary_sensor.0x158d0004073b67_contact from: ‘off’ to: ‘on’ for: hours: 24 action: service: notify.telegram data_template: message: > Внимание, *>* работает больше *24* часов.

Tuya Smart Home

Следующим шагом стала реализация более-менее полноценного управление кондиционером из HA. В отсутствии вариантов управления напрямую, я решил попытать счастья с IR хабами, позволяющими эмулировать практически любой пульт ДУ.
Поиск на Алиэкспрессе выдал огромное разнообразие подобных устройств, из которых я наугад выбрал один из самых дешевых. Из коробки он работает на платформе Tuya и является братом-близнецом Умного Пульта от Яндекса.
При одинаковой начинке, устройства попадаются в разных корпусах. В моем случае это вариации на тему летающих тарелок:

Первое (и довольно продолжительное) время для управления этими устройствами я использовал родное приложение Tuya (Smart Life), в целом оно работало, но с оговоркой на пару неприятных проблем.
Первое и основное — зависимость от интернета и китайских облаков. И с этим ничего не сделать.
Вторая проблема заключалась в том, что стандартная интеграция Tuya не умеет пробрасывать в HA ни сами эти устройства, ни виртуальные кондиционеры, которые можно там создать.
Обойти эту проблему можно создав в приложении по несколько сцен для каждого из кондиционеров.
Например, у меня были сцены с режимом «Охлаждение» и температурой 23 градуса, или «Обогрев» и 25 градусов и т.д.
Были и отдельные сцены для выключения кондиционеров.
Эти сцены, в свою очередь, успешно прилетают в HA и активируя их можно тем самым менять режим работы кондиционера. Но, только на заранее собранные пресеты настроек «режим — температура», просто так изменить целевую температуру на пару градусов не получится.
В целом этот подход работал, позволяя мне в нужные моменты времени включать кондиционеры в заранее определенных режимах через HA.

ESPHome

Но мне хотелось большего, и как-то мне на глаза попалась крайне интересная статья, в которой был описан прямо мой случай — Daikin, Tuya IR Hub, Home Assistant и т.д.
Описанное там мне очень понравилось и я решил заказать себе еще один IR хаб для экспериментов по перепрошивке его в ESPHome. Как оказалось в дальнейшем, это было очень правильное решение. =)

Самым простым способом перепрошить устройство Tuya является использование tuya-convert, с его помощью можно сравнительно просто заменить прошивку прямо по воздуху, без вскрытия и паяльника.
Забегая вперед, этот инструмент с успехом перепрошил мои «старые» IR хабы. А вот с новым возникли проблемы…

Как оказалось, в последних версиях платформы Tuya были внесены изменения, которые делают невозможным использование tuya-convert для замены прошивки по воздуху. И чем новее устройство, тем выше шанс получить именно такое. Для любопытствующих, вся информация по этой проблеме собрана здесь.
К сожалению, мой новый хаб оказался как раз таким, поэтому пришлось его вскрывать.

Что такое остановить отправку карты робот пылесос Xiaomi

После вскрытия видно что хаб построен на модуле TYWE3S, фактически это вариация на тему ESP8266.
В сети достаточно подробной информации о перепрошивке подобных устройств, например здесь, здесь или здесь.
Вкратце, все сводится к пайке проводов к чипу (или к диагностическим площадкам на плате), подключению к компьютеру с использованием USB — UART адаптера и прошивке ESPHome.

После того разобрались с вопросом как шить, можно начинать эксперименты по интеграции в HA.
Моя первая попытка была с таким конфигом ESPHome:

# Переменные для использования в конфиге substitutions: board_name: smartir_04 room_name: livingroom esphome: name: $ platform: ESP8266 board: esp01_1m wifi: ssid: !secret wifi_ssid password: !secret wifi_password ap: ssid: «SmartIR_04» password: !secret wifi_fallback_ap_pass captive_portal: logger: api: password: !secret esphome_api_password ota: password: !secret esphome_api_password time: — platform: homeassistant id: homeassistant_time # Штатный светодиод статуса на GPIO4 status_led: pin: number: GPIO4 # Приемник ИК-команд на GPIO5 remote_receiver: id: rcvr pin: number: GPIO5 inverted: True dump: all # ИК-передатчик на GPIO14 remote_transmitter: pin: number: GPIO14 inverted: false carrier_duty_percent: 50% sensor: # Внешний датчик температуры из HA — platform: homeassistant name: «Current temperature» entity_id: sensor.for_esphome_temp_in_$ id: ha_temp_$ internal: true unit_of_measurement: °C accuracy_decimals: 1 — platform: wifi_signal name: $_wifi_rssi update_interval: 60s internal: false binary_sensor: — platform: status name: $_status internal: false # Кнопка на корпусе — GPIO13 — platform: gpio pin: number: GPIO13 inverted: true internal: true name: $_button id: button climate: — platform: daikin name: «Test AC» receiver_id: rcvr sensor: ha_temp_$

Самая интересная часть здесь — компонент IR Remote Climate, он позволяет создать в HA стандартную сущность Climate (кондиционеры, обогреватели и прочие климатические установки).
При этом есть возможность в качестве датчика температуры использовать любой из доступных в HA (показания внутреннего датчика кондиционера мы получить не можем), за это отвечает параметр sensor.
А также обеспечить некоторую обратную связь от родного пульта ДУ указав параметр receiver_id. Это позволит хабу ловить команды с пульта, дублировать их в эфир и отражать все изменения в HA.
В интерфейсе эту сущность можно представить в виде стандартной карточки thermostat:

В теории все очень удобно! Но в моем случае, к сожалению, не взлетело — кондиционеры не реагировали на команды с хаба, а сам хаб декодировал сигналы с родного пульта как Panasonic…
После долгих поисков и открытия issue в ESPHome, оказалось что у Daikin’а существует большое количество разных реализаций ИК протоколов для их техники (Daikin, Daikin128, Daikin152, Daikin160, Daikin2, Daikin216 и т.д.) и в моем случае протоколы в ESPHome и кондиционере не совпали.

IRremoteESP8266

Решением стало использование сторонней библиотеки IRremoteESP8266.
В результате наглого копирования чужих примеров, изучения в меру своего понимания API ESPHome и кода реализации протоколов Daikin в IRremoteESP8266, я смог добиться полноценного управления своими кондиционерами из HA.

Конфиг ESPHome у меня в итоге выглядит так:

substitutions: board_name: smartir_03 room_name: livingroom esphome: name: $ platform: ESP8266 board: esp01_1m # Здесь подключаем библиотеку IRremoteESP8266 и заголовочный файл daikin_ir.h includes: — include/daikin_ir.h libraries: — IRremoteESP8266 wifi: ssid: !secret wifi_ssid password: !secret wifi_password ap: ssid: «SmartIR_04» password: !secret wifi_fallback_ap_pass captive_portal: logger: api: password: !secret esphome_api_password ota: password: !secret esphome_api_password time: — platform: homeassistant id: homeassistant_time status_led: pin: number: GPIO4 remote_transmitter: pin: number: GPIO14 inverted: false carrier_duty_percent: 50% sensor: — platform: homeassistant name: «Current temperature» entity_id: sensor.for_esphome_temp_in_$ id: ha_temp_$ internal: true unit_of_measurement: °C accuracy_decimals: 1 — platform: wifi_signal name: $_wifi_rssi update_interval: 60s internal: false binary_sensor: — platform: status name: $_status internal: false — platform: gpio pin: number: GPIO13 inverted: true internal: true name: $_button id: button climate: — platform: custom lambda: |- auto daikinac = new DaikinAC(); # Подключение внешнего датчика температуры daikinac->set_sensor(id(ha_temp_$)); App.register_component(daikinac); return ; climates: — name: «Daikin Livingroom»

Файл daikin_ir.h можно найти у меня в git по этой ссылке. Разместить по пути ../esphome/include/daikin_ir.h.

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

Часть функций реализованных в IRremoteESP8266 я не знаю как использовать в ESPHome, за бортом остались кнопки Powerful, Econo и Comfort. Так же в этом конфиге нет приема и дублирования команд с родного пульта ДУ.
Но лично я в реальной жизни ничего из этого никогда не использовал.

Что такое alipay на часах Xiaomi mi band 6

Simple Thermostat

После некоторых экспериментов с интерфейсом, я в итоге остановился на кастомной карточке simple-thermostat. Штатный thermostat занимает много места на экране, и содержит лишнюю для меня информацию. С использованием simple-thermostat получилось компактно разместить все те режимы и функции, которыми я пользуюсь чаще всего, оставив редко используемое доступным в окне объекта кондиционера:

Пример конфигурации карточки:

— type: ‘custom:simple-thermostat’ entity: climate.daikin_nursery show_header: false decimals: 0 step_layout: row step_size: 1 hide: temperature: true sensors: — entity: binary_sensor.ac_nursery_status icon: mdi:air-filter control: _names: false hvac: _name: «Режим:» dry: false fan_only: false swing: _name: «Движение шторки:» «off»: icon: mdi:shuffle-disabled vertical: icon: mdi:shuffle

Источник: simple-ha.ru

Подключение увлажителя воздуха Venta LW25 через умную розетку TPLink HS110

Эпиграф. «Когда в руке молоток, все кажется гвоздями».

Некоторое время назад я установил систему Home Assistant. Продолжаю экспериментировать с этой штукой.

У меня уже несколько лет есть увлажнитель воздуха Venta LW25. Штука совершенно простая без всяких там Wi-Fi или ZigBee.

Есть кнопка включить-выключить и есть кнопка переключения режима. Всего есть 3 режима: слабо, средне и сильно. Это все. Очень простое и понятное в управлении устройство.

Синий круг всегда горит когда устройство включено. Горит либо цифра если устройство работает, либо треугольничек если в устройстве закончилась вода (и горит красным). Кнопка переключения режима переключает режимы по кругу, если сейчас режим 1, то нажатие на кнопку включит режим 2, если сейчас режим 2, то включится режим три, а если сейчас работает режим 3 — то нажатие на кнопку переведет устройство в режим 1.

У меня всегда включен второй режим, на третьем он слишком громко работает.

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

У меня лежала без дела умная розетка TP-Link HS110. Эта такая штукенция с WiFi. Вставляешь ее розетку, а в нее уже вставляешь устройство которым хочешь управлять (лампу, обогреватель, что-то такое). После этого можно с телефона включать-выключать устройство. Плюс, эта же розетка замеряет сколько электричества потребляет устройство.

В качестве эксперимента я подключил увлажнитель в эту умную розетку.

Никаких особенно задач я перед собой не ставил, стало интересно, есть ли в этом какой-то смысл.

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

Вот график потребления из Home Assistant:

  • Сначала был включен режим 2 (потребление около 3 ватт)
  • Потом в увлажнителе закончилась вода (около 1 ватта)
  • Я налил воду, опять включился режим 2 (3 ватта)
  • Потом я переключил увлажнитель в режим 1 (потребление чуть меньше 2 ватт)
  • Потом я включил режим 3 (6 ватт)
  • И вернул увлажнитель в обычный для него режим работы 2 (3 ватта)

Из данных розетки можно понять текущий статус увлажнителя. Для удобства я написал сенсор, который на основании данных о потреблении энергии показывает текущий статус увлажнителя. Вот фрагмент файла configuration.yaml для Ноme Assistant:

— platform: template sensors: humidifier_state: value_template: >- off 0.5 and states(«sensor.tplink4_watts») | float < 1 %>empty 1.6 and states(«sensor.tplink4_watts») | float < 2.4 %>mode_1 3 and states(«sensor.tplink4_watts») | float < 3.6 %>mode_2 5.5 and states(«sensor.tplink4_watts») | float < 6.5 %>mode_3 unsure

Вот что получилось:

В теории можно из этого сделать автоматизацию. Закончилась в увлажнителе вода — он отправляет мне сообщение что нужно долить воду. Но на практике в этом смысла не очень много: и так хорошо видно что в нем нет воды (достаточно ярко на нем горит красная лампочка).

Зато теперь есть данные о том сколько времени нужно на то чтобы он использовал всю воду. Сейчас у меня есть 2 замера. Один раз вода закончилась через 27 часов, второй раз через 30. Так что если регулярно один раз в день заливать воду, то вода в нем вообще не закончится.

Так что с помощью одной умной розетки я могу не только включать-выключать устройство, но еще и узнавать его статус. Но я не могу переключать режимы. Можно добавить еще одно устройство, штуку которая может по сигналу с сервера нажимать на кнопку и тогда все фичи устройства станут доступны для удаленного управления (еще бы повести шланг с водой, чтобы не нужно было регулярно доливать воду).

Источник: ivan.bessarabov.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
Китай Покупай