Найти в Дзене
PRO УМНЫЙ ДОМ

Создание карточки управления увлажнителем Smartmi Evaporative Humidifier в Home Assistant

Оглавление

Пару месяцев назад я писал о том, что приобрел увлажнитель воздуха Smartmi Evaporative Humidifier 2 и подключил его к своему серверу Home Assistant через интеграцию Xiaomi Miot For HomeAssistant. Весь процесс локального подключения увлажнителя к серверу Home Assistant описан в предыдущей статье. Я настроил вспомогательные сенсоры и базовые автоматизации без которых не представляю работу увлажнителя, доработал карточку , а так как устройство работало достаточно стабильно, то я забыл про него и практически не заглядывал в карточку HA, но ближе к лету он стал работать меньше из-за повышения общей влажности, а я стал больше смотреть его статистику, приходилось больше лазить по пунктам меню, что меня раздражало. Это стало для меня отправной точкой к идеи создания новой карточки для HA, так как карточка которую я делал в прошлой статье перестала радовать глаз, а то что есть в HACS не удовлетворяет мои потребности.

В этой статье я опишу как я создавал уникальную карточку для увлажнителя Smartmi Evaporative Humidifier в HomeAssistant с отображением всех его состояний, включая данные с увлажнителя которые отображаются на дисплее, на боковой стороне нарисовал полоску с уровнем воды (эту идею я позаимствовал у более новой модели Evaporative Humidifier 3), а также подготовил несколько состояний, при которых необходимо обслуживание, снята крышка или увлажнитель недоступен по сети.

Немного об опыте эксплуатации

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

Про работу увлажнителя

К работе увлажнителя у меня совершенно нет претензий, свою функцию он выполняет на 100%. В зимний период времени он работал 24/7. В самые сухие периоды потреблял по 4 литра воды в день в автоматическом режиме. А обычно 8-9 литров воды в неделю. Но тут все индивидуально и зависит от множества факторов. Сейчас наступило лето и увлажнитель перестал включаться, а судя по достаточно высоким показателям влажности в доме, самое время настраивать автоматизацию по осушению воздуха на кондиционере, .

Про неудобства и сложности

Из доставленных неудобств за полгода было только то, что устройство теряло сеть. Проблема решилась настройкой на роутере Wi-Fi канала. Необходимо было убрать автоматическую смену канала и устройство перестало отваливаться.

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

Также заметил , что локальная интеграция вместо 100% отображает 125%, это я обошел созданием вспомогательного сенсора и простой математикой, а в облачной интеграции все подтягивается корректно.

Из отличий облачной и локальной есть вопросы с задержкой, локальная реже чем облачная опрашивает устройство, наверняка это можно поправить в конфиге интеграции, но для меня не критично. Так же обратил внимание на разницу атрибутов режимов работы available_modes: Auto, Low, Mid, High в облачной и available_modes: Off, Auto, Level1, Level2, Level3 в локальной интеграциях. Если будете использовать мой код карточки в облачной интеграции стоит это учесть.

Уведомления о необходимости обслуживания увлажнителя.

Про обслуживание

Согласно инструкции он нуждается в обслуживании раз в неделю. На деле облуживание заключается в мытье дисков и бачка. По факту за полгода использование я стараюсь мыть диски каждую неделю не разбирая, а промываю под проточной водой и делаю полную замену воды в поддоне, а раз в месяц или полтора полностью разбираю барабан с дисками и мою губкой используя средство для мытья посуды, хотя инструкция не рекомендует использовать химию. За полгода 1 раз перед началом летнего сезона я его пропылесосил керхером с тонкой щеткой, так как барабан который гоняет воздух был весь в пыли, предварительно прошелся внутри небольшой кисточкой. Не рекомендую мыть диски в посудомоечной машине, так как при воздействии на них повышенной температуры их ведет. На маркетплэйсах продают добавки в увлажнитель, причем на карточках товара изображен Smartmi Evaporative Humidifier и все красиво расписано, но по многочисленным отзывам становится понятно, что лучше не использовать эти средства. Химия либо портит покрытие увлажнителя либо бесполезна, а те средства которые действительно могут остановить цветение воды, могут быть опасны для здоровья.

Увлажнитель напоминает о себе когда необходима доливка воды и раз в неделю сообщает о том, что его необходимо помыть.

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

Автоматизация уведомлений
Автоматизация уведомлений

Для самоконтроля и подсчета дней когда необходимо обслуживать устройство я настроил обычный счетчик counter.uvlazhnitel_obsluzhivanie с начальным значением 7, максимальным 0 и шагом 1. К этому счетчику сделана автоматизация которая ежедневно уменьшает счетчик на 1.

А при значении счетчика 0 на главном экране HA появляется уведомление о необходимости обслуживания устройства.

-3

Как Вы могли заметить по тексту, убрать этот баннер можно отсканировав NFC-метку которую я наклеил сбоку устройства . Метка обычная с AliExpress. Это сделано для самоконтроля, так как были случаи когда я не менял воду и не мыл диски, а просто сбрасывал счетчик. А процедура с сканирования nfc-метки немного , но дисциплинирует.

nfc-метка
nfc-метка

Настроил сканирование метки не средствами HA, а через быстрые команды iPhone, так телефон не требует подтверждения при сканирование нажатием на push-уведомление и автоматизация сразу срабатывает.

Автоматизации работы увлажнителя.

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

Для этого я настроил 2 автоматизации и создал 1 вспомогательный сенсор с типом шаблон на включение при влажности меньше 5 от заданной

{{ state_attr('humidifier.zhimi_ca4_6ae1_humidifier','humidifier.target_humidity') - 5 }}

Примеры автоматизаций:

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

Включение увлажнителя
Включение увлажнителя
Выключение увлажнителя
Выключение увлажнителя
Выключение при отсутствии воды
Выключение при отсутствии воды

Автоматизация подсветки дисплея настроена на отключение с 10 вечера до 7 утра , а утром снова на включение на максимальною яркость. Приглушенную подсветку я перестал использовать за ненадобностью. Увлажнитель получает питание от сетевого фильтра TP-Link TAPO P300 на котором настроена аналогичная автоматизация по отключению подсветки кнопки сетевого фильтра.

Автоматизация подсветки
Автоматизация подсветки

Создание карточки для Home Assistant

При создании карточки я использовал следующие дополнения

Пользовательские карточки

Card-mod 3 - для применения CSS стилей для элементов

Mushroom - это коллекция карточек для пользовательского интерфейса панели управления Home Assistant.

ApexCharts Card - карточка для отображения графиков

Custom brand icons иконки различных брэндов для HA

IOS Theme - тема оформления

Интеграции

Xiaomi Miot Auto - интеграция для локального подключения устройства

Xiaomi Gateway 3 - интеграция c помощью которой можно получить токен устройства для локального управления

Browser_mod интеграция позволяющая получить доступ к браузеру, в текущей карточке применяется для создания модального окна

Все это добро я устанавливал через Hacs и не представляю уже интерфейс ha без этих дополнений.

А Интеграция Xiaomi Miiot для облачного подключения устройства доступна в стандартном репозитории

Вспомогательные сенсоры и кнопки

Для переключения интерфейса с картинки на стандартный ползунок создан переключатель:

input_boolean.uvlazhnitel_perekliuchatel_interfeisa

Для перевода уровня воды в % в литры создал вот такой сенсор:

{{ ((4000 / 100 * (states('sensor.uvlazhnitel_uroven_vody_pr') | float) / 1000 )) }}

Для вывода из атрибута заданной влажности в сенсор задал шаблон sensor.uvlazhnitel_zadannaia_vlazhnost :

{{ state_attr('humidifier.zhimi_ca4_6ae1_humidifier','humidifier.target_humidity') }}

Также режим работы вывел в отдельный сенсор sensor.uvlazhnitel_rezhim_raboty:

{{ state_attr('humidifier.zhimi_ca4_6ae1_humidifier','mode') }}

Изображения

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

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

Дополнительно сделал пустой (прозрачный) пиксель на заглушку.

-9
Все состояния увлажнителя
Все состояния увлажнителя
Дисплей со всеми значками
Дисплей со всеми значками

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

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

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

Полоска с уровнем воды
Полоска с уровнем воды

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

Бак с водой
Бак с водой

Для удобства все элементы сохранил c общими наименованиями, чтобы было удобнее использовать в коде карточки

Разобрал по слоям все нужные на данный момент изображения и сохранил в формате PNG в папку на сервере HA по пути homeassistant/www/custom_image/xiaomi_humidifier

Загружал изображения через дополнение File editor.

Карточка в HA

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

Карточка в HA
Карточка в HA

При клике на нее попадаем на расширенную вкладку управления увлажнителем

На светлом фоне десктопная версия в 2 столбика
На светлом фоне десктопная версия в 2 столбика
В мобильной версии вертикальная карточка в 1 столбик
В мобильной версии вертикальная карточка в 1 столбик

При создании карточки я использовал цвета текста в виде переменных, так как в десктопной версии HA я использую светлую тему IOS Theme, а в версии для телефона (мобильное приложение HA) темную тему IOS Theme. Из-за заданных переменных цвета текста получаются инвертированными , что позволило не задавать отдельные CSS стили для устройств .

Графики

При нажатии на кнопку графиков появляются всплывающие окна с графиками влажности, температуры и уровнем воды. Для создания графиков я использовал карточку с типом custom:apexcharts-card. График достаточно гибок в настройке и позволяет задать пределы нормы влажности и температуры при которых цвет графика будет меняться. Как видно на картинке ниже при влажности

custom:apexcharts-card
custom:apexcharts-card

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

-18

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

-19

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

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

Если вам понравилась статья прошу подписаться на канал в Дзене, а лучше подпишитесь на канал в телеграм который я только создал, так я пойму, что не просто так все это писал и это оказалось кому-то полезно :)