← Установка home-assistant и подключение Xiaomi датчиков
13 февраля 2018 — homeassistant — xiaomi home-assistant iot smart home умный дом
Последние пару лет тема домашней автоматизации и internet of things (iot) стала очень популярной, из-за чего появилось куча как программных продуктов, таких как home-assistant, majordomo и т.п., так и аппаратных решений от различных производителей (xiaomi, apple с homekit, решения от мегафона, lg). Я для себя выбрал home-assistant + xiaomi для внутренних датчиков и самодельных в будущем. В этой статье установим home-assistant на linux машину, а также добавим в него отображение информации с xiaomi gateway + температурные датчики с настройкой внешнего вида дашборда
0. Подготовка
Для начала определим, что нам необходимо. Из аппаратного обеспечения:
- Компьютер на linux
- Xiaomi gateway 2
- Подключенные датчики темепратуры к xiaomi gateway и MiHome, у меня такие
1. Установка home-assistant
Установить home-assistant можно разными способами:
Home Assistant. Урок 4.1 Xiaomi Zigbee шлюз, добавляем устройства, создаем сенсоры из атрибутов
- системный пакет для вашего дистрибутива
- установка через pip
- установка через docker. Как установить docker на ваш linux читать тут
Я выбрал установку через docker, т.к. это самый простой и быстрый способ установки.
Первое, что необходимо сделать, это создать папку на локальном диске, которая будет бэкапиться или которую вы не удалите, для того, чтобы хранить конфиги home-assistant и не потерять их, при работе с контейнером docker.
mkdir /ваш/путь/homeassistant
Затем запускаем контейнер с последней версией home-assistant
docker run -d —name=»home-assistant» -v /ваш/путь/homeassistant/config:/config -v /etc/localtime:/etc/localtime:ro —net=host homeassistant/home-assistant
Эта команда скачает образ для docker и запустит контейнер, пердав ему нашу папку с будущим конфигом (на хосте в папке /ваш/путь/), а также подключит веб интерфейс home-assistant на основной адрес сервера, на порт 8123. Чтобы проверить доступность home-assistant, необходимо в браузере зайти на адрес http://адрес_сервера:8123 и увидете интерфейс home-assistant. По умолчанию home-assistant включает авто определение устройств в сети, поэтому на первой странице home-assistant вы возможно увидете какие-то устройства.
2. Добавление xiaomi gateway в home-assistant
Добавление устройств (датчиков) в home-assistant проводится через редактирование конфигурационного файла. Если посмотреть в папку
ls -la /ваш/путь/homeassistant/config/*.yaml /ваш/путь/homeassistant/config/automations.yaml /ваш/путь/homeassistant/config/configuration.yaml /ваш/путь/homeassistant/config/customize_glob.yaml /ваш/путь/homeassistant/config/customize.yaml /ваш/путь/homeassistant/config/groups.yaml /ваш/путь/homeassistant/config/scripts.yaml /ваш/путь/homeassistant/config/secrets.yaml
то можно увидеть различные конфиги:
- automations.yaml — конфигурация для скриптов автоматизации
- configuration.yaml — главный файл, в котором подключаются все остальные
- customize_glob.yaml — настройка внешнего вида для категорий датчиков
- customize.yaml — настройка внешнего вида отдельных датчиков
- groups.yaml — настройка зон (комнат)
- scripts.yaml — скрипты
- secrets.yaml — файл для хранения секретных данных (паролей)
Для упрощения, добавим наш датчик в основной конфигурационный файл configuration.yaml, в конец файла
Добавление xiaomi gateway DGNWG02LM к home assistant
xiaomi_aqara: discovery_retry: 5 gateways: — key:
Где вместо необходимо добавить ваш отключ доступа к шлюзу. Взять его можно через MiHome: 1. В MiHome нажать на шлюз 2. Затем … и выбрать пункт About 3. Нажать на версию (подержать), которая снизу, появится 2 дополнительных пункта 4. Нажать на пункт “local area network communication protocol” и в открывшемся окне необходимр включить “local area network communication protocol” и сохранить поле “password”, это и будет ключ, который надо вставить в конфиг
Затем, надо перезагрузить home-assistant, чтобы он прочитал новый конфиг, сделать это можно либо через docker (docker stop container_id docker start container_id), либо через меню home-assistant Settings -> Common -> Restart
Источник: it4it.ru
Личный опыт: интеграция шлюза Xiaomi в Home Assistant
На момент установки Home assistant из умный устройств у меня было две лампочки, переехавшие со мной еще из съемной квартиры , шлюз Xiaomi Gateway (lumi.gateway.v3), выключатели и розетки Aqara, несколько беспроводных кнопок и датчиков из той же экосистемы.
Все zigbee устройства, которым для работы необходим шлюз (координатор), попадут в Home assistant вместе с интеграцией шлюза, wi-fi лампочки же придётся добавлять отдельно.
Интеграция, отвечающая за шлюз называется Xiaomi(Aqara) Gateway. На данный момент она уже переехала в графический интерфейс, но на момент описываемых событий ее настроить было возможно только через правку файла configuration.yaml.
Обратите внимание, что существует и другая интеграция Xiaomi Miio, это две разные интеграции для разных задач.
Для добавления шлюза необходимо указать сетевой интерфейс (оставляем как есть), ключ от шлюза и имя. Токен проще всего посмотреть в модифицированном приложении mihome с сайте kapiba.ru. Также, чтобы добавить шлюз в сторонние системы управления, необходимо включить режим разработчика в приложении mihome.
Стоит отметить, что не все шлюзы интегрируются в сторонние системы управления. На момент написания статьи интегрируется только шлюз Xiaomi второй версии(китайская вилка, модель lumi.gateway.v3), а также в Home Assistant интегрируется шлюз Xiaomi Gateway 3, но не штатной интеграцией, а с помощью стороннего компонента. Шлюзы от Aqara, шлюзы Xiaomi для европейского и российского рынка режима разработчика не имеют.
После перезагрузки сервера у меня в устройствах не появился шлюз, а также другие zigbee устройства.
Решив, что что-то делаю не так, решил добавить wi-fi лампочки в конфигурацию. Для их добавления нужно также получить ip адрес, модель и токен, для лампы xiaomi. Лампочки прекрасно заработали и управляются из Home assistant. Итоговая конфигурация выглядела так:
Забивая голову, почему же тоже самое не срабатывает со шлюзом, — полез в Гугл. Оказалось, я не один такой, проблема действительно есть. То ли новая прошивка шлюза, то ли какое-то обновление, а может целые партии или софтовый глюк, но факт есть факт — в некоторых шлюзах не открывается режим разработчика. Приложение mihome говорит, что режим разработчика активирован, но это не так.
При активации этого режима на шлюзе должны открыться сетевые порты :4321 и 9898. Эти же порты и используются для интеграции в HA. Я проверил через утилиту nmap (тут то мне и понадобился доступ к host системе) доступность этих портов и убедился в своей правоте — режим разработчика не активирован, порты закрыты. Это было фиаско, но энтузиасты умного дома не сдаются.
В интернете есть мнение и даже статьи о том, как эти порты можно открыть без разбора и вмешательство во внутреннее устройство шлюза, но четкой последовательности действий никто не предоставляет. Но с другой стороны инструкций, как открыть эти порты путём разбора шлюза — множество. Я воспользовался одной из них .
Собственно, в инструкциях все четко указано: разбираем шлюз, подпаиваемся к необходимым пятакам, подключаем USB TTL к этим проводам с одной стороны и вставляем в компьютер с другой. На компьютере открываем Putty, выбираем необходимую скорость, выделенный адаптеру com порт, начинаем читать информацию со шлюза. Выполняем пару команд, проверяем и вот — шлюз рапортует, что режим разработчика включен. Проверяем снова через утилиту nmap — готово, порты действительно открыты.
После перезагрузки конфигурации шлюз и все zigbee устройства появились в home assistant. “Наконец-то”,- подумал тогда я. Думаю и вы, мои читатели, сейчас тоже вздохнули с облегчением.
То, что можно было делать в mihome из коробки, спустя часы мучения и страницы текста теперь можно делать на собственном сервере умного дома. Да, первоначальные этапы всегда затратны по времени и сложны технически, во всяком случае у коробочных решений этот первый этап гораздо меньше, но плюс тут прежде всего в гибкости решений, интерфейсов и автоматизаций.
Источник: dzen.ru
Домашняя автоматизация с Xiaomi и Home assistant
Для решения бытовых задач я купил супер-дешевые устройства Xiaomi для домашней автоматизации. В минимальный набор должен входить Gateway, который уже умеет соединяться по протоколу zigbee с остальными устройствами Xiaomi. По сравнению с zigbee хабами, например, от samsung, это очень недорогое решение.
Устройства столь же великолепны и безпроблемны, сколь ужасен софт для них от Xiaomi. Он в существенной степени не локализован, так что вы будете постоянно видеть половину экрана в иероглифах, он неудобен и малофункционален, и он медленно работает (ну в чем смысл внопки в смартфоне, включающей свет, если она вначале “открывается” примерно 15 секунд с надписью “инициализация zigbee — проще дойти до выключателя на стене)
Я попробовал OpenHAB, но мне кажется, что они сами не понимают, куда развиваются. Дикое месиво между конфигами и малофункциональным UI, в котором невозможно разобраться, не прочитав вначале инструкцию по его использованию.
Также посмотрел на Domoticz но он показался мне не очень развивающимся и есть риск что его скоро совсем забросят.
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