Беспроводные Устройства Xiaomi В Умном Доме Iobroker

Приветствую всех любителей домашней автоматизации.

Решил поделиться опытом использования беспроводных устройств Xiaomi с интерфейсом ZigBee. Честно говоря, я против использования любых беспроводных устройств в любой автоматизации, от серьезных систем управления технологическими процессами крупных объектов до мелкой автоматики типа охранно-пожарной сигнализации или умного дома, но.

Решения Xiaomi подкупали своей невысокой ценой.

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

Этот пост следует воспринимать как пошаговую инструкцию по интеграции устройств ZigBee в инфраструктуру умного дома.

Описанное здесь ни в коем случае не является аксиомой и можно найти множество других способов подключения устройств ZigBee. Если еще пропустить подробное описание, то может сложиться впечатление о сложности или простоте объединения устройств разных производителей в одну локальную платформу на примере ZigBee и ioBroker (об этом позже).

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

Если вы мне интересны, то прошу под кат. По словам производителя Xiaomi, пользователи должны использовать родное приложение с облачным подключением и шлюзом Wi-Fi для устройств ZigBee. Однако давно известен способ активации режима разработчика в приложении для получения управляющего токена.

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

Михоум , который входит в состав ioBroker. ioBroker — открытая платформа для Интернета вещей, в том числе для построения систем умного дома.

Что такое ioBroker можно прочитать на предыдущей странице статья .

Теперь мой умный дом работает на плате Cubietruck ARM с некоторыми аксессуарами в виде жесткого диска емкостью 80 ГБ, аккумулятора емкостью 5000 мАч, 1-проводного USB-мастера и преобразователя USB-RS485 для опроса устройств по протоколу Modbus. На жёсткий диск устанавливается ОС Armbian с перенесенным корневым разделом; на карте памяти microSD остается только загрузчик.

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

На тот момент единственной возможностью их интеграции был драйвер Михоум о чем говорилось выше.



драйвер mihome

Добавить драйвер в систему очень просто; вам просто нужно нажать на кнопку «+» в списке доступных драйверов и наблюдать за процессом установки.



Беспроводные устройства Xiaomi в умном доме ioBroker

Я не буду описывать установку и первоначальную настройку родного приложения Android Mi Home, вы можете посмотреть на странице github драйверы или в Интернете.

Итак, режим разработчика активирован, токен получен, настраиваем адаптер mihome, сохраняем его и запускаем, если он еще не запускался.



Беспроводные устройства Xiaomi в умном доме ioBroker

Шлюз Xiaomi и устройства, подключенные в приложении Mi Home, должны появиться в дереве объектов.



Беспроводные устройства Xiaomi в умном доме ioBroker

Далее вы можете настроить вновь созданные объекты.

Например, хранение истории датчиков температуры и влажности.

Я использую драйвер SQL, настроенный для базы данных SQLite для хранения исторических данных.



Беспроводные устройства Xiaomi в умном доме ioBroker

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

На вкладке «Настройки» у меня активировано сохранение истории по датчикам — меняются только переменные.

Другие настройки:

  • минимальный интервал 10 секунд - если переменная будет меняться чаще, запись в базе будет игнорироваться
  • запись значений каждые 300 секунд (5 минут) — если переменная не меняется более 5 минут, текущее значение все равно будет записано в базу данных
  • тип значения — число
  • срок годности - 1 год


Беспроводные устройства Xiaomi в умном доме ioBroker

Добавление новых устройств происходит через родное приложение.

Те.

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

водитель зигби

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

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

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

Плюс меня не давала покоя мысль, что мои данные куда-то утекают, где-то обрабатываются и хранятся.

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

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

CC25xx от ТИ.

Вы можете купить готовые модули ZigBee с USB-подключением и встроенной антенной, а также более дорогие и серьезные модели: с внешней антенной, усилителем, подключением по UART. Для работы с драйвером нужно просто сменить прошивку.

Таким образом, получается, что для работы этому драйверу не требуется дорогостоящий шлюз или сети Wi-Fi. «Точкой входа» является координатор — устройство на базе микросхемы CC25xx со специальной прошивкой.

Через координатор происходит прямая связь между zigbee-устройствами и системой «Умный дом», а также привязка новых устройств.

В качестве координатора я использую готовую плату на базе чипа CC2530 с внешней антенной, которую подключаю к серверу по UART. Для прошивки устройства я приобрел специальный отладчик SmartRF04EB, порт microUSB которого подключил к компьютеру, и подключил модуль ZigBee с помощью проводки для отладки согласно схеме:

СС2530 Плата SmartRF04EB
P22 ОКРУГ КОЛУМБИЯ
P21 ДД
РСТ ПЕРЕЗАГРУЗИТЬ
Земля Земля
ВКК 3,3 В


Беспроводные устройства Xiaomi в умном доме ioBroker

На странице github проект, скачиваем прошивку (для данного устройства файл называется CC2530ZNP-Pro-Secure_LinkKeyJoin.hex) и программу прошивки (флеш-программатор), после установки которой в систему добавляются необходимые драйвера.

При подключении платы отладчика к USB-порту компьютера программа сразу отобразит подключенное устройство.

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



Беспроводные устройства Xiaomi в умном доме ioBroker

Модуль ZigBee через порты P03(Rx) и P02(Tx) подключается к UART4 (в ОС как ttyS4) платы cubietruck, питание 3V3, GND выведен на соседние пины.

Для стабильной работы еще нужно подтянуть к земле порты P20, P4, P5 самого координатора.

Как я писал выше, я использую ОС Armbian, порт UART активируется очень просто, с помощью команды Armbian-конфигурация В главе Система Аппаратное обеспечение необходимо активировать нужный порт и перезагрузить систему.



Беспроводные устройства Xiaomi в умном доме ioBroker

Драйвер zigbee добавляется из админки в один клик.



Беспроводные устройства Xiaomi в умном доме ioBroker

В моем случае координатор подключен к порту /dev/ttyS4 (как я писал выше), укажите это в настройках.



Беспроводные устройства Xiaomi в умном доме ioBroker

Остальные настройки можно оставить по умолчанию.

После первого запуска драйвера необходимо выполнить сопряжение (добавление) устройств.

Полная инструкция на github , сопряжение через этот драйвер немного сложнее, чем через родное приложение, но у меня проблем не возникло.

Итак, например, добавим кнопку Xiaomi (серия Mijia), для этого нажмите зеленую кнопку в настройках драйвера и, следуя инструкциям, сначала зажмите скрепкой кнопку сопряжения на задней стороне, пока не загорится светодиод. начинает мигать, далее нажимаем эту кнопку примерно раз в 2 секунды, видим ход сопряжения.



Беспроводные устройства Xiaomi в умном доме ioBroker

Квартира у меня небольшая, связь со всеми устройствами стабильная, даже с датчиком открытия двери на лестничной площадке (железобетонная стена 100мм и расстояние 5м по прямой).

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

Сигнал от слабого датчика, который также находился на улице, не дошел до шкафа автоматики.

Проблему решается просто — нужно добавить роутер в сеть ZigBee и разместить его поближе к датчику.

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

Мне не хотелось покупать дорогую розетку или управляемую лампочку только для того, чтобы «переслать» данные с датчика на улице.

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

В результате я добавил роутер на базе чипа CC2531 с USB-подключением.

Подробно останавливаться на процессе прошивки я не буду; схему и сам файл прошивки можно найти на странице github проект. Поскольку связи с модулем через USB-порт по сути нет, я временно подключил его к зарядному устройству с USB-портом и воткнул в розетку на кухне.

В ближайшее время планирую разместить его стационарно в обычном здании на лоджии и с нормальным питанием от домашнего ИБП.



Беспроводные устройства Xiaomi в умном доме ioBroker

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



Беспроводные устройства Xiaomi в умном доме ioBroker

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

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

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



Беспроводные устройства Xiaomi в умном доме ioBroker

Убедимся, что датчик подключен правильно – посмотрим на карту сети.



Беспроводные устройства Xiaomi в умном доме ioBroker

На карте показаны линии интерфейса между устройствами с указанием качества сигнала между сегментами сети.

Как я писал выше, у меня небольшая однокомнатная квартира 35 кв.

м.

, поэтому карта довольно скромная.

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



Беспроводные устройства Xiaomi в умном доме ioBroker



Беспроводные устройства Xiaomi в умном доме ioBroker



Беспроводные устройства Xiaomi в умном доме ioBroker

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



Материал драйвера

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

У меня есть большой проект в драйвере VIS, который существует в нескольких версиях для разных разрешений, но материала там достаточно для отдельной статьи.

Возможно, она будет следующей.

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

Установка как обычно в пару кликов.

Плитки интерфейса отображают данные на основе настроек категории, которые добавляются в одноименном окне администрирования интерфейса.

Список категорий ограничен только воображением; Я использую схему «комната-функция», и группировка происходит по ним.

Добавлены все помещения (кухня, коридор, комната, балкон и т.д.) и функции (освещение, датчики, системы и т.д.).



Беспроводные устройства Xiaomi в умном доме ioBroker

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

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

Беспроводные устройства Xiaomi в умном доме ioBroker

На основании этих настроек плитка отобразит данные на экране, появится иконка и будет доступно управление объектами определенного типа.

Пример 1. Отображение всей информации по одной категории – функции.

Освещение по всей квартире.



Беспроводные устройства Xiaomi в умном доме ioBroker

Пример 2. Отображает всю информацию о номере - Ванная комната.



Беспроводные устройства Xiaomi в умном доме ioBroker

Пример 3. Напряжение и уровень разряда аккумулятора всех беспроводных устройств Xiaomi.

Беспроводные устройства Xiaomi в умном доме ioBroker

Этот драйвер у меня работает для локального управления системой с мобильного телефона или стационарного планшета на стене.

Иногда подключаюсь через VPN. Для удаленного управления и просмотра состояний и получения уведомлений я использую драйвер Telegram.

Драйвер телеграммы

Я не буду описывать установку; сразу пробежимся по настройкам.

Я использую режим работы через периодический опрос (по умолчанию 300мс) и подключение через прокси-сервер.

Чтобы получить токен, вам нужно немного «поговорить» с создателем ботов — BotFather. Процесс прост — найдите этого бота, дайте команду на создание нового, укажите его уникальное имя и свой ключ, укажите его в настройках драйвера и в целях безопасности обязательно укажите «приветственный» пароль.

Ваш бот спросит об этом при общении с новым пользователем.



Беспроводные устройства Xiaomi в умном доме ioBroker

Теперь вам нужно настроить кейсы общения через бота.

Для этого вы можете использовать драйвер text2command или JavaScript. Исторически я использую JavaScript как в виде текста, так и в блоках Blockly. Установка JS-драйвера не должна вызвать затруднений; в этом случае настройка не требуется.

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



Беспроводные устройства Xiaomi в умном доме ioBroker

Пример 1. Оповещения.

Для начала попробуем отправить уведомление об открытии, например, входной двери.

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

Давайте создадим новый скрипт в общей группе.



Беспроводные устройства Xiaomi в умном доме ioBroker

Укажем, что будет «рисоваться» блочно и назовем это «telegram_bot».



Беспроводные устройства Xiaomi в умном доме ioBroker

В группе «События» возьмите блок реакции на изменение переменной и перетащите его на рабочее поле.



Беспроводные устройства Xiaomi в умном доме ioBroker

Далее выбираем ID объекта, на который подписываемся, вставляем проверку объекта с помощью «if» — «иначе если» на значение true/false. Результат должен быть примерно таким.



Беспроводные устройства Xiaomi в умном доме ioBroker

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



Беспроводные устройства Xiaomi в умном доме ioBroker

Пример 2. Управление освещением через меню.

Более сложный пример, давайте управлять освещением с помощью кнопок меню в телеграмме.

Здесь вам придется немного заняться кодингом, т.е.

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

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

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

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

Беспроводные устройства Xiaomi в умном доме ioBroker



Заключение

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

На данный момент моя система умного дома на базе ioBroker работает уже 4 года и я ею вполне доволен.

Помимо ZigBee к нему также подключено несколько самодельных контроллеров по MQTT и HTTP для управления освещением, вентиляцией и другими системами, сеть датчиков температуры по 1-проводной шине, устройство контроля параметров электросети по шине RS485. и протокол modbus RTU и многое другое.

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

Оставляйте свои предложения в комментариях, которые помогут мне определиться с темой следующей статьи.

Теги: #Сделай сам или сделай сам #Интернет вещей #Умный дом #JavaScript #zigbee #telegram bot #iobroker #iobroker

Вместе с данным постом часто просматривают: