Голосовое управление умным домом на Z-wave через Siri. Как я настроил умный дом в России с поддержкой Siri Умный дом сири

  • Некоторые функции, приложения и службы доступны не во всех регионах. Нажмите , чтобы увидеть полный список.
  • Для использования iCloud необходимо устройство с поддержкой iCloud. Для работы некоторых функций требуются iOS 11 и macOS High Sierra. Для использования некоторых функций требуется подключение к сети Wi-Fi. Некоторые функции доступны не во всех странах и регионах. Доступ к некоторым службам ограничен 10 устройствами.
  1. Смарт-телевизоры Samsung не поддерживают HomeKit, и их нельзя добавить в приложение «Дом».
  2. Голосовой помощник Siri доступен на iPhone 4s или новее, iPad Pro, iPad (3-го поколения или новее), iPad Air или новее, iPad mini или новее и iPod touch (5-го поколения или новее). Требуется доступ к интернету. Голосовой помощник Siri может быть доступен не на всех языках и не во всех регионах. Возможности Siri также могут различаться. Может взиматься плата за передачу данных по сотовым сетям.
  3. Чтобы можно было управлять элементами умного дома через iPad, он должен находиться в доме, должен быть включён и подключён к домашней сети Wi-Fi.

Дано: центр управления системами Z-Wave - контроллер Vera, OS X El Capitan или macOS Sierra, iOS 8.1 и выше.

Задача: заставить Siri управлять умным домом.

Странно что Vera ничего не знает про HomeKit, хотя, казалось бы... потребуется некий проксирующий элемент, чтобы эмулировать API яблочного хозяйства.

В качестве моста возьмём NodeJS сервер Homebridge с плагином VeraLink .

Запускаем Терминал.app и начинаем городить огород:)

Сейчас будет гайд для «начинающих».

Cкачиваем текущую версию Node.js (на данный момент - 6.2.2),

$ curl -o ~/Downloads/node-v6.2.2.pkg https://nodejs.org/dist/v6.2.2/node-v6.2.2.pkg

устанавливаем,

$ sudo installer -pkg ~/Downloads/node-v6.2.2.pkg -target / $ node -v

если в ответ получили: «v6.2.2», - значит всё хорошо, двигаемся дальше.

Через нодовский менеджер пакетов ставим Homebridge,

$ sudo npm install -g homebridge

плагин VeraLink,

$ sudo npm install -g homebridge-vera

создаём конфигурационный файл для Homebridge

$ mkdir ~/.homebridge

$ touch ~/.homebridge/config.json

и добавляем в него

$ nano ~/.homebridge/config.json

примерно такое содержание:

{

"name": "Homebridge",

"pin": "000-00-000",

"username": "CC:22:3D:E3:CE:30"

"platform": "Vera",

"veraIP": "192.168.1.2",

"includesensor": true,

"ignorerooms": ,

"securitypoll": 2000,

"dimmertest": true

VeraIP: текущий ip вашей Веры

Includesensor, dimmertest: со значением «true» разрешает системе работать с сенсорами и диммерами.

Pincode: Глобальный пин-код для всех девайсов, должен иметь формат ###-##-### и не должен иметь вид 111-11-111 или 123-45-678.

Securitypoll: Время в миллисекундах для обновления ваших сенсоров.

Проверяем...

$ homebridge

Если нет никаких ошибок, в ответ должны увидеть пин-код, список комнат и список девайсов, которые прописаны в контроллере.

Запоминаем этот прямоугольник, он нам пригодится позже.

Ок. Глушим сервер - CTRL+C.

Осталось добавить всё это дело в «автозагрузку».

Создаём плист

$ nano ~/Library/LaunchAgents/com.homebridge.server.plist

с примерно таким содержанием:


RunAtLoad

KeepAlive

Label
com.homebridge.server
ProgramArguments

/usr/local/bin/homebridge
-I

EnvironmentVariables

PATH
/usr/local/bin/:$PATH

Теперь сервер будет подниматься автоматически при условии, что текущий пользователь залогинится после ребута системы.
Back-end готов. Запускаем Homebridge...

$ launchctl load ~/Library/LaunchAgents/com.homebridge.server.plist

Чтобы Siri начала мониторить сеть на предмет умных девайсов, в iOS 10 достаточно добавить устройство Homebridge в приложении Home. Открываем приложение и нажимаем «Добавить аксессуар» (плюсик в верхнем правом углу).

Когда мы находим наш сервер, надо его добавить, как устройство. Для этого нам и пригодится пин-код, который мы видели выше. Программа ХомеКит предложит нам его просто напросто отсканировать, или ввести вручную.
После чего подтянется всё, что привязано к контроллеру Vera. Для iOS 8 и 9 нужно скачать из App Store любой HomeKit Hub, например, Insteon+ и добавить устройство Homebridge через него, по вышеуказанной схеме.
В итоге получаем очень даже симпатичное приложение с возможностью указывать Тег для Сири, то есть то, с помощью какой команды мы будем управлять конкретным устройством.
Для русской Siri имена комнат, устройств, сцен должны быть прописаны кириллицей, иначе, не поймёт.

Идея поуправлять умным домом с помощью голосовых команд родилась уже давно. И в каких-то системах так или иначе это реализовано. Siri – хороший и удобный голосовой помощник для владельцев айфонов. Понимает человеческую речь, удобен. Но по причине закрытого протокола, не используется для голосового управления «умных» устройств. Хорошо, что у Apple есть HomeKit – некий «туннель» для приема команд умными устройствами от Siri.

В этой статье я опишу процесс установки и настройки шлюза для взаимодействия Siri с устройствами домашней автоматизации и расскажу про некоторые особенности разных версий.
Основным контроллером умного дома у меня служит Vera3. Управляет соответственно всякой Audio/Video компонентами и Z-wave устройствами. Ну а «волшебной палочкой» будет Node-JS приложение VeraHomeKitBridge . Ниже я напишу, почему остановил свой выбор именно на этом приложении.
Скачиваем архив с GitHub’а. Нужно всё это где-то развернуть. У меня для этого есть виртуалка. Кто не держит дома сервер, можно задействовать Raspberry Pi под это дело.

Процесс установки
Краткий мануал по установке есть на странице проекта. Я рекомендую дополнительно воспользоваться инструкцией соседнего проекта на GitHub"е (на мой взгляд она более понятная).
Полностью копировать команды сюда не буду. Пройдусь по пунктам:

  1. Устанавливаем необходимые пакеты: nodejs, npm, git-core, libnss-mdns, libavahi-compat-libdnssd-dev .
  2. Копируем в lib/ сам HAP-NodeJS. Скачиваем его отдельным архивом отсюда .
  3. Устанавливаем плагины для работы с приложением.
  4. Правим config.json. Вписываем IP адрес контроллера Vera, и ещё можно поменять пин-код на свой.
  5. Пытаемся запустить приложение с помощью команды node app.js
Желательно сразу установить последнюю версию nodejs. У меня из стандартных репозиториев Debian"а установилась версия 0.10.29. Из-за чего возникла ошибка «error: ‘REPLACE_INVALID_UTF8’ is not a member of…» что-то там. Подключаем другой репозиторий и устанавливаем оттуда.

Curl -sL https://deb.nodesource.com/setup | sudo bash - apt-get install nodejs
после этого версия должна быть 0.10.44.

Еще в процессе запуска возникнут ошибки о недостающих плагинах. Ставим:
npm install имя_пакета
Еще может возникнуть ошибка «…invalid ELF header». Чтобы заработало, нужно зайти в lib/HAP-NodeJS и сделать
npm rebuild
В итоге должно: успешно стартануть Хоумкит для Веры и автоматом подцепиться сцены и выключатели, которые видит контроллер. Если это произошло – полдела сделано.
В дальнейшем, если никаких ошибок нет, можно запускать приложение в фоновом режиме командой:
forever start app.js
предварительно установив плагин
npm install forever
Делать это нужно, конечно же, убедившись, что вы находитесь в директории VeraHomeKitBridge .

Теперь настраиваем HomeKit на iPhone
Устанавливаем приложение Insteon+. При желании можно выбрать другие платные аналоги. Главное чтобы они работали с HomeKit.
Включаем в Настройки -> Конфиденциальность -> HomeKit программу, которую установили.
В настройках iCloud надо создать связку ключей.
Заходим в программу Insteon+. Делаем Add Device. Далее она ищет аксессуар, совместимый с HomeKit. У нас это запущенный сервис с запущенным HAP-NodeJS, который должен быть в той же локальной сети что и iPhone. Находим один аксессуар и добавляем. Вводим пин-код, который указали в config.json. Первый раз добавление длится около минуты. Если все прошло успешно, то все актуаторы и сцены из Веры будут видны в Insteon+ и даже будут работать от нажатия.
Но у меня есть приложение от Веры. Повыключать я и там могу. Insteon+ нужен для голосового управления. Для этого в настройках приложения выбираем Edit Device. Выбираем устройство и переходим в поле «Siri control». Туда надо вписать человеческое название актуатора или сценария. Например, если это реле освещения, то назвать «лампочка» или «свет». Вообще «свет» - у Siri более общее понятие. Поэтому старайтесь делать конкретные названия: утюг, чайник, телевизор, теплый пол…
Разложив устройства в приложении по комнатам можно давать команды: «Включи свет на кухне» Siri «видит» названия комнат. Еще в настройках устройства можно указать его тип. Сейчас там Light и Fan. Может в будущем добавятся и другие типы. Сейчас же можно для реле освещения указать, что это именно свет. Тогда устройство будет реагировать на «Включи свет на кухне» и не будет реагировать, если его тип будет Fan. Ниже в видео я продемонстрирую голосовое управление. Но у меня не так много устройств, чтобы показать все варианты управления голосом. Пока только принцип действия. А дальше только с расширением устройств и функционала Insteon+.


Как я и ранее написал, можно работать через сцены. Это дает нам возможность управлять практически всем, что доступно в интерфейсе Веры. Сцены все видны в приложении и доступны при голосовых командах. Поэтому можно управлять ресивером или телевизором, создав 2 сцены - включения и выключение ресивера. В Вере сцены следует навать Receiver - On и Receiver - Off. Тогда можно давать команды на «Включить ресивер» и «Выключить ресивер», а не «Включить ресивер» и «Включить выключение ресивера» соответственно.

Что еще?
HomeKit открывает двери в голосовое управление практически любой домашней автоматикой. Для этого есть более обширное понятие - homebridge. Куда можно запихнуть автоматику других производителей. Пошуршав все тот же GitHub можно найти механизмы управления для других контроллеров и платформ: WeMo, PhilipsHue… На плагин для Веры я наткнулся почти год назад, и за это время он продвинулся в лучшую сторону.
Выделю некоторые особенности: Если посмотреть код, то видно, что взаимодействие происходит через http протокол. Работает быстрее аналогов. Добавляются сразу все устройства в виде единого аксессуара. При желании можно расширять всю систему вдоль и поперек.

Немного лирики или трудности перевода
Тут остановлюсь немного на командах для Siri. Если название устройства вписать не явно, Siri лезет в Интернет по вашему запросу, а не даёт команду на это устройство. И команды, бывает, понимает по-разному. Иногда нужно «Включить …», но «Выключи …» Иначе на запрос «Выключить теплый пол», например, будет искать в интернете по запросу как выключить теплый пол.
Есть общие команды, как «Включи освещение в …», «Включи всё в …», «Опустить шторы». Есть команда на «Закрыть», «Открыть». Но в моем случае с гидролоками эта команда не сработала. Описывал устройство и как «вода» и как «кран». На команду «Закрыть кран в туалете» упорно не видит устройства. Хотя комнату «Туалет» определяет. Немного парадоксальная ситуация: называю гидролок «утюгом», даю команду «Включи утюг» - перекрывает воду. Называю «вода», «кран» - лезет в интернете искать как закрыть кран. Вообще, с закрытием, мне кажется, работает эта связка только с определенными устройствами типа замков. Но тогда он должен быть соответствующе описан в типе устройства. И тогда команду «Закрыть входную дверь» Siri понимает правильно.


На видео показан принцип работы. Перекрытие воды работает от реле, которое в HomeKit"е не удалось описать как гидролок или кран.

В общем, пользуйтесь, пробуйте на других устройствах как оно работает и совершенствуйте голосовое управление домашней автоматизацией.

3 мая 2016 в 14:07

Голосовое управление умным домом на Z-wave через Siri

  • Разработка для интернета вещей

Идея поуправлять умным домом с помощью голосовых команд родилась уже давно. И в каких-то системах так или иначе это реализовано. Siri – хороший и удобный голосовой помощник для владельцев айфонов. Понимает человеческую речь, удобен. Но по причине закрытого протокола, не используется для голосового управления «умных» устройств. Хорошо, что у Apple есть HomeKit – некий «туннель» для приема команд умными устройствами от Siri.

В этой статье я опишу процесс установки и настройки шлюза для взаимодействия Siri с устройствами домашней автоматизации и расскажу про некоторые особенности разных версий.
Основным контроллером умного дома у меня служит Vera3. Управляет соответственно всякой Audio/Video компонентами и Z-wave устройствами. Ну а «волшебной палочкой» будет Node-JS приложение VeraHomeKitBridge . Ниже я напишу, почему остановил свой выбор именно на этом приложении.
Скачиваем архив с GitHub’а. Нужно всё это где-то развернуть. У меня для этого есть виртуалка. Кто не держит дома сервер, можно задействовать Raspberry Pi под это дело.

Процесс установки
Краткий мануал по установке есть на странице проекта. Я рекомендую дополнительно воспользоваться инструкцией соседнего проекта на GitHub"е (на мой взгляд она более понятная).
Полностью копировать команды сюда не буду. Пройдусь по пунктам:

  1. Устанавливаем необходимые пакеты: nodejs, npm, git-core, libnss-mdns, libavahi-compat-libdnssd-dev .
  2. Копируем в lib/ сам HAP-NodeJS. Скачиваем его отдельным архивом отсюда .
  3. Устанавливаем плагины для работы с приложением.
  4. Правим config.json. Вписываем IP адрес контроллера Vera, и ещё можно поменять пин-код на свой.
  5. Пытаемся запустить приложение с помощью команды node app.js
Желательно сразу установить последнюю версию nodejs. У меня из стандартных репозиториев Debian"а установилась версия 0.10.29. Из-за чего возникла ошибка «error: ‘REPLACE_INVALID_UTF8’ is not a member of…» что-то там. Подключаем другой репозиторий и устанавливаем оттуда.

Curl -sL https://deb.nodesource.com/setup | sudo bash - apt-get install nodejs
после этого версия должна быть 0.10.44.

Еще в процессе запуска возникнут ошибки о недостающих плагинах. Ставим:
npm install имя_пакета
Еще может возникнуть ошибка «…invalid ELF header». Чтобы заработало, нужно зайти в lib/HAP-NodeJS и сделать
npm rebuild
В итоге должно: успешно стартануть Хоумкит для Веры и автоматом подцепиться сцены и выключатели, которые видит контроллер. Если это произошло – полдела сделано.
В дальнейшем, если никаких ошибок нет, можно запускать приложение в фоновом режиме командой:
forever start app.js
предварительно установив плагин
npm install forever
Делать это нужно, конечно же, убедившись, что вы находитесь в директории VeraHomeKitBridge .

Теперь настраиваем HomeKit на iPhone
Устанавливаем приложение Insteon+. При желании можно выбрать другие платные аналоги. Главное чтобы они работали с HomeKit.
Включаем в Настройки -> Конфиденциальность -> HomeKit программу, которую установили.
В настройках iCloud надо создать связку ключей.
Заходим в программу Insteon+. Делаем Add Device. Далее она ищет аксессуар, совместимый с HomeKit. У нас это запущенный сервис с запущенным HAP-NodeJS, который должен быть в той же локальной сети что и iPhone. Находим один аксессуар и добавляем. Вводим пин-код, который указали в config.json. Первый раз добавление длится около минуты. Если все прошло успешно, то все актуаторы и сцены из Веры будут видны в Insteon+ и даже будут работать от нажатия.
Но у меня есть приложение от Веры. Повыключать я и там могу. Insteon+ нужен для голосового управления. Для этого в настройках приложения выбираем Edit Device. Выбираем устройство и переходим в поле «Siri control». Туда надо вписать человеческое название актуатора или сценария. Например, если это реле освещения, то назвать «лампочка» или «свет». Вообще «свет» - у Siri более общее понятие. Поэтому старайтесь делать конкретные названия: утюг, чайник, телевизор, теплый пол…
Разложив устройства в приложении по комнатам можно давать команды: «Включи свет на кухне» Siri «видит» названия комнат. Еще в настройках устройства можно указать его тип. Сейчас там Light и Fan. Может в будущем добавятся и другие типы. Сейчас же можно для реле освещения указать, что это именно свет. Тогда устройство будет реагировать на «Включи свет на кухне» и не будет реагировать, если его тип будет Fan. Ниже в видео я продемонстрирую голосовое управление. Но у меня не так много устройств, чтобы показать все варианты управления голосом. Пока только принцип действия. А дальше только с расширением устройств и функционала Insteon+.


Как я и ранее написал, можно работать через сцены. Это дает нам возможность управлять практически всем, что доступно в интерфейсе Веры. Сцены все видны в приложении и доступны при голосовых командах. Поэтому можно управлять ресивером или телевизором, создав 2 сцены - включения и выключение ресивера. В Вере сцены следует навать Receiver - On и Receiver - Off. Тогда можно давать команды на «Включить ресивер» и «Выключить ресивер», а не «Включить ресивер» и «Включить выключение ресивера» соответственно.

Что еще?
HomeKit открывает двери в голосовое управление практически любой домашней автоматикой. Для этого есть более обширное понятие - homebridge. Куда можно запихнуть автоматику других производителей. Пошуршав все тот же GitHub можно найти механизмы управления для других контроллеров и платформ: WeMo, PhilipsHue… На плагин для Веры я наткнулся почти год назад, и за это время он продвинулся в лучшую сторону.
Выделю некоторые особенности: Если посмотреть код, то видно, что взаимодействие происходит через http протокол. Работает быстрее аналогов. Добавляются сразу все устройства в виде единого аксессуара. При желании можно расширять всю систему вдоль и поперек.

Немного лирики или трудности перевода
Тут остановлюсь немного на командах для Siri. Если название устройства вписать не явно, Siri лезет в Интернет по вашему запросу, а не даёт команду на это устройство. И команды, бывает, понимает по-разному. Иногда нужно «Включить …», но «Выключи …» Иначе на запрос «Выключить теплый пол», например, будет искать в интернете по запросу как выключить теплый пол.
Есть общие команды, как «Включи освещение в …», «Включи всё в …», «Опустить шторы». Есть команда на «Закрыть», «Открыть». Но в моем случае с гидролоками эта команда не сработала. Описывал устройство и как «вода» и как «кран». На команду «Закрыть кран в туалете» упорно не видит устройства. Хотя комнату «Туалет» определяет. Немного парадоксальная ситуация: называю гидролок «утюгом», даю команду «Включи утюг» - перекрывает воду. Называю «вода», «кран» - лезет в интернете искать как закрыть кран. Вообще, с закрытием, мне кажется, работает эта связка только с определенными устройствами типа замков. Но тогда он должен быть соответствующе описан в типе устройства. И тогда команду «Закрыть входную дверь» Siri понимает правильно.


На видео показан принцип работы. Перекрытие воды работает от реле, которое в HomeKit"е не удалось описать как гидролок или кран.

В общем, пользуйтесь, пробуйте на других устройствах как оно работает и совершенствуйте голосовое управление домашней автоматизацией.

Наладить максимальный комфорт в квартире с каждым месяцем становится все дешевле и проще. В этой пошаговой инструкции я покажу как легко и просто добавить вашему дому голосового управления! Для голосового управления нам понадобятся:

  1. Контроллер RaZberry или любой компьютер с ПО Z-Way
  2. Пара Z-Wave девайсов, а в прочем и любые WiFi лампочки подойдут
Я использую Raspberry Pi B+, поэтому далее пойдет описание настройки голосового управления именно на нем. Видео работы в конце статьи.

1) Устанавливаем ПО Z-Way версии старше 2.2.2 :
wget -O - razberry.z-wave.me/install/v2.2.2-test-new-webserver-8-ga9cd319 | sudo bash Z-Way это Hub для Z-Wave, Enocean устройств, различных WiFi лампочек, розеток, замков и других IoT управляемых HTTP и TCP запросами. Веб интерфейс доступен на порте 8083.

2) Устанавливаем последнюю версию Node.js
wget https://nodejs.org/dist/v4.4.5/node-v4.4.5-linux-armv6l.tar.xz tar -xvf node-v4.4.5-linux-armv6l.tar.xz cd node-v4.4.5-linux-armv6l sudo cp -R * /usr/local/ Node.js это платформа для запуска JavaScript кода на сервере основанная на движке Google V8.

3) Устанавливаем Homebridge и плагин Homebridge-zway
sudo npm install -g homebridge sudo npm install -g homebridge-zway Homebrige реализует поддержку Homekit. Homebrige-zway это плагин добавляющий улучшенную поддержку Homekit в Z-Way.

4) Создаем конфиг Homebrige /usr/local/lib/node_modules/homebridge/config.json
{ "bridge": { "name": "Homebridge", "username": "CC:22:3D:E3:CE:31", "port": 51826, "pin": "031-45-154" }, "platforms": [ { "platform": "ZWayServer", "url": "http://localhost:8083/", "login": "admin", "password": "admin" } ] } Последний слэш в url очень важен, без него не работает.

5) Запускаем Z-Way и Homebridge
sudo /etc/init.d/z-way-server start sudo homebridge -U /usr/local/lib/node_modules/homebridge & Если все верно то в логе вы увидите устройства которыми можете управлять и PIN код.

6) С помощью приложения Home на телефоне или других (MyTouchHome , MyHome App и др.) добавляем Homekit устройства.

7) Готово! Теперь домом можно управлять с помощью голоса! Комфортного управления!