Голосовое управление ресивером

Приобрёл недавно систему 5.1 и вот решил написать какое место она занимает в системе “умный дом”.

Железо:

  • ресивер Onkyo TX-L50 Black
  • динамики DALI Phantom E50 – 5шт.
  • сабвуфер Taga Harmony TCP-1000 WHITE – 1шт.
Onkyo TX-L50 Black
dali-phantom-e-50
Taga Harmony TCP-1000 WHITE

Моя модель ресивера поддерживает вот такие способы передачи медиа контента (протоколы):

  • Chromecast
  • airPlay
  • UPnP
  • dts Play-Fi

Типы подключения\соединения:

  • ethernet
  • wi-fi
  • bluetooth
  • USB
  • HDMI
  • FM

К сожалению модуль Мажордомо ssdp_finder умеет только находить устройство, отправить медиа контент на воспроизведение не получилось. Но это можно делать с помощью других приложений поддерживающих протокол UPnP. Например стандартное приложение Onkyo Controller или стороннее BubbleUPnP. С их помощью любую музыку можно отправить на ресивер по воздуху на воспроизведение.
Такие распространённые приложения как Google Play Music, Pandora, TuneIn, Deezer делают тоже самое, но используют другой протокол – Chromecast. А это значит что ресивером можно управлять с помощью Google Home. Т.е. можно голосом попросить ресивер воспроизвести музыку из вашей коллекции Google Play Music. В предыдущем посте я уже показывал как это выглядит на видео. Хочу открыть один секрет мало кому известный. Вам не нужно оформлять платную подписку в Google Music. Достаточно установить расширение Google Play к Chrome браузеру на компьютере и у вас появится возможность заливать ваши любимые mp3 в Google хранилище что бы воспроизводить потом через Google Play Music. Это совершенно бесплатно. После того как вы зальёте всю вашу музыку, вы сможете управлять ею и с мобильного приложения и с помощью Google Home.
А если у вас есть несколько мультимедиа систем поддерживающие Chromecast, то в приложении Google Home вы сможете объединить их в группу тем самым без труда создать настоящий мультирум. Одна и та же музыка будет играть одновременно и в зале и на кухне и в коридоре и в туалете. Если конечно у вас везде есть динамики :). Как по мне это отличное решение для тех кто любит принимать у себя гостей и вы частенько устраиваете вечеринки.

Подытожим, на данным момент полноценная интеграция ресивера с Мажордомо не работает и она находится на стадии разработки. Но уже сейчас доступно голосовое управление с помощью умной колонки Google Home на английском языке или с телефона на русском языке используя русифицированный Google Assistant.

Мажордомо не запускается. Что делать?

Столкнулся недавно с проблемой, после очередного обновления Windows и самого Мажордомо, то он перестал загружаться. После запуска можно было наблюдать вот такую картину.

majordomo

Скорей всего кто-то уже сталкивался или столкнётся с такой проблемой если у вас Windows платформа. Что бы решить эту проблему первым делом нужно проанализировать логи ОС Windows. Для этого заходим в пуск и выполняем команду eventvwr.msc, переходим в раздел Windows Logs и просматриваете все записи помеченные красным. В моём случае была проблема с php_snmp.dll. Т.к. я не использую модуль поддержки SNMP протокола, то я просто отключил использование этой DLL. Для этого я зашёл в папку и отредактировал файл:

C:\_majordomo\server\config_tpl\php.ini

А точнее, закомментировал упоминание этой DLL:

;extension=snmp

В вашем случае, скорей всего будет другая причина, но теперь вы хотя бы знаете где искать проблему и как её можно исправить.

А вы знаете как выключить режим “Ни кого нет дома”?

Для того что бы выключить режим “Ни кого нет дома” необходимо выполнить:
sg("NobodyHomeMode.active",0);
либо зайти в раздел “Объекты“, найти класс “OperationalModes“, открыть объект “NobodyHomeMode” и поменять ему свойство “active” в значение ноль. После этого Алиса просигнализирует в чат: “Режим Никого нет дома выключен”. Стоит заметить что бы Мажордомо правильно указывал в чате режим, необходимо вписать его название в свой свойство “title“. Так же через это свойство вы можете изменить название режима по-умолчанию, либо добавить свой режим.

Точно так же будет работать изменение значения свойства “active” для любого другого объекта из класса “OperationalModes“.

Но это всего лишь переключение режимов, на сколько я понимаю никакой встроенной логики нет, предоставляется лишь сам класс с несколькими стандартными случаями в виде объектов. Вы вправе наполнять их своей логикой в зависимости от предпочтений. Если у вас есть идеи как можно использовать эти режимы, то я буду рад услышать о них в комментариях.