Пару месяцев назад я писал о том, что приобрел увлажнитель воздуха 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 появляется уведомление о необходимости обслуживания устройства.
Как Вы могли заметить по тексту, убрать этот баннер можно отсканировав NFC-метку которую я наклеил сбоку устройства . Метка обычная с AliExpress. Это сделано для самоконтроля, так как были случаи когда я не менял воду и не мыл диски, а просто сбрасывал счетчик. А процедура с сканирования 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 файл со слоями включающий все состояния увлажнителя в собранном виде и со снятой верхней частью, с барабаном и без него, наполненный водой с разными уровнями воды и пустой, нуждающийся в обслуживании и в нормальном состоянии. Также сделал серое устройство для состояния недоступно и наглядное испарение для статуса включен.
Дополнительно сделал пустой (прозрачный) пиксель на заглушку.
Я немного заморочился и сделал также все состояния дисплея с уровнем влажности, режимом работы, статусом сети и состоянием уровня воды.
Уже позже я понял, что цифры на увлажнителе хорошо читаются только при большом разрешении изображения, но что сделано, то сделано.
Я подсмотрел у третьей версии устройства, что сбоку у увлажнителя есть полоска с уровнем воды. В повседневной жизни я бы на нее не смотрел, а в приложение решил добавить для наглядного отображения уровня воды.
Ну и конечно добавил состояния воды при открытой верхней части. Если добавлять изображения с барабаном, то она будет отображаться только при 100% наполненности бака.
Для удобства все элементы сохранил c общими наименованиями, чтобы было удобнее использовать в коде карточки
Разобрал по слоям все нужные на данный момент изображения и сохранил в формате PNG в папку на сервере HA по пути homeassistant/www/custom_image/xiaomi_humidifier
Загружал изображения через дополнение File editor.
Карточка в HA
В интерфейсе HA у меня реализована отдельная страница по управлению климатом в доме, там представлены карточки управления газовым котлом, кондиционером, температурой горячей воды, увлажнителем, графики и данные с датчиков температуры и влажности во всем доме и карточка увлажнителя.
При клике на нее попадаем на расширенную вкладку управления увлажнителем
При создании карточки я использовал цвета текста в виде переменных, так как в десктопной версии HA я использую светлую тему IOS Theme, а в версии для телефона (мобильное приложение HA) темную тему IOS Theme. Из-за заданных переменных цвета текста получаются инвертированными , что позволило не задавать отдельные CSS стили для устройств .
Графики
При нажатии на кнопку графиков появляются всплывающие окна с графиками влажности, температуры и уровнем воды. Для создания графиков я использовал карточку с типом custom:apexcharts-card. График достаточно гибок в настройке и позволяет задать пределы нормы влажности и температуры при которых цвет графика будет меняться. Как видно на картинке ниже при влажности
Вывел кнопки настройки работы увлажнителя в отдельный блок, управление звуком, кнопка блокировки от детей и режим воздушной сушки устройства при отсутствии воды.
Кнопка интерфейс переключает способ отображения увлажнителя на стандартный на случай если захотелось подвигать стандартным ползунком.
Код данной карточки получился довольно большой, а платформа дзен не очень приспособлена для кода, поэтому я выложу его своем телеграм канале в виде файла, вместе с графическими файлами увлажнителя.
Уважаемые читатели, если Вы увидели недочеты в статье напишите мне об этом, я только начинаю писать статьи и обратная связь для меня действительно важна.
Если вам понравилась статья прошу подписаться на канал в Дзене, а лучше подпишитесь на канал в телеграм который я только создал, так я пойму, что не просто так все это писал и это оказалось кому-то полезно :)