Агент представляет собой прослойку между облаком Sber и HomeAssistant (HA). Его задача взять из HA нужные устройства, отобразить их в облаке Sber и отслеживать изменения в облаке с последующей передачей в HomeAssistant. На данный момент агент выбирает сущности switch (включая розетки), script, light, input_boolean, button, climate, а также датчики температуры, влажности и давления.
- Сущности switch, script и button отображаются как relay в облаке Sber.
- Сущности input_boolean и input_button отображаются как scenario_button.
- Сущности climate отображаются как hvac_ac.
- Сущности light отображаются как light. Для сущностей light, если они поддерживают яркость и/или цветность, это значение также прокидывается в Сбер как light_brightness (0-100%).
- Датчики температуры, влажности и давления объединяются в один sensor_temp, если имеют одинаковый device_id. На данный момент давление в Сбер прокидывается, но его пока не умеет отображать Салют.
Для работы агента необходима регистрация в Studio Сбера. В которой нужно создать интеграцию и получить регистрационные данные для агента (sber-mqtt_login, sber-mqtt_password).
Также необходим токен для взаимодействия аддона с HomeAssistant. Очень рекомендую завести для этого отдельного пользователя. Для получения заходим в профиль пользователя и создаём долгосрочный токен доступа (ha-api_token)
- Исправление минорных ошибок (версия в SberGate, скачивание файла лога)
- Рефакторинг js кода
- Добавлена возможность смены типа устройства в Салюте прямо главной страницы конфигурирования, т.е. пользователь сам сможет выбирать типа устройства, которое он будет использовать в Салюте, например: кнопку (button) из HomeAssistant можно прокинуть как реле (relay) в Салют, а можно как кнопку (scenario_button). Или если лампочку (light) надо только включать/выключать, то можно прокинуть как реле (relay). Теперь для этого не надо переходить к настройкам СберАгента.
- Исправлена ошибка с сохранением изменения типа устройства при перезагрузке
- Рефакторинг кода
- Добавлена возможность проброса пылесоса (тип vacuum)
- Рефакторинг кода
- Исправление работы одиноких датчиков температуры без влажности
- Рефакторинг кода, упрощение/унификация для добавления новых устройств
- Исправлена ошибка с конвертерами
- Рефакторинг кода, оптимизация работы и вывода логов. Надеюсь ничего не отломал
- Добавлена сортировка устройств по любому полю.
- Датчики давления в HA могут иметь не только тип "pressure", но и "atmospheric_pressure", добавлена поддержка и таких датчиков
- Исправлена обработка input_boolean как scenario_button и button как switch
- Добавлена обработка input_button как scenario_button, что на мой взгляд гораздо логичнее, чем делать вызов через input_boolean, правильнее вызвать input_button.press, что Салютом будет расценено как одиночное нажатие и можно повторять это нажатие не один раз, не меняя состояние виртуальной кнопки. Отлично работает, как через NodeRed, так и в сценариях самого Home Assistant
- Для световых устройств (light) поддерживающих цветной режим, добавлен проброс цвета в Салют, а также возможность изменения цвета из Салюта. Могут быть нюансы с вашим конкретным устройством
- Перевел записи в логах и комментарии в коде на русский язык (не знаю на сколько полезно, но мне так понятнее)
- Рефакторинг менеджера локальной базы
- Для устройств типа light по возможности добавлена регулировка яркости, если они такое поддерживают
- Добавлен датчик давления по аналогии с датчиком влажности. В Сбер отправляются значения вместе с температурой и влажностью, если датчики находятся в составе одного устройства. (upd 06.02.2026) К сожалению, Сбер пока не поддерживает датчик давления и не отображает его в Салюте, поэтому данное изменение по сути ничего не меняет
- Аддон выделен в отдельную ветку и продолжит развитие как самостоятельный проект
- Добавлены датчики влажности. Если датчик температуры и датчик влажности принадлежат одному устройству, то в Сбер будут прокинуты данные с обоих датчиков, как одно устройство. Т.е. галку кого прокидывать можно ставить у любого датчика, хоть температуры, хоть влажности. Если поставить у обоих, то в Сбер будут прокинуты два датчика с одинаковыми показаниями
- Для удобства сопровождения аддон разделен на несколько модулей.
- Также если вам хочется самому что-то в нем изменить, то можно просто подложить измененный файл в папку /share/ в корне HAOS, стартовый скрипт подхватит эти изменения и запустит уже измененный аддон.
- Заодно поправил определение комнаты для устройств и теперь в Салют, устройства сразу пробрасываются в нужную комнату.
- Лето, жара. Нужен кондиционер. Но на скорую руку, надеюсь ничего не сломал. Как же хочется всё переделать...
- Понадобилось нажимать кнопки голосовым помощником. Добавил проброс сущностей button из HA на relay в Сбер.
- Добавил try при разборе json, что предположительно должно решить проблему, падения при поступлении некорректного запроса устройств от сервера Сбер.
- Попытка прокинуть расположение устройств по комнатам, но что-то Сбер не захотел, грузит всё на проходную... :(
- Попытка исправить автозагрузку.
- Исправлена ошибка при подключении к WebSocket.
- Добавлено логирование в файл и фозможнасть скачать лог.
- добавлена сущность HA input_boolean, которая транслируется в категорию Сбера scenario_button. включение транслируется в click, вывключение в double_click
- В пакет вшиты модули requests и websocket так как почему-то они перестали устанавливаться через pip3 в docker
- Незначительные правки в документции
- изменение логики работы, добавлена возможность менять категорию
- добавлена сущность HA light
- заменены icon.png и logo.png
- изменения в логировании
- Автостарт при перезагрузке HA не работал по причине неготовности HA отвечать в момент запуска агента. Добавлена задержка и ожидание готовности HA.
- Изменена кодировка файлов CHANGELOG.md и DOCS.md на UTF-8 из-за чего падал сервер при запросе списка изменений ERROR (MainThread) [homeassistant.components.hassio.handler] /addons/0f4b1db7_mqtt-sber-gate/changelog return code 500 WARNING (MainThread) [homeassistant.components.hassio] Could not fetch changelog for 0f4b1db7_mqtt-sber-gate:
- Попытка исправить ошибку загрузки списка изменений. Возможно автостарт не работает именно по этой причине.
- Добавлены милисекунды в log
- Добавлены проверки при скачивании models.json
- Мелкие правки, новые косяки
- Обновлен оригинальный веб-интерфейс SberDevices от платформы WirenBoard
- Добавлен CHANGELOG.md
- Изменена структура каталогов в надежде получить возможность автоматической установки.
- Мелкие правки, новые косяки
- Updates
- Initial release
Проект начался незадолго до нового года, когда подключенную к 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
Telegram259922606