Xiaomi gateway 3 domoticz

Xiaomi gateway 3 domoticz

Работать с устройствами для умного дома от Xiaomi через официальное приложение Mi Home может быть не слишком удобно — не хватает гибкости настройки, расстраивает отсутствие интеграции с Apple Home, а ещё дополнительно напрягает необходимость в соединении с китайскими серверами для этих устройств. Помимо разумной паранойи (непонятно какие данные обо мне собираются и куда они уходят), есть ещё и более реальная проблема: когда РКН играл в кошки-мышки с Telegram, на несколько дней в диапазон блокировок IP попали и сервера Xiaomi, из-за чего устройства работали с перебоями, либо же не работали вовсе. В моем случае не получалось даже залогиниться в Mi Home.

Немного покопавшись в теме, в голове выстроилась следующая схема: берем Raspberry Pi (который несколько лет пылился без дела в ящике), ставим на него Homebridge, чтобы прокинуть устройства в HomeKit (и наконец-то властно воззвать к Siri), Domoticz в качестве центрального узла управления всеми умными устройствами. Наконец, соединяем Homebridge и Domoticz плагином homebridge-edomoticz.

Это довольно распространенная практика, и в сети можно найти большое количество руководств, посвященных этой связке. Если вам всё стало понятно после предыдущего абзаца, то дальше можно и не читать, а брать и делать, ничего сложного нет: всё сводится к установке нескольких пакетов, если нужны объяснения, ниже я постарался восстановить свои действия.

Предполагается, что на Raspberry Pi стоит актуальная версия Raspibian, устройство включено в домашнюю сеть, имеет статический IP-адрес, и к нему есть доступ по SSH. Версия самого устройства не имеет сильного значения, я проделываю операции на model B пятилетней давности — работает не очень быстро, но работает.

Domoticz

Установка

Запускаем скрипт установки и, по окончанию, по IP-адресу вашего Pi, на порте 8080, будет доступен веб-интерфейс.

Существуют и готовые образы ОС для Pi с предустановленным Domoticz, но этот вариант я не пробовал.

Добавляем Xiaomi Gateway

В приложении Mi Home на смартфоне заходим настройки Gateway, переходим в пункт меню About и быстро нажимаем 3-5 раз на пустом месте, после чего должны появиться дополнительные пункты меню на китайском. В одном из них будет пароль, который надо запомнить и переключатель, который нужно будет включить, если он не включен (разрешает локальный обмен данными).

Открываем веб-интерфейс Domoticz и добавляем устройство в меню Setup > Hardware, вводим произвольное имя, тип выбираем «Xiaomi Gateway», вводим его IP-адрес, ставим порт 9898 и вводим пароль из настроек. После этого в разделе Setup > Devices должны быть доступны сенсоры Gateway (каждый, как отдельное устройство) и устройства, к нему подключенные.

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

Создаем Roomplan

В конфигурации Homebridge нам потребуется указать идентификатор Roomplan. По сути это некая группа, которая объединяет устройства. Нам нужно его создать, а затем добавить в него все устройства. Делается это на вкладке Setup > More options > Plans > Roomplan. Для создания необходимо лишь указать имя (какое захочется) и добавить туда устройства из списка на той же странице, которые нужно прокинуть в Apple Home.

Создание сценариев автоматизации

После проделанных манипуляций у меня перестали работать сценарии автоматизации, заданные в Mi Home, но это уже и не потребуется, так как Domoticz предоставляет более удобный инструмент для этих целей. Он находится на вкладке Setup > More Options > Events и представляет собой простой редактор скриптов. Скрипты можно делать визуально на языке Blockly, а можно писать кодом на Lua или Python. Лично мне понравился первый вариант за его наглядность: не нужно усложнять там, где это не требуется. Перетаскиваем нужные блоки из списков слева и создаем сценарии при помощи их комбинации. После того как сценарий создан, достаточно нажать Save и он сразу начнет работать.

Homebridge

Установка

Для начала установим Node.js. У меня старенькая Raspberry Pi Model B и ей нужна версия для ARMv6, если у вас более новая версия, можно воспользоваться простым скриптом для установки:

В моём случае установка выглядела следующим образом:

Установим ещё одну зависимость:

Установим сам Homebridge через NPM:

Установим плагин для интеграции с Domoticz:

Автозапуск Homebridge

Нам необходимо, чтобы Homebridge стартовал самостоятельно, после перезагрузки Pi, поэтому нужно добавить его в автозапуск, я сделал это при помощи pm2 (менеджер процессов для Node.js), так как это самый простой (и на мой взгляд надежный) способ:

Конфигурация

/.homebridge/ в любимом текстовом редакторе создаём файл config.json :

Вставляем следующее содержимое:

Где roomid это идентификатор Roomplan, который вы создали в Domoticz и куда планируете добавлять устройства.

После этого рестартуем Homebridge и проверяем по логам, что все устройства корректно прокинулись.

Если все прошло успешно, открываем приложение Home на любом совместимом устройстве Apple и добавляем Homebridge при помощи PIN-кода, указанного в конфигурационном файле. После этого у вас должно появиться устройство Homebridge и устройства, добавленные через Domoticz.

Можно использовать Siri для управления устройствами, правда хочу сделать ремарку, что на русском языке она упорно не хочет понимать, что от нее требуется и пытается запускать приложения вместо управления домом, на английском же языке предложения вроде «Turn on light in bedroom» понимаются без проблем.

Заключение

Все это выглядит как набор костылей, но на деле работает стабильно, и в целом относится к вещам из разряда «один раз настроил и забыл» (если не требовать странного). Удобно это прежде всего тем, что не привязывает вас к конкретной экосистеме, можно покупать практически любые недорогие устройства для умного дома и интегрировать их в единую систему. Даже если решите собрать что-то свое на коленке, это без труда можно будет добавить наряду с фабричными девайсами. С системами управления тоже не возникнет проблем: надоест сидеть в инфраструктуре Apple — относительно легко можно будет переключиться на аналогичные решения от Google или Amazon.

Источник

Подключаем новый Xiaomi Gateway 3 к Home Assistant без паяльника и смс

Новый хаб от Xiaomi с поддержкой технологий Zigbee 3, Bluetooth Mesh, HomeKit и его подключение к достаточно популярной системе умного дома — Home Assistant, интересует?

Введение

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

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

Чаще всего новички выбирают устройства на технологии Wi-Fi. Ведь Wi-Fi роутер сегодня есть у всех. Умным устройством можно пользоваться сразу после покупки. Но тут есть нюанс: в количестве устройств слабость Wi-Fi. Роутеры от провайдеров в большинстве своём тот ещё хлам, способный справиться с 1-2 десятками устройств. И пять новых умных лампочек могут быть проблемой для всей сети.

Здесь выходом будет хороший двухдиапазонный роутер. Весь умный дом можно повесить на диапазон 2.4 ГГц, а мультимедиа-устройства (смартфоны, ноутбуки, телевизоры, колонки) на 5 ГГц.

Bluetooth

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

В таких случаях производители рекомендуют покупать BLE Gateway. Это устройство, которое будет посредником между Bluetooth и серверами производителя. Здесь уже далеко не все пользователи соглашаются на дополнительные траты и лишнюю железку в доме.

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

Zigbee

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

Дополнительную проблему составляет, что каждый такой Gateway поддерживает только дочерние устройства своего производителя. Купив устройства Philips Hue, IKEA, Sonoff, Xiaomi и Tuya, вы, скорее всего, должны будете докупить пять Gateway соответственно.

Эта технология заслуживает внимания по следующим причинам:

  • Беспроводные датчики довольно маленькие и в последнее время не такие и дорогие: 500 рублей за простейший датчик или кнопку — это реальность, Xiaomi и AliExpress сделали своё дело.
  • Беспроводные датчики могут продержаться на одной батарее несколько лет, без шуток — лет!
  • В количестве Zigbee устройств их сила: технология поддерживает Mesh, проводные устройства, скорее всего, будут ретрансляторами сигнала между Gateway и удалёнными датчиками, заодно снимая нагрузку с самого Gateway.
  • Технология поддерживает прямое управление в обход Gateway, можно связать кнопку и лампочку. В случае выхода Gateway из строя управление светом продолжит работать. Правда далеко не все кнопки это умеют.

Xiaomi

Фирма Xiaomi сделала многое для продвижения технологии Zigbee в альтернативных системах умного дома. Их старенький Xiaomi Gateway 2 (DGNWG02LM, lumi.gateway.v3) имел на борту «режим разработчика», который открывал локальный протокол доступа к управлению Zigbee устройствами этого шлюза. Интеграции этого протокола есть в множестве open source систем.

В евро-версии этого шлюза Xiaomi Gateway EU (DGNWG05LM, lumi.gateway.mieu01), а также в обновлённой версии Xiaomi Gateway 3 (ZNDMWG03LM, lumi.gateway.mgl03) этого протокола нет.

Обновлённая версия шлюза получила новый чип на Zigbee 3 (EFR32MG1B), а также поддержку технологии Bluetooth Mesh и HomeKit. В HomeKit поддерживаются не все устройства, будьте внимательны.

Xiaomi Gateway 3

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

В этом шлюзе стоит чип серии EFR32 от фирмы Silicon Labs. Те в свою очередь поставляют вместе с чипом набор SDK. В составе SDK есть MQTT-транспорт, обеспечивающий доступ к Zigbee проколу из любого ПО, установленного как на шлюзе, так и за его пределами.

По умолчанию MQTT-брокер не доступен извне, но у нас ведь теперь есть Telnet!

В брокере есть два корневых топика: это «сырые» данные Zigbee и обработанные данные от Xiaomi. Я решил взять за основу обработанные данные. Там атрибуты устройств хоть и описаны псевдокодами, но в них всё же проще разобраться человеку, ничего не понимающему в Zigbee.

В итоге получился такой вот компонент для Home Assistant — XiaomiGateway3.

Он автоматически включает Telnet и публичный MQTT, используя токен Mi Home.

Сейчас токен нужно получать нехитрым образом (инструкция в readme). Но в будущем я планирую добавить получение токена с серверов Xiaomi, используя аккаунт Mi Home. Ведь недавно в сети появилась рабочая реализация авторизации в их облаке.

Сейчас компонент получает список устройств и последние значения их атрибутов с Хаба. Но в дальнейшем я планирую добавить получение списка устройств из облака. Там есть пользовательские названия всех устройств.

BLE Gateway

С этим пришлось повозиться. Работа с Bluetooth-устройствами не отражается в MQTT. Зато все данные отражаются в консоли. Поэтому компонент подключается к хабу через Telnet отдельным потоком, перезапускает утилиту работы с Bluetooth и читает её вывод в реальном времени. Это самый стабильный способ, что я нашёл. В syslog данные от этой утилиты попадают с перебоями. Моих знаний Linux не хватает, чтоб понять, почему так происходит.

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

А пару дней назад в нём появилась поддержка умных Bluetooth-замков. На сегодняшний день это единственный из известных мне способов подключить BLE-умный замок Xiaomi в альтернативную систему умного дома.

Чайника у меня нет, но присылайте логи — добавлю и его. Правда чайники Xiaomi не поддерживают функцию удалённого включения, это большой минус.

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

Поддержка Bluetooth Mesh ламп пока в разработке. Работа с ними сильно отличается от BLE-устройств.

Планы

Нужно отладить работу хаба со всем списком официально поддерживаемых Zigbee-устройств. Добавить возможность настройки «тонких» параметров:

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

Нужно добавить поддержку облака для получения токена хаба и полного списка Zigbee и Bluetooth-устройств.

Нужно добавить поддержку Bluetooth Mesh ламп.

И самое главное — добавить поддержку устройств других производителей. Да, это возможно. Мне удалось подключить все сторонние устройства, что у меня были, и управлять ими. Такие устройства не отображаются в Mi Home и HomeKit. Но управлять ими можно с помощью «сырых» Zigbee-команд.

Для понимания полного масштаба проблемы такой поддержки загляните в исходники замечательного проекта zigbee2mqtt: devices, fromZigbee, toZigbee.

Почти каждое устройство требует свой собственный обработчик. В случае с Xiaomi Gateway 3 и официально поддерживаемыми устройствами — роль такого обработчика выполняет софт хаба.

Другие мои разработки можно найти на GitHub. Среди русскоговорящей аудитории наиболее популярный проект — YandexStation. Глобально очень хорошо себя зарекомендовал SonoffLAN. Но, думаю, XiaomiGateway3 его легко обгонит. За развитием этого и других моих проектов можно следить на моём канале Telegram.

Источник

Adblock
detector