Научим умный дом разговаривать

03 ноября 2018, 09:54

Хотите, чтобы ваш умный дом будил вас по утрам? Или встречал на входе? Или сообщал о важных событиях? Теперь это легко сделать. На любом языке. Потребуется лишь устройство с android. Причём подойдет абсолютно любой, даже убитый в хлам старенький телефон/планшет, т.к. все работает даже на 4.0 версии. И все это совершенно бесплатно. 

Подготовка

Для начала необходимо сделать три простых шага:

  1. Устанавливаем на устройство маленькое приложение-сервис: Remote Speak
  2. Нажимаем на токен, он копируется в буфер обмена. 
  3. Передаем токен каким-либо способом к себе на компьютер (через почту, мессенджеры, сеть или другим способом). 

На этом настройка устройства закончена, откладываем его в сторону. Приложение можно закрыть, оно останется висеть сервисом.

Реализация

Теперь, достаточно отправить через google api сообщение с указанием этого токена, и оно будет прочитано вслух, если устройство подключено к интернету. Сделать это можно множество способов, вот некоторые из них:

Из консоли:

curl -s "https://gcm-http.googleapis.com/gcm/send" -H "Authorization: key=AIzaSyCau_csJXUd5RFFjdKGKH6h9Tvaz4sLj5Y" -H "Content-Type: application/json" -d '{"to": "%TOKEN%", "priority" : "high", "data": {"lang": "%LOCALE%", "msg": "%TEXT%"}}'

  • %TOKEN% это ваш сохраненный ранее токен.
  • %LOCALE% это стандартная локаль, например ru-RU или en-US или любая другая. От этого зависит, на каком языке будет прочитано сообщение.
  • %TEXT% это само сообщение.

Fibaro

local TOKEN = 'Ваш токен';
local LANG = 'ru-RU';
local MSG = 'Проверка';
 
jsonTable = { to = TOKEN, priority = high, data = {lang = LANG, msg = MSG} };
jsonString = json.encode(jsonTable);
 
local http = net.HTTPClient();
http : request('https://gcm-http.googleapis.com/gcm/send',  {
    options = {
        method = "POST",
        headers = {
            ['Authorization'] = 'key=AIzaSyCau_csJXUd5RFFjdKGKH6h9Tvaz4sLj5Y',
            ['Content-Type'] = 'application/json'
        },
        data = jsonString
    },
    success = function(response) fibaro:debug (response.data) end,
    error = function(err) fibaro:debug ("Error:" .. err) end
});

Homey

Если у вас есть Homey, то все еще проще - устанавливаете плагин Remote Speak

Добавляете токены ваших устройств (любое количество), называете их как удобно:

и используете при создании Flow:

Другой контроллер

Если у вас другой контроллер, скорее всего он тоже поддерживает скрипты, и может отправлять данные в формате json.

Написание примеров и плагинов приветствуется, вы можете прислать их мне на почту admin@makesimple.org и они будут добавлены в статью.


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. Олег Челбаев (sprut)
    Олег Челбаев (sprut) 8 месяцев назад

    Благодарю за труды, завтра опробуем ))))

  2. Блюфоксов Блюфокс (GermanBluefox)
    Блюфоксов Блюфокс (GermanBluefox) отредактировано 8 месяцев назад

    @sprut Нужна поддержка хэштегов в этой платформе: Например для этой статьи - #homey #tts #android

  3. Геннадий Куракин (Onag)
    Геннадий Куракин (Onag) 8 месяцев назад

    Очень интересное направление! Интересует интеграция с колобком. Но хотелось чтобы говорили не устройства на андроиде, а сам колобок. Например, я вижу такой кейс: Утро, включилась например музыка (работает через плагин радио успешно), далее выключается музыка произносится курсы валют (не знаю как реализовать) затем включается музыка минут на 10, потом проговариваются новости (идеально было бы получать новости от определенных источников. Реализовал только на телефоне программой команды.) и тд. Вопрос именно в проговаривании каждый раз изменяющегося контента. Стандартные записанные фразы нормально работают и с саундбаром. В мыслях каким либо образом записывать m3u файлы например к себе на сервер/компьютер а дальше воспроизводить на колобке. Но какой инструмент использовать для создания голосовых файлов из текста пока не нашел.

К списку статей

Похожие статьи

14 ноября 2018, 06:43
Плагин для интеграции в Athom Homey дочерних zigbee-устройств, подключенных на координаторы deCONZ - RaspBee или ConBee.
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
09 января 2019, 17:34
Небольшая статья о том, зачем нужна малина, почему автоматизации в HomeKit это не очень хорошо и чем USB стик лучше отдельного шлюза.
02 октября 2018, 17:59
В статье изложено краткое руководство по созданию сценариев в Homey
09 мая 2018, 19:11
В данной статье я попытаюсь объяснить доходчивым языком основы написания сценариев для Athom Homey.
18 июня 2018, 17:31
Универсальные сценарии с использованием штатной возможности Devices.
23 октября 2018, 17:57
Подключение электросчетчика к УД.
29 ноября 2018, 12:16
Интегрируем пылесос Xiaomi в "умный дом" через Homey и управляем зональными уборками через Siri.
26 августа 2018, 07:07
Подключаем к Athom Homey умную ZigBee лампу на примере на примере спорта Zemismart и простейший пример редактирования плагина для Homey с ресурса GitHub
06 мая 2018, 21:21
Руководство по установке плагинов с ресурса GitHub на Homey с помощью командной строки Windows