directman

<<< Back

Использование колонки google home в качестве терминала Majordomo

с использованием google-home-notifier и сервиса IFTTT
Колонки семейства Google Home (mini) могут выступать в роли сетевой wifi колонки и в роли устройства голосового управления.

Сетевая wifi колонка:
В сети существует множество проектов для вывода контента на Google Home (mini), но единственный, который удалось без проблем поднять на любой платфоре linux liked систем (Raspberry, orange pi, x86-debian) называется google-home-notifier.

Установка проекта


sudo apt-get install git-core libnss-mdns libavahi-compat-libdnssd-dev

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install nodejs

git clone https://github.com/noelportugal/google-home-notifier
$ cd google-home-notifier
$ npm install

в файле example.js нужно прописать адрес google home и порт локального сервиса. Сервисов можно поднять несколько при наличии нескольких колонок.

Далее нужно Majordomo научить запускать сервис google-home-notifier, для этого через плагин cron добавить задание:

Title * google-home-notifier
Crontab * */10 * * * * (раз в 10 минут)
код: shell_exec("node /home/pi/google-home-notifier/example.js");

После установки проекта, можно вызвать сценарий вызова файла mp3

$zap=$params['text'];
if ($zap==""){$zap="http://188.226.32.227/cached/voice/1.mp3";}
//$cmd='curl -X POST -d "'.$zap.'" http://192.168.1.35:8091/google-home-notifier';
$cmd='curl -X GET http://192.168.1.39:8091/google-home-notifier?text='.urlencode($zap); 
echo $cmd;
echo "<br>";
$answ=shell_exec($cmd);
echo $answ;

при наличии соответсвующего файла по указанному пути колонка должна воспроизвести контент.

Далее добавляем новый терминал Google home notifier через вкладку Терминалы, указываем ip адрес текущего сервера, порт google-home-notifier (по умолчанию 8091)

Теперь на терминал Google home notifier можно отправлять медиа-поток, например из радио онлайн.

Для того, чтобы терминал был подписан на голосовые уведомления голосовых модулей, необходимо во вкладке Общий настройки -> Обработчики -> Before PlaySound (code)
указать следующий код:

if (preg_match('/cached\/voice.+/is',$filename,$m)) { $url='http://192.168.1.39/'.$m[0]; playMedia($url,'MAIN');DebMes($url,'googlenotifier');}

После последнего обновления я использую код

$url='http://192.168.1.39/cms/cached/voice/'.basename($filename); if (basename($filename)<>"dingdong.mp3"){playMedia($url,'MAIN');DebMes($url,'googlenotifier');}

Данный код воспроизводит последнее сообщение движда Yandex TTS. Если у вас другой TTS, то замените путь на другой.

Пока-что имеется не решенная задача с очередями, чтобы новое голосовое сообщение не замещалось предыдущим в момент совершения. Какого-то готового решения пока нет. Просто в сценарии вставляю команту sleep(60);

Управление сценариями с помошью голоса

Первым делом связываем умную колонку с домашним wifi, акаунтом гугл и т.д.

Далее через приложение Google Home заходим на сайт itfff.com и регистрируем новый акаунт, если еще не имеется. Связываем новый акаунт с учетной записью гугл.

Создаем NewApplet в правом углу сайта ifttt.com
1) нажимаем на + на фразе if ✚ this then that
2) ищем поиском Gogle Assistant и выбираем
3) Say a simple phrase
3) добавляем требуемую фразу
turn on the light in the corridor
и алиасы на всякий случай
turn light in the corridor
4) нажимаем + перед фразой that и выбираем webhooks
5) вводим публичный адрес своего сервера и изменяемого свойства или запуск сценария
http://login:password@xxx.xxx.xxx.xx/objects/?script=sendcamtelega

Теперь, если вы произнесете OK гугл, тёрн он лайт ин вэ коридор, у вас будет вызван сценарий sendcamtelega

Варианты написания по русских фраз по английски испробованы, но колонка на них реагирует не охотно. В течении 18 года русский язык должен появиться в гугл асистенте, соответсвенно скорее всего и появится в Google Home.

Также есть возможность настроить колонку через Api.ai (dialogflow) для передачи запроса в MD через соответсвующий плагин. (пока не тестировался, планирую протестировать после русификации асистента).

Тема на форуме http://majordomo.smartliving.ru/forum/viewtopic.ph...

Сохраню тут на всякий случай состояние event_say:

{"pushbullet":{"filter":""},"pushover":{"filter":""},"sms_ru":{"filter":""},"ssdp_finder":{"filter":""},"telegram":{"filter":"","priority":10},"windows_tts":{"filter":""},"yandex_tts":{"filter":"","priority":10}}

Discuss (2) (4)

See also:
2018-09-09 Список домофонов с IP интерфейсом
2018-08-29 Список кондиционеров с wifi
2018-08-29 Список доступных к покупке IP колонок
2018-07-15 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
2018-06-13 Полезные команды для работы с git
2018-05-27 преобразование html страниц в картинку и отправка в телеграмм
2018-05-24 Полезные sql запросы
2018-05-23 Создание образа nand памяти orange pi plus2
2018-05-16 Команды для работы с базой данных напрямую
2018-04-13 Индикаторы о заряде батареек без использования картинок
2018-04-06 Установка и настройка python на windows для работы систем распознавания
2018-04-05 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
2018-04-04 Управление таймерами выключения света
2018-04-04 Управление RGB контроллером на базе ESP8266
2018-04-03 Увеличение разрешения снапшотов китайских камер на чипе hi3516c H264
2018-03-13 Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц
2018-03-13 Настройка брокера MQTT
2018-02-17 Проект "умная входная дверь"
2018-02-11 Отправка всех значений свойства объекта в телеграм
2017-12-21 получение адреса по GPS координатам
2017-12-21 получение / передача GPS координат сервису livegps.com
2017-12-21 чтение мгновенных данных U,P, I электросчетчика милур 104
2017-12-21 Получение координат с маяков и gsm сигнализаций starline-online.ru

Екатеринбург, Россия

На форуме: directman66