Для решения бытовых задач я купил супер-дешевые устройства Xiaomi для домашней автоматизации. В минимальный набор должен входить Gateway, который уже умеет соединяться по протоколу zigbee с остальными устройствами Xiaomi. По сравнению с zigbee хабами, например, от samsung, это очень недорогое решение.
Устройства столь же великолепны и безпроблемны, сколь ужасен софт для них от Xiaomi. Он в существенной степени не локализован, так что вы будете постоянно видеть половину экрана в иероглифах, он неудобен и малофункционален, и он медленно работает (ну в чем смысл внопки в смартфоне, включающей свет, если она вначале “открывается” примерно 15 секунд с надписью “инициализация zigbee — проще дойти до выключателя на стене)
Я попробовал OpenHAB, но мне кажется, что они сами не понимают, куда развиваются. Дикое месиво между конфигами и малофункциональным UI, в котором невозможно разобраться, не прочитав вначале инструкцию по его использованию.
Также посмотрел на Domoticz но он показался мне не очень развивающимся и есть риск что его скоро совсем забросят.
Добавляем Xiaomi MiHome устройства в Home Assistant. Ищем заветные token и key.
Home assistant
И тут на глаза попался Home assistant.
С очень внятными инструкциями, как установить их docker-контейнер homeassistant/home-assistant на NAS Synology.
Единственно, они почему-то не настаивают на смене пароля доступа через http. Чтобы установить свой пароль, надо добавить в configuration.yaml :
http: # Secrets are defined in the file secrets.yaml api_password: !secret http_password
И в файле secrets.yaml указать пароль в:
http_password:
Xiaomi
Для управления устройставми, подключенными к Xiaomi шлюзу надо добавить его ключ в конфигурацию home assistant configuration.yaml :
xiaomi_aqara: gateways: — mac: key:
Получение ключа — нетривиальные манипуляции с китайским приложением MiHome, описанные у коллег из Domoticz.
Внятные имена вместо идентификаторов можно настроить в файле customize.yaml
Источник: sorokin.engineer
Про умный дом. Часть последняя. Home Assistant
Настал этот момент, и я готов рассказать про свои эксперименты с системой умного дома на базе Home Assistant.
Приход к текущей конфигурации контроллера умного дома (далее — Home Assistant, т.к. реально в моем варианте умного там очень мало) — результат эволюции, начавшийся с аппаратного контроллера Vera Plus (см предыдущие заметки).
На данный момент мой Home Assistant выполняет ровно те задачи, которые я хотел изначально, даже чуть больше, а именно:
— мониторинг температуры и влажности (текущая и статистическая информация) с беспроводных датчиков Zigbee из экосистемы Aqara/Xiaomi;
— мониторинг протечки в районе посудомойки;
— автоматизация света (лампы Yeelight) на лестнице по датчику движения (Xiaomi);
— уведомления автоматические и по запросу в Telegramm и на Email;
Управление роботом пылесосом из Home Assistant.
— простая настройка и простой интерфейс;
— простое резервное копирование конфигурации.
Работает все локально, от удаленных серверов не зависит.
Однажды я нашел классного дядьку Alex Kvazis, который в своем Youtube-канале (Ссылка прямо на его плейлист с уроками по Home Assistant) доходчиво и просто рассказывал как устанавливать и настраивать Home Assistant.
Его вариант предполагал использование Raspberry Pi 3b — маленькая такая коробочка, с достаточной производительностью. Мне это понравилось, я купил на авите этот микрокомп (2500-3000 р), нашел у себя MicroSD карту (на Raspberry Pi нет хранилища), и — настроил Home Assistant. Выписал из китая платку-контроллер Zigbee с программатором, датчики уже были, и — вот они, первые показания с датчиков.
Минимальный комплект для построения контроллера умного дома.
Спустя месяца 2 Home Assistant накрылся медным тазом — выяснилось, что карта памяти жестко умерла, актуальных конфигов не сохранилось.
Что ж, наверное карта была не очень (ну, правда — нашел самую дешманскую на 16 Гб у себя в барахле), вытащил из камеры самсунговскую на 32 Гб, и повторно развернул Home Assistant, параллельно записав все шаги — на всякий случай.
Стоит заметить, что Alex Kvazis в своих заметках исповедует наиболее сложный вариант установки (hass.io+portainer+docker, причем случись что с docker — через операционку добраться до данных мне не удалось) и настройки. Например, весь интерфейс он пишет руками (ну, в Home Assistant интерфейс с теми данными, которые вы хотите отображать может быть настроен одним из 2х вариантов — либо в виде драг-н-дроп, либо правкой файла в формате YAML, имхо, результат одинаковый, но во втором случае геммороя раз в 10 больше).
Итак, спустя еще 2 месяца Home Assistant снова умер — часть контейнеров Docker запускаются, но сам Home Assistant нет. И снова какая-то беда с картой. Надо что-то радикально менять.
К этому моменту времени я уже обзавелся домашними серверами виртуализации, в качестве гипервизора выбор пал на Oracle VirtualBox (потому, что потом я смогу внутрь виртуальной машины запустить наш Zigbee USB-адаптер).
По инструкции из документации Home Assistant поставил Debian (сначала, конечно поставил Ubuntu Server, но инсталляционный файл HomeAssistant проверяет на что его пытаются поставить, и если не Debian — не хочет работать) и, собственно, сам HomeAssistant.
Дальше — установка интеграций (в терминах Home Assistant. Грубо говоря — это модули для взаимодействия с чем бы то ни было) для работы Zigbee устройств, добавление датчиков.
В этот раз решил интерфейс редактировать штатными средствами — это оказалось легко и по возможностям так же.
Home Assistant забавный — он умеет сам находить доступные для интеграции устройства в сети. Например, он нашел роутер TP-Link Archer A9 по UPnP и я смог добавить график загрузки канала (что интересно, в этом роутере нет поддержи SNMP), еще он нашел Smart TV Samsung и у меня появились 2 сомнительные возможности — получать информацию о том, когда ТВ был включен и выключен, и принудительно например его выключать (может что-то еще — мне было не интересно и я не разбирался).
Итак, спустя некоторое время я добавил свои датчики, настроил уведомления на Email об обнаружении факта протечки и ежедневном статусе. Тут такой полукостыль получился для GMail (отправка писем осуществляется через аккаунт gmail) — пришлось включить в настройках GMail отправку писем по SMTP, а дальше выяснилось, что если в течении примерно 20 дней письма не отправлялись по этому протоколу, то GMail отключает эту возможность. Так что пришлось сделать периодическую отправку условно нужной информации.
Полный размер
Карта Zigbee-сети, сама строит.
Кстати, на карте устройств видно, что часть датчиков присоединены к умной розетке. Это особенность Zigbee-сети — она самоорганизующаяся, устройства, которые подключаются к 220В являются не только датчиками/исполнительными устройствами, но и Zigbee-коммутаторами, и подключение конечных Zigbee устройств (работающих от батарейки) осуществляется не только к Zigbee-контроллеру, но и к коммутатору, причем автоматически.
Дальше было добавлено взаимодействие с Telegram, тут тоже все просто: средствами Телеграмм создаете бота, получаете его ID, потом узнаете свой ID и эти два идентификатора используете для отправки. Правда, легко.
Как-то так приходит. Ну, впрочем — как настроил, так и приходит. В телеграм еще приходил факт запуска сервера, когда он был на RasPi — удобно мониторить факты отключения эл-ва.
Следующим шагом, уже по фану, было добавление в интерфейс изображения с IP камеры, Веб-страничек с графиками из системы мониторинга сети PRTG и веб-странички с данными метеорадаров (удобно смотреть приближающиеся осадки).
Самым долгим оказалось прикручивание света и вот почему. В свое время для подсветки лестницы и площадки 2го этажа были куплены 3 лампы: 1 (для площадки) лампа Yeelight Color Bulb и 2 Xiaomi Smart Bulb или как-то так. Все они WiFiные, первая настраивается через приложение Yeelight, две другие — через Mi Smart Home.
Выяснилось, что просто так лампочки Xiaomi не прикрутить — там нужно вытаскивать токены и как-то дальше их использовать в каких-то интеграциях. С лампой Yeelight тоже было не просто, но вроде проще — для интеграции этой лампы в Home Assistant нужно было поставить интеграцию Yeelight и указать некий идентификатор безопасности, указанный не то на самой лампе, не то на коробке от нее. В общем тогда (полгода назад) — все это отложилось.
Сейчас же, разбираясь со светом, я внезапно обнаружил, что лампа Yeelight добавилась автоматически без дополнительной информации.
Воодушевленный этим фактом, я поменял две другие лампы также на Yeelight, они так же добавились на ура.
Дальше — пара часов времени на написание скрипта автоматизации (причем делал это дома, на тестовых переключателях — просто добавил переменные-бинарные сенсоры и по ним написал автоматизацию, а позже на даче — просто перенес скрипт и поменял искусственные сенсоры на физические и лампочки).
В итоге — и лампочки заработали. Заодно сделал костыль — у меня была еще беспроводная кнопка (от комплекта Xiaomi), написал для нее автоматизацию, чтобы включала или выключала весь свет.
Тут надо сделать пояснение — когда отключается, а потом включается электричество, даже выключенные (программно) лампочки включаются. И, чтобы иметь возможность их выключить руками — будет использоваться кнопка. У Alex Kvazis есть решение — нужно отслеживать переход состояния из Undefined в On и делать им Off, надо прикрутить как-нить.
Ниже скриншоты интерфейса.
Полный размер
Первая страница, слева видно меню. По сути, нам надо конфигурировать интерфейс только первого пункта. Остальные — служебные или не интересные.
Полный размер
Это вторая вкладка — графики температур. Слева — за сутки, справа — динамика за 3-е суток. Хорошо наблюдать как падает температура в остальных комнатах, когда начали топить печку.
Полный размер
Гифка с сайта meteoinfo.ru/radanim. Полезная, рекомендую. Раньше можно было в режиме почти реального времени смотреть данные долгопрудненского МРЛ, он охватывает примерно радиус 50-70 км вокруг себя, но в Росгидромете жмоты и прикрыли эту лавочку.
Полный размер
HTMLка из PRTG с загрузкой сетевых интерфейсов роутера и точки доступа.
Полный размер
Служебная страничка — слева те самые бинарные сенсоры, которые я использовал для теста и написания автоматизации света; справа внизу — реальные датчики и лампочки. Уникальный момент — кто-то прошел, лампочки включились, таймер тикает.
Про редактирование — в Home Assistant есть встроенный редактор конфигурационных файлов. Вот вам пример как выглядит автоматизация включения и выключения подсветки лестницы. В общих чертах — если сработал датчик движения — запускаем скрипт загорания (там последовательное включение трех лампочек с интервалом в секунду и запуск таймера на 3 минуты).
Если сработал таймер — запускаем скрипт затухания (также последовательно с интервалом тушим лампы и сбрасываем таймер). Все просто. Сложные называния сущностей (лампы и датчики) подсказывает редактор.
Вот такой вот редактор
И в заключение, во что это выливается по деньгам примерно:
— ноут-сервер виртуализации считаем что был изначально (0 руб), если нет — берем самый дешевый ноут с батарейкой. Хотел у отца отобрать RoverBook какого-то лохматого года — так не отдает, дескать, там (а там Linux Mint) правильная игра «Паук» =)
— Zigbee-стик+удлинитель (500+500 р = 1000 р)
— Лампочки Yeelight Smart LED Bulb W3(White) YLDP007 одноцветные (3*750р = 2250 р)
— Датчики движения Xiaomi YTC4041GL (YTC4041GL/X23953) (2*920 р = 1840 р)
— Датчик температуры и влажности Xiaomi Mi Temperature and Humidity Sensor (5*940Р = 4700 р)
— Датчик протечки Aqara Water Leak Sensor (1400 р)
— Беспроводная кнопка Xiaomi Mi Smart Home Wireless Switch Key (WXKG01LM) (820 р)
— Умная розетка Xiaomi Aqara Smart Plug (1500 р)
Итого 13 510 р. На самом деле потрачено было меньше, т.к. часть устройств была куплена комплектом, часть на алишке.
Источник: www.drive2.ru
xiaomi mi purifier 2s и Home assistant
Для борьбы с загрязнением воздуха пыльцой деревьев и прочим прикупил коробку с вентилятором хепа/угольным фильтром, показометром цифры 1 на экране и зеленой полосочкой.
Из плюсов:
— цена втрое ниже «аналогов»;
— wifi;
— приложение из которого можно управлять режимом работы, скоростью кручения вентилятора в «favorite» режиме, гасить экран, выключать пищалку и отключать органы управления в детском режиме;
— приложение работает через «облако», и устройства доступны отовсюду.
Минусы:
— китайская вилка, магазин положил переходник немаленького размера;
— приложение работает через «облако», и когда нибудь оно закончится;
— индикатор качества воздуха показывает всегда (первые минут 45 работы показывал 100+) 1.
Смрад-составляющая устройства оказала решающий вес в решении о покупке. Разного рода строители «умных домов» очень любят устройства экосистемы ксиоме за их «легкость» интеграции и невысокую цену. По способу взаимодействия с внешним миром бывают wifi и Zig-Bee устройства — тут WiFi
Про подключение этого устройства к home assistant и пойдет речь. Не все оказалось так «просто».
После включения в сеть устройство поднимает wifi сетку. Приложение (Mi home), подключается к этой сетке отдает ему параметры домашнего wifi и получает от него токен. Для успешной регистрации устройства оно должно быть с телефоном в одной сети.
В приложении необходимо указать «регион» при регистрации в котором оно и будет разрешать добавлять устройства одобренные производителем для региона. Я зарегистрировал в Китае. В регионе Россия оно тоже было.
Полезная информация о подключении размещена на сайте HA
Для подключения к HA, помимо прочего, необходимо получить с устройства токен. В мануале по получению приводится ссылка для пылесоса
Варианты получения токена следующие:
— Выковырять из лога древнего приложения (версии 5.4.49) которое сохраняло токены в логе. Не пробовал, надеялся на следующий способ.
— MIIO COMMAND LINE TOOL. Раскурить node-js, посредством npm поставить пакет miio
и командой miio discover наивно ожидать ответа с токеном. Не работает. На «новом» устройстве отдает вот так (звездочки моих рук дело)
Device ID: 13*****50 Model info: zhimi.airpurifier.ma2 Address: 192.168.13.1 Token: 43a4f4d53df****************7e9da via auto-token Support: At least basic
“via auto-token” как бы намекает что это что-то не настоящее. И после инициализации этот токен меняется.
На проинициализированном устройстве токен не отдается в эфир.
— Получить токен из БД приложения. Путь получения зависит от используемой ОС (windows, linux, andorid, ios) но суть примерно одна — ставим приложение, синхронизируем с учеткой, делаем бекап через adb и стягиваем базу, с помощью приложения/запроса к sqlite3 выдергиваем токен.
Но и тут есть нюансы. Приложение надо не очень новое, т.к. новое не хранит токены в базе. Ну и пляски вокруг режима разработчика, adb и вот это вот все.
Есть мнение, что «альтернативное» приложение MiHome показывает токены сразу в информации «об устройстве». Но это еще хуже китайского облака.
После указания добытого токена в конфиге в HA появляется «вентилятор». Из органов управления у него только изменение режим работы. Через sensor template вытаскивается температура и влажность.
Атрибуты
speed: Auto
speed_list: Auto,Silent,Favorite,Idle
model: zhimi.airpurifier.ma2
temperature: 25
humidity: 57
aqi: 1
mode: auto
filter_hours_used: 198
filter_life_remaining: 94
favorite_level: 8
child_lock: false
led: true
motor_speed: 347
average_aqi: 2
learn_mode: false
extra_features: 0
turbo_mode_supported: false
button_pressed: power
purify_volume: 20502
sleep_time: 1221
sleep_mode_learn_count: 7
auto_detect: null
use_time: 714900
buzzer: false
led_brightness: null
sleep_mode: silent
friendly_name: Living room purifier
supported_features: 1
Картиночки в HA
В целом ничто сложного — паять/опиливать/прошивать ничто не надо. Подключенное устройство раз в минуту отдает температуру/влажность. Относительно сразу реагирует на изменение режима работы.
Источник: koolru.livejournal.com