Как подружить Алису и HomeBridge

  • Tutorial
image

Давно хотел в дополнение к умному дому голосового ассистента понимающего и говорящего на русском языке. В итоге решил рискнуть и взять сырую новую колонку Яндекс.Станция с молодой, но уже многим полюбившейся Алисой. Первое впечатление было отличным, но когда я наслушался анекдотов и набеседовался вдоволь я начал познавать практическую сторону колонки. Больше всего меня интересовал вопрос взаимодействия Алисы с умным домом.

Описание проблемы
Мой дом функционирует на основе сервера HomeBridge. Про его настройку и использование на хабре и других ресурсах написано множество статей (раз, два, три), потому я не буду останавливаться на этом. Не изучив вопрос основательно, я был уверен в том, что в каталоге навыков Алисы уже полно решений для взаимодействия с системами управления умным домом. Оказалось, что на момент написания статьи большая часть навыков по тематике «Умный дом» требует устройство с дисплеем для работы, что не подходит для станции. Единственным навыком с виду отвечающим требованиям и умеющим работать без дисплея был «Альфред». Навык не подошел мне по причине того, что он жестко завязан на сервис — IFTTT. Допустим я хочу создать виртуальный переключатель, функционирующий в системе умного дома и позволяющий привязывать сценарии к его текущему состоянию. Альфред использует сервис WebHook для IFTTT с помощью которого можно только воздействовать на триггер создаваемый в апплете IFTTT, но нет возможности получить текущее состояние апплета (можно перевести переключатель в положение вкл или выкл, но нельзя узнать в каком состоянии сейчас переключатель).

Для решения вышеописанной задачи создан сервис Alice-HomeBridge, предназначенный для связи голосового помощника Яндекс.Алиса и различных систем управления умным домом. Далее в качестве примеров настроек будем рассматривать конфигурацию HomeBridge, но данный подход применим и для других систем таких как Home AssistantopenHAB и других. 

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



Изменить или узнать состояние переключателей можно с помощью специально сформированного GET запроса к сервису.



Для того чтобы сервис мог взаимодействовать с голосовым ассистентом «Алиса» создан навык «Ленивый Джимми».

Ленивый Джимми
Скажите Алисе: «Запусти навык ленивый Джимми» и он предложит вам сообщить код активации, который вы можете найти в своем личном кабинете



После активации вы можете изменить состояние ваших переключателей с помощью команд «Включи» или «Выключи». Например, если вы скажете «Включи Свет», состояние переключателя «Свет» изменится на положительное. Если вы скажете просто «Свет», то состояние переключателя изменится на противоположное.

Для того чтобы диалог звучал более естественно присутствует возможность создавать переключатели с более понятными названиями, например, «С Утречком», тогда вы сможете сказать Алисе «Скажи Джимми С Утречком» и состояние переключателя изменится.

Осталось настроить HomeBridge. Для примера будем использовать расширение cmdswitch2. Создадим для HomeKit переключатель с названием «Alice Button 1».

{
  "platform": "cmdSwitch2",
  "name": "CMD Switch",
  "switches": [
    {
      "name": "Alice Button 1",
      "on_cmd": "curl --silent \"http://alicehomebridge.org/alice/switches.php?switch=34&hb=ADB7BYBT728O&state=set&val=true\"",
      "off_cmd": "curl --silent \"http://alicehomebridge.org/alice/switches.php?switch=34&hb=ADB7BYBT728O&state=set&val=false\"",
      "state_cmd": "curl --silent \"http://alicehomebridge.org/alice/switches.php?switch=34&hb=ADB7BYBT728O&state=get\" | grep -oh \"true\"",
      "polling": true,
      "interval": 2
    }
  ]
}

Для того чтобы не перегружать сервер лишними запросами значение параметра interval ставим не меньше 2 секунд.

Все готово.



Теперь, если сказать «Алиса скажи ленивому Джимми с утречком», переключатель «Alice Button 1» изменит состояние. Вот демонстрация того, как все работает в совокупности с настроенными сценариями HomeKit:


Полная версия файла конфигурации HomeBridge

P. S. Большинство систем управления умными домами, например, HomeKit, поддерживают создание сценариев. Вы можете создать сценарий, который хотели бы использовать в определенной ситуации, например, когда вы просыпаетесь и назначить его вызов на событие «Включение переключателя С Утречком».

P. S. Мой сервис только развивается и еще, мягко сказать, далек от идеала. Но и Алиса некоторые фразы, время от времени, в упор отказывается воспринимать. Например, она прекрасно передает навыку фразу «Включи свет», но фразу «Доброе утро» не передаст. Надеюсь в Яндекс знают о проблеме и скоро ее исправят. Жду ваших комментариев.
Поделиться публикацией

Похожие публикации

Комментарии 23

    0
    Я может не в тему спрошу, а где и какой привод для штор покупали? Пока делаю ремонт, тоже хочу в спальню себе такой поставить. Чем больше деталей, тем лучше. Заранее благодарю!
      0

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

        –2
        а зачем? блин после того как амазон слила аудиозаписи пользователя аналогичного сервиса… как то боязно такое прикручивать к своему дому.
          –4
          Это для людей которые не могут себя реализовать но им хочется кем-то командовать, вот только командуют по прежнему ими.
            0
            судя по видео в колонке не особо чувствительный микрофон, да и опять же все эти облачные сервисы, зачем если в андроид с версии 4.2 уже есть офлайн распознавание, берем старенький телефон с програмкой и парсим в УД распознанный текст, при чем без всяких ок гугл, алиса и че там еще есть…
          +2
          Смотрю видео и думаю, что голосовое управление техникой это технология завтрашнего дня. Но не сегодняшнего.
            +1
            Тут беда в том, что есть много путей и все они пока не приводят к желаемому. Колхозить самому, как предлагает DJONvl, это первое что пришло мне в голову, но когда я начал обдумывать детали реализации (ну чтобы и микрофонов было несколько и слушал нонстопом и человечность бы не помешала) понял, что тут даже парой лет не обойдется…
            HomePod дорогой, Amazon не говорит на русском языке.
            Google недавно, вроде бы, научил свои колонки понимать русский, в эту сторону можно попробовать посмотреть.
            Яндекс радовал своей ценой и перспективностью развития, но создается впечатление что они положили известно что на станцию, так как за все время что она у меня есть я не заметил каких либо улучшений или исправления косяков.
            Так что я полностью с вами согласен на счет «завтрашнего дня». Надо подождать пока все решения допилят, а потом уже можно будет выбрать.
              0
              Google пока отключил поддержку русского в колонке. На волне новостей, что гугл начал понимать русский купил колонку, но на данный момент колонка русский не распознает и по-русски не отвечает.
              0
              Просто производители хотят на этом деньги зарабатывать, автономные девайсы им не интересны. А фразы типа «набери номер Васи» телефоны понимали лет 15 назад…
              +4
              Будущее уже рядом. Грабитель кричит через закрытую дверь:
              «Алиса, скажи ленивому Джимми Открыть дверь».
              Джимми: «Сделано.»
                0
                xDD Если дом умный, а тот кто его настраивал не очень, то так и будет.
                  0
                  Тут вспомнил ролик про шотландцев в лифте с голосовым управлением.
                    0
                    Голосовой помощник это не ИИ ;) Социальная инженерия всё также применима к хозяину задавшему команды и «таадам».
                  0
                  а за что заминусовали? ведь действительно яндекс со своей алисой не предоставляет ни каких гарантий невозможности слива конфидициальной информации… даже нет такого пункта в договоре. а ведь надо такие компании принуждать к ответственности за такие утечки.
                    –1
                    Статья не про ответственность и утечки. Она про то как связать Алису и Homebridge.
                    Зачем, например, в комментариях к статье про новый квадрокоптер заводить спор о вреде наносимом окружающей среде литий-ионными аккумуляторами, которые используются в квадрокоптерах?
                      +1
                      а ничего, что автор популяризирует дырявый софт? авторы таких статей должны быть наказаны. давайте, повосхваляйте еще и дырявые процы от интел.
                        –1
                        Это не статья, а реклама. Причем реклама того что нельзя делать, как раз из за дырявости всей системы.
                        Или вам нравится когда вашей кровати спят соседи?
                          0
                          Так ну это уже не смешно.

                          Причем тут реклама? Какие еще соседи? Это Tutorial. Причем tutorial для тех кто уже пользуется Алисой. Я никого ничему не призывал, я написал как можно связать Алису и Homebridge. Хочешь — связывай, не хочешь — не связывай. Идея проекта вообще возникла из за того, что я у себя дома захотел такое сделать. Сделал и решил поделиться.
                          Причем тут «дырявости всей системы»? Давайте еще про политику поговорим, про пенсии?
                        0
                        А к чему плач? Боишься волков — не ходи в лес. У нас вроде пока не принуждают в обязательном порядке покупать Алису.
                        0
                        Все помнят первые крики про голосовое управление ПК? Многие хотя бы текст голосом в наше время вводят, не говоря уже про открытие окон, нажатие кнопок и пр.? По-моему имеет место подмена понятия «умный дом» понятием «дом с 1000 и 1 рычажком». Умный дом — система датчиков, логики и конечных устройств, которая работает автоматически и настраивается редко, как вебсервер. Ключевое здесь, что тебе просто удобно и ты не замечаешь, что умный дом вообще есть. Сколько же сотен квадратов должно быть в квартире, чтобы лень было руку протянуть.

                        Еще такой момент, как аммортизация. Всякий раз, когда дома добавляется новая железка, это меня удручает, поскольку диагностика, замена батареек или расходников и прочее в том же духе на мне. На сервере я могу подавляющее большинство сервисных процедур заскриптовать, в реальном же мире так нельзя. И вот с какого-то момента я стал стремиться к уменьшению количества девайсов и к отказу от новых, где это возможно. Хочется расслабиться и не думать обо всем этом барахле. А ведь еще надо обслуживать машину, еще есть дети и животные (частично, к слову, забота о них автоматизируема, но кто будет обслуживать автоматику?). Вот и вопрос, реально ли удобство от УД стоит всей этой возни, а потом периодического, в течение лет или десятков лет обслуживания? Робот-пылесос, стиралка, посудомойка, сушилка, мультиварка — они приносят реальную пользу, их обслуживать понятно зачем. А приводы для штор, навороченная климатическая логика, управляемые из шелла выключатели и смыв в сортире — это часом не игрушки ли для выросших мальчиков?
                          0
                          На счет подмены понятий я согласен. Многие действительно городят систему которая 5 раз проигрывает по скорости выключателю, но «зато» его можно с компа выключить. Я вижу пользу в голосовом помощнике только когда я на кухне готовлю и у меня руки грязные (собственно так и использую, я правда этим пользуюсь). Но это так скажем мое (и думаю не только мое) хобби мне лично нравится «всей этой возни, а потом периодического, в течение лет или десятков лет обслуживания». Статья скорее будет интересна не тем кто первый раз услышал про умный дом и захотел попробовать, а тем кто уже перепробовал много вариантов, но так и не нашел золотую середину. Может быть, если Яндекс будут серьезнее относиться к станции и Алиса перестанет тупить, именно этот способ взаимодействия с домом окажется самым приятным.
                          P.S. Привод для штор у меня год и это очень удобная штука.
                          +2

                          Очень крутая новость. Сегодня же попробую настроить. Единственное, что смущает — Ленивый Джимми это очень сложное слово. Можно ли навык как-то проще назвать?

                            0

                            Вот такие требования у Яндекс. Если есть идеи-предложения я буду в восторге.

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

                          Самое читаемое