Подключаемcя к умному дому СБЕР по MQTT через Node-RED

Я уже писал в предыдущей статье, как можно подключить свои устройства через протокол MQTT. С тех пор произошли некоторые изменения. Сначала, в августе 2024, СБЕР решил убрать DIYщиков от своего детища, запретили новые интеграции, и я плюнул на них. Но в конце декабря, снова вернули данный пункт в документацию. Ну что же, давайте снова попытаемся подключиться к их MQTT серверу, на этот раз без всяких программ агентов, напрямую из Node-RED.
Обновление: 16 января 2026 СБЕР опять убрал DIY со своего сайта. Интеграция всё ещё возможна, но некоторые ссылки на документацию не работают.
Программа агент, которую выпустили в СБЕР, хорошо подходит, если у вас в качестве сервера УД стоит WirenBoard. Агента нельзя поставить, на что-то отличное от АРМ архитектуры, да и в моём случае, он был как пятое колесо в телеге.
Проще будет взаимодействовать с MQTT сервером СБЕРа напрямую. У меня в качестве сервера УД стоит старенький Intel NUC с Debian на борту. Я не использую никакой специальный софт, вроде Home Assistan, мне достаточно простого Node-RED, который я настраиваю под свои нужды. Он будет Хабом, для моих устройств и мостом в УД СБЕРа.
Приступим. Я подразумеваю, что у вас уже есть какой либо сервер. Это может быть обычный одноплатный компьютер, вроде Raspberry Pi, неттоп или мини ПК, как у меня, или же просто ваш стационарный компьютер. Главное, чтобы на нём был установлен Node-RED. Я так-же, надеюсь, что вы знаете, что это такое и умеете этим пользоваться. Если нет, то процесс установки множество раз описан в интернет, повторяться не буду, на сайте разработчика всё доходчиво.
Затем, регистрируемся в Studio, получаем данные для подключения к MQTT серверу СБЕРа. Это я описывал в предыдущей статье, также выкатили нормальную документацию на сайте разработчика вот здесь.
Запускаем Node-RED из браузера http://ip_сервера:1880
Добавляем ноды MQTT IN в трёх экземплярах. Поля настройки нод заполните следующим образом:


- sberdevices/v1/ваш_логин/down/commands - передача команд на устройства
- sberdevices/v1/ваш_логин/down/config_request - запрос конфигурации устройств
а также создайте две ноды отправки (MQTT OUT) данных на сервер СБЕРа, со следующими полями Тема:
- sberdevices/v1/ваш_логин/up/status - отправка текущего состояния устройств
- sberdevices/v1/ваш_логин/up/config - отправка данных о устройствах
между ними позже добавим функции, которые формируют информацию об устройствах и обрабатывают полученные команды. А пока, я советую добавить ещё одну ноду MQTT IN со следующей темой - sberdevices/v1/ваш_логин/# и соединить её с нодой DEBUG, чтобы видеть все сообщения. Очень может помочь для отлова ошибок.
Сделайте Deploy в Node-RED и, в идеале, вы должны увидеть "подключен" под нодами MQTT:

Если вы видите такое:

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


Настало время создать наши устройства в Node-RED. Берём ноду Function и пишем следующий код:

Тут мы описали два наших устройства, которые будут отправлены в СБЕР. В model_id указываем имена, которые мы указали в Studio при создании моделей.
Создадим ещё одну ноду Function со следующим кодом:
Здесь мы сформировали ответ на сервер СБЕРа с температурой нашего сервера и состоянием розетки.
Осталась последняя нода Function для обработки команд от СБЕРа.
Тут обрабатываем команду от сервера СБЕРа, приходит информация о включении и выключении розетки.
Загрузите мой пример для Node-RED, заполните данные сервера и приступайте к испытаниям. Перейдите на страничку https://activation.sber.ru/ или установите приложение Салют на мобильное устройство.
Нажимаете +, Добавить устройства -> Других производителей ->Имя вашего HUB
После всех манипуляций вы увидите следующее:

Термодатчик должен отображать текущую температуру компьютера (если у вас Linux подобная система) и блок Розетка, при нажатии на которую будет меняться его состояние с ВКЛ на ВЫКЛ, и вы увидете соответствующее сообщение в DEBUG блоке Node-RED

Вы можете создавать свои устройства, описывая их, согласно требованиям Умного Дома СБЕР и подключить их к серверу. Далее, при помощи Node-RED подключать свои устройства через MQTT или другим, удобным вам способам и управлять голосом через устройство от СБЕРа.
На данный момент, это несколько проще и дешевле Алисы. Надеюсь было полезно. Если есть вопросы, заходите в Телеграмм - https://t.me/helpmechip

