Модуль Yandex Home предназначен для поддержки личных (приватных) навыков для платформы умного дома Яндекс. Модуль реализует авторизационный сервис на основе стандарта OAuth 2.0 и Provider Adapter API - промежуточный API, который принимает на вход запросы в формате платформы умного дома Яндекс и преобразует их в запросы к API MajorDoMo.
Для успешного функционирования модуля и управления устройствами, подключенными к MajorDoMo, через ассистента Яндекс Алиса требуется, в первую очередь, опубликовать обработчики запросов (конечные точки, вебхуки) в сеть Интернет и обеспечить тем самым их доступность со стороны облака Яндекс по доменному имени (DNS) и протоколу HTTPS и без запроса логина/пароля. Во вторую очередь, необходимо в консоли разработчика платформы Яндекс Диалогов создать, настроить и опубликовать приватный навык специальной категории Умный дом.
В модуле Yandex Home все обработчики запросов реализованы в виде отдельных файлов: authorize.php, token.php и smarthome.php, и размещаются в директории /modules/yandexhome.
| # | Назначение вебхука | URL вебхука | Пример опубликованной ссылки |
|---|---|---|---|
| 1 | URL авторизации | /modules/yandexhome/authorize.php | https://majordomo.keenetic.pro:8443/modules/yandexhome/authorize.php |
| 2 | URL для получения и обновления токена | /modules/yandexhome/token.php | https://majordomo.keenetic.pro:8443/modules/yandexhome/token.php |
| 3 | URL обработчика навыка | /modules/yandexhome/smarthome.php | https://majordomo.keenetic.pro:8443/modules/yandexhome/token.php |
В конечном итоге запуск модуля сводится к такой последовательности шагов:
Настройка модуля заключается в генерации значений OAuth2 ID и OAuth2 KEY с помощью соответствующей кнопки, а также ввод произвольных логина и пароля пользователя, которые впоследствии будут запрошены в ходе объединения аккаунтов в приложении Яндекс.

На ранних этапах использования модуля рекомендуется включить ведение логов событий - Отладка DebMes.
Данный вопрос подробно рассмотрен в статье MajorDoMo и Яндекс Алиса. Публикация вебхуков.
Данный вопрос подробно рассмотрен в статье MajorDoMo и Яндекс Алиса. Регистрация приватного навыка.
Данный вопрос подробно рассмотрен в статье MajorDoMo и Яндекс Алиса. Объединение аккаунтов.
Модуль реализует классическую концепцию MajorDoMo для взаимодействия с пользователем через метрики и привязанные к ним свойства объекта. К метрикам (умениям) привязываются уже существующие объекты и свойства, через которые реализовано управление устройствами. К каждому умению устройства можно привязать свое свойство объекта.
Добавление нового устройства выполняется с помощью кнопки Добавить устройство на главной странице модуля. После чего указываются название, тип и местоположение устройства.
Дальнейшее конфигурирование выполняется на странице редактирования (настройки) устройства.


Обязательные для заполнения поля устройства:
У каждого устройства должно быть указано минимум одно умение.
Не обязательные для заполнения поля устройства:

Набор умений представлен в виде выпадающего списка.

Привязка свойства объекта к конкретному умению выполняется также с помощью выпадающих списков.

При добавлении устройств в модуле или изменении их свойств для обновления списка устройств в приложении Яндекс необходимо каждый раз выполнять синхронизацию с помощью кнопки Обновить список устройств в окне свойств навыка. Удаляются устройства из приложения Яндекс вручную, либо через отвязывание аккаунта и последующее повторное объединение аккаунтов.
| Метрика (умение) | Описание | Значения в модуле | Значения от Яндекс |
|---|---|---|---|
| controls_locked | Блокировка управления. | 1 и 0 | true и false |
| on | Включить/выключить. | 1 и 0 | true и false |
| humidity | Влажность (целевая). | 0 - 100% (*) | 0 - 100% |
| volume | Громкость. | 1 - 100 (*) | 1 - 100, либо +1/-1 |
| input_source | Источник сигнала. | one, two, three, four, five | one, two, three, four, five |
| pause | Пауза. | 1 и 0 | true и false |
| backlight | Подсветка. | 1 и 0 | true и false |
| mute | Режим без звука. | 1 и 0 | true и false |
| oscillation | Режим вращения. | 1 и 0 | true и false |
| ionization | Режим ионизации. | 1 и 0 | true и false |
| keep_warm | Режим поддержания тепла. | 1 и 0 | true и false |
| fan_speed | Скорость вентиляции. | auto, low, medium, high | auto, low, medium, high |
| open | Степень открытия. | 0 - 100% (*) | 0 - 100% |
| channel | ТВ-канал. | № канала (*) | № канала, либо +1/-1 |
| temperature | Температура (целевая). | 1 - 100 (*) | °C |
| temperature_k | Температура цвета (кельвины). | 2700 - 9000 | 2700 - 9000 |
| thermostat | Температурный режим. | auto, heat, cool, eco, dry, fan_only | auto, heat, cool, eco, dry, fan_only |
| rgb | Цвет в формате RGB (hex). | 000000 - FFFFFF | 0 - 16777215 |
| brightness | Яркость (проценты). | 1 - 100 (*) | 1 - 100 |
| humidity_sensor | Влажность (датчик). | 0 - 100% | 0 - 100% |
| power_sensor | Мощность (датчик). | ватты | ватты |
| voltage_sensor | Напряжение (датчик). | вольты | вольты |
| amperage_sensor | Сила тока (датчик). | амперы | амперы |
| temperature_sensor | Температура (датчик). | °C | °C |
| co2_level_sensor | Углекислый газ (датчик). | ppm | ppm |
| water_level_sensor | Уровень воды (датчик). | 0 - 100% | 0 - 100% |
| battery_level_sensor | Уровень заряда аккумулятора (датчик). | 0 - 100% | 0 - 100% |
Температурные режимы:
Скорость вентиляции: