Skip to content

e3c6a08b1f15492310b7e2912cc3552b/MQTT-SberGate

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MQTT-SberGate

MQTT SberGate SberDevice IoT Agent for Home Assistant

Агент представляет собой прослойку между облаком Sber и HomeAssistant (HA). Его задача взять из HA нужные устройства, отобразить их в облаке Sber и отслеживать изменения в облаке с последующей передачей в HA. На данный момент агент выбирает сущности switch и script и отображает их как relay в облаке Sber.

Первоначальные настройки.

Для работы агента необходима регистрация в Studio.

Требуется создать интеграцию и получить регистрационные данные для агента (sber-mqtt_login, sber-mqtt_password).

Также необходим токен для управления HA. Очень рекомендую завести для этого отдельного пользователя. Для получения заходим в профиль пользователя и создаём долгосрочный токен доступа (ha-api_token)

Изменения.

1.0.5 Добавлена возможность выбирать датчики температуры. Мелкие правки панели управления. Проверка кода возврата при запросе списка устройств из HA.

1.0.4 Эксперименты с HA WebSocket API

Теперь появилась какая-никакая обратная связь. То есть если в HA трогаем выключатель, его состояние передаётся в облако Сбера. Функция не особо нужная, добавлена по большей части из любопытства, когда случайно заметил, что оказвается в HA есть WebSocket API. Добавлено опять же на скорую руку, поэтому возможно всё стало менее стабильным.

Немного истории.

Проект начался незадолго до нового года, когда подключенную к HomeAsistant ёлочку захотелось включать голосом. Надо сказать у Салюта "Раз-два-три ёлочка гори" очень здорово получилось.

Благо к тому времени у Sberа уже был MQTT-to-Cloud для DIY. Правда список поддерживаемых контроллеров ограничивается всеголишь двумя: LogicMachine и Wiren Board. Таким образом имеется только два официальных агента под указанные контроллеры.

Экспериментов было масса. Изначально даже проект начинался на php, но со временем пришло понимание, что быстрее и проще всё реализовать на родном для HomeAssistant python и завернуть в виде аддона. Возможно лучше было бы в виде интеграции, но проблема со свободным временем не даёт возможности разбираться и двигаться в этом направлении, да и поставленные задачи решины...

Изначально было реализовано два MQTT подключения. Первое смотрело в облако Sber, а второе в локальный MQTT брокер HomeAssistant. Было очень неудобно, так как приходилось городить огород чтобы HomeAssistant реагировал на данные внутреннего MQTT. Но, мне подсказали, что у HomeAssistant есть замечательный REST API с помощью которого можно очень просто им управлять. Поэтому подключение к внутреннему MQTT HomeAssistant было отключено (код до сих пор ещё болтается в недрах агента, возможно для чего-нибудь ещё пригодится), а управление переведено на REST API.

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

Также подсмотрел замечательную идею управления AndroidTV через adb. Поэтому кроме switch дабавились script. Теперь стало возможно сказать ассистенту: "Включи камеру на улице". После чего отрабатывает скрипт HA который отправляет в VLC нужный поток. Попытки прокинуть script как камеру не увенчались успехом, даже писал в поддержку. Получил ответ, что-то вроде "пока не реализовано".

Ссылки.

Для работы с MQTT используется Eclipse Paho™ MQTT Python Client

Регистрация пространства в Studio

Создание проекта интеграции в Studio

Авторизация контроллера в облаке Sber

Как работает интеграция Sber

Создание интеграции Sber

HA REST API

HA WebSocket API

Telegram

About

MQTT SberGate SberDevice IoT Agent for Home Assistant

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.4%
  • Other 0.6%