directman

<<< Назад

Использование колонки 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}}

Обсуждение (2) (4)

Смотрите так же:
12.10.2019 Подключаем светодиодные ленты к контроллеру MegaD
11.10.2019 Варианты интеграции электроприводов
30.09.2019 Выбор источников сигнала телевизоров LG 2013
29.09.2019 Узнаем версию дистрибутива linux
24.09.2019 Установка необходимых пакетов в xpenology через docker
16.09.2019 Примеры разметки Markdown
14.09.2019 Краткий обзор выключателей, в том числе Sonoff T4EU1C
13.09.2019 Сценарий для канала @MajorDoMo_feed
09.09.2019 Делаем majordroid лаунчером андройд по-умолчанию.
04.09.2019 Реализация сценария "кто-то пришел"
02.09.2019 Отправляем график hightcharts свойства любого объекта в телеграмм
17.09.2019 Автономная сигнализация на базе контроллера megad-2561
27.08.2019 Управление громкостью терминалов через телеграмм
26.08.2019 Полноценная консоль в браузере (wetty)
16.08.2019 Точечное регулирование радиаторов отопления
18.08.2019 Собираем голосовой помощник на базе WM8960 Audio HAT и raspberry pi zero w
13.08.2019 Общедоступная ссылка с закатом, рассветом и текущей погодой
24.07.2019 Самый дешевый вариант видеонаблюдения
22.07.2019 Запуск MajorDroid на одноплатниках, старых планшетах, телефонах.
22.07.2019 Запуск Majordroid на старом железе
15.07.2019 Устанавливаем opencv и необходимые библиотеки на ubuntu 18.04 без использования python
05.07.2019 Решение проблемы Incorrect integer value: '' for column 'ID' at row 1
04.07.2019 О приборах учета и удаленном снятии показаний (вода и газ)
04.07.2019 О приборах учета и удаленном снятии показаний (электричество)
03.07.2019 Конвертируем rs-485 в TCP-IP
24.06.2019 Наблюдение за радиационной обстановкой в регионе
06.06.2019 Меню пылесоса Xiaomi в телеграмм
06.06.2019 Удобный просмотр данных сенсоров через телеграмм
06.06.2019 Просмотр камер через телеграмм
06.06.2019 Управление светом через телеграмм
06.06.2019 Колор-пикер для телеграм
06.05.2019 Список символов emoji
17.04.2019 Установка z-way на Ubuntu
16.04.2019 Решение проблемы ERROR 1040 (HY000): Too many connections
09.09.2018 Список домофонов с IP интерфейсом
29.08.2018 Список кондиционеров с wifi
29.08.2018 Список доступных к покупке IP колонок
15.07.2018 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
13.06.2018 Полезные команды для работы с git
27.05.2018 преобразование html страниц в картинку и отправка в телеграмм
24.05.2018 Полезные sql запросы
23.05.2018 Создание образа nand памяти orange pi plus2
16.05.2018 Команды для работы с базой данных напрямую
13.04.2018 Индикаторы о заряде батареек без использования картинок
06.04.2018 Установка и настройка python на windows для работы систем распознавания
05.04.2018 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
04.04.2018 Управление таймерами выключения света
04.04.2018 Управление RGB контроллером на базе ESP8266
03.04.2018 Увеличение разрешения китайских камер на чипе hi3516c H264
13.03.2018 Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц
13.03.2018 Настройка брокера MQTT
17.02.2018 Проект "умная входная дверь"
11.02.2018 Отправка всех значений свойства объекта в телеграм
21.12.2017 получение адреса по GPS координатам
21.12.2017 получение / передача GPS координат сервису livegps.com
21.12.2017 чтение мгновенных данных U,P, I электросчетчика милур 104
21.12.2017 Получение координат с маяков и gsm сигнализаций starline-online.ru

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

На форуме: directman66