Skip to content

Маруся и Сбер Салют

Те же эндпоинты Smart Home API, что у Алисы, но в экосистемах Mail.ru (Маруся) и Сбер (Салют). Один раз связали — управление работает у всех ассистентов сразу.

Что общего с Алисой

  • Единая device-модель в облаке — реле/датчики маппятся в типы Smart Home один раз, все три ассистента видят их одинаково.
  • Discovery / Query / Action / Push — те же четыре операции.
  • OAuth2 для привязки пользовательского аккаунта.
  • Один проект в Kavlev cloud → много привязанных аккаунтов (можно одновременно Алиса + Маруся одного человека).

В чём отличается

Аспект Алиса Маруся Салют
Backend URL cloud.kavlev.ru/v1.0/ cloud.kavlev.ru/marusya/ cloud.kavlev.ru/sber/
OAuth provider oauth.yandex.ru o2.mail.ru online.sberbank.ru/CSAFront/oidc/
Dev-консоль yandex.ru/dev/dialogs dev.vk.com developers.sber.ru/portal
Статус готовности ✅ Production 🟡 Beta (готов код, нужно ваше OAuth-приложение) 🟡 Beta

Маруся: пошагово

1. OAuth-приложение в VK Developers

dev.vk.comСоздать приложениеStandalone или Сайт:

Поле Значение
Название Kavlev Smart Home
Платформа Web
Callback URL https://cloud.kavlev.ru/oauth/marusya/callback

Получаете app_id и secure_key.

2. Навык в VK Mini Apps / Маруся-консоли

Сейчас (2026) Маруся не имеет публичного marketplace для приватных Smart Home провайдеров — нужен запрос в Mail.ru на endpoint-привязку. Альтернатива — использовать voice-only без обнаружения (команды по голосу, без exploration в приложении).

3. Прописать в облаке

ИнтеграцииМаруся → Подключить → ввести app_id и secure_key.

4. Привязать аккаунт

В приложении Маруси → Умный дом → Добавить → Kavlev.

Дальше — как у Алисы.

Сбер Салют: пошагово

1. SmartApp в Sber Developer Portal

developers.sber.ru/portalСоздать SmartAppSmart Home.

Получаете client_id и client_secret от их OAuth-провайдера.

2. Прописать в облаке

ИнтеграцииСбер Салют → Подключить.

3. Привязать аккаунт

В приложении Салют → Умный дом.

Что под капотом

Cloud-service маппит запросы провайдеров на единые internal handlers:

# cloud_service/voice/router.py
@router.post("/v1.0/user/devices")     # Яндекс
@router.post("/marusya/user/devices")  # Маруся
@router.post("/sber/user/devices")     # Салют
async def discovery(...):
    return await voice_discovery(...)  # one impl

Маппинг типов устройств в типы провайдера — в cloud_service/voice/<provider>/device_types.py. Если у провайдера нет аналога нашего типа (например, у Маруси нет atmospheric_pressure) — устройство не попадёт в discovery этого провайдера (но останется у Алисы).

Что НЕ работает межпровайдерно

  • Состояние реле: одно. Если Алиса выключила — Маруся это увидит через push.
  • Имя устройства: одно. Меняется в любом из приложений → push'нётся обратно в облако → синхронизируется во все.
  • Комнаты / группы: каждый провайдер хранит свои. Маруся не видит группы Алисы. Это ограничение Smart Home API — мы не можем синхронизировать UX-структуру.

Disconnect

В интеграцияхDisconnect конкретного провайдера. Удаляет OAuth-привязки этого провайдера, на остальные не влияет.

Полезные ссылки