Главная Умный Дом Установка homebridge на raspberry pi

Установка homebridge на raspberry pi

by admin
0 comment
Установка homebridge на raspberry pi

Система умный дом — Как научить siri исполнять маты?

Как использовать яблочный homekit в связке с Raspberry pi в качестве сервера автоматизации всех имеющихся датчиков и управляемых устройств и при этом управлять любым копеешным электрческим говном всем, что у вас есть из айфона?

Начиная с IOS 10, Аpple выпустила замечательную вещь — homekit. Вы можете видеть это в телефоне как программу Дом. Айтишные «Робин Гуды» сразу пропатчили этот функционал в правильную сторону, чтобы работать можно было с чем угодно. Даже с самым дешманским датчиком за семь рублей пятьдесят копеек, а не только со сверх-супер-пупер-сертифицированной продукцией (обычные датчики/устройства, но продаваемые за бешеные деньги с одобрения Аpple).
Для любителей коротких обзоров и желающих убедиться воочию, что из этого выходит, мы подготовили небольшое видео:

А для желающих собрать нечто подобное самостоятельно — немного терпения и добро пожаловать 🙂

Подготовка системы

Делаем апдейт и апгрейд:

ставим git и make, если не установлены

Если у вас установлена RASPBIAN JESSIE, все в порядке. У вас уже установлен необходимый компилятор, но на всякий случай лучше проверить.
Версия должна быть такой, как показано ниже:

Если же у вас другой дистрибутив или версия компилятора ниже, то придется поставить:

Установка NodeJS

Начиная с 4.0.0 версии NodeJS стала поддерживать ARM платформы по умолчанию. Львиная доля одноплатников работает именно на чипе ARM. Raspberry pi — не исключение.
Для желающих поставить NodeJS вручную на вашу малину или произвольный arm-одноплатник, можно воспользоваться этой ссылкой:
Установка ручками NodeJS для всех версий Raspberry pi.
Установка ручками NodeJS для Raspberry pi3.

Но стоит учесть, что homebridge, если не ошибаюсь, начинает работать с версии Nodejs 5.10 , поэтому стоит несколько модифицировать инструкции в ссылках и выбрать Nodejs посвежее.
Лично я предпочитаю не усложнять себе ситуацию совместимостью версий и поставлю последнюю доступную:

проверяем версию:

Установка Homebridge

Устанавливаем Avahi и другие зависимости. Это необходимо для пакета mdns из библиотеки HAP-NodeJS.

Проверьте ваши пути! Если вы все-таки ставили пакет ручками, а не через apt-get install — пути должны быть /usr/local/lib вместо /usr/lib/
Теперь ставим сам Homebridge и зависимости:

Можем проверить тестовым запуском:

Если видите что-то похожее, значит, все функционирует.
Строка: config.json (/home/pi/.homebridge/config.json) not found говорит, что не существует конфига для пользователя из-под которого мы совершили запуск. Нужно определиться с тем, из под кого мы будем запускать службу, и создать все необходимые директории и этот конфиг для выбранного пользователя.
Из-под кого все запускать? Конечно, в целях безопасности лучше из-под отдельного специально созданного пользователя, но тогда получим кучу геморроя с модулями, которые будут дергать различные системные скрипты и сценарии, придется много дебажить по каждому плагину и сценарию. Рекомендую для проверки использовать пользователя root, а в дальнейшем перевести всю работу на специально созданного пользователя. Создаем директорию и конфиг:

Пример минимального рабочего конфига можно скопировать из
/usr/lib/node_modules/homebridge/config-sample.json:

Проверим, все ли правильно:

Должны увидеть, что строка с отсутствием конфигурационного файла пропала.
Теперь необходимо сделать homebridge демоном и добавить его в автозагрузку. Для этого нам потребуется создать небольшой init скрипт:

Делаем скрипт исполняемым и добавляем в стандартные уровни загрузки:

Теперь при загрузке homebridge будет стартовать автоматически.
Проверим запуск и останов в ручном режиме, все должно отрабатывать:

Последний штрих — добавление аксессуара «My bridge to RPI» в homekit вашего айфона.
Для этого в айфоне должен быть включен bluetooth и оба девайса должы находится в одной сети WiFi.
Останавливаем службу homebridge, если она запущена и запускаем из-под root homebridge в интерактивном режиме:

Заходим в приложение Дом на айфоне, создаем новый дом, и нажимаем ‘добавить аксессуар’. Включится поиск (bluetooth должен работать на всех девайсах) и вскоре будет обнаружен ваш мост «My bridge to RPI». Добавляем мост, вводим руками пароль из homebridge (пароль из рамочки), со всем соглашаемся, радуемся!
Готово.  Можно проверить перезагрузкой малины ваш результат: после перезагрузки мост должен снова стать активен в вашем телефоне.

Установка плагинов homebridge

Переходим к вопросам насущным: ноду поставили, а как присобачить в нее наше имеющееся добро?
Потребуются плагины. Можно писать самим, если квалификация позволяет, можно воспользоваться готовыми.
Мы поставим несколько простых и в то же время очень мощных инструментов — это плагины включения, выключения и димирования ваших устройств. Для примера этого хватит. В дальнейшем рекомендую поискать в разделе плагинов что-то в духе термометра/влажности/объемника из файла или скрипта, чтобы окончательно перекрыть вопросы с имеющимися у вас датчиками и устройствами, не поддерживающими прямую коммуникацию с apple.

cmdswitch2
Простое включение/выключение устройств из скриптов. Ставим:

homebridge-cmd_light_control
Включение/выключение/димирование света скриптами. Ставим:

Теперь нам необходимо скорректировать конфигурационный файл homebridge и добавить в него ваши имеющиеся девайсы. Для примера будет лампа и вентилятор, подключенные через реле на 220 вольт.

Как видно из конфига, все управляется скриптами и обратная связь происходит тоже через скрипт. И это прекрасно! Ниже приведу простейшие примеры включения/выключения реле 220v и их обратного контроля, которые будут коммутировать фазу лампы и вентилятора. Кстати, кто не знает, как подключить такие реле и где нужно быть аккуратным — вам стоит прочитать подобную инструкцию. Рекомендую подойти ответственно и очень внимательно прочесть, если еще не сталкивались с управлением и коммутацией 220V.

Для лампы скрипты полностью аналогичны, только смените pin, на который вы подключаете сигнальный провод реле лампы. Делаем все скрипты исполняемыми, при необходимости ставим питоновские библиотеки для корректного исполнения скриптов.

Перезапускаем homebridge:

Заходим в айфон, в приложение дом — должны появиться 2 новых девайса.
Ура! Реле подключены как управляемые выключатель (switch) и лампа. Все, теперь мы владельцы сертифицированного и одобренного Apple вентилятора 89-го года выпуска и умнейшей диодной лампы за 32 рубля!

Шугар-он-топ

«Где же обещанные маты?» — спросите вы. Все просто:
снова идем в приложение Дом, нажимаем на плюсик, добавляем сценарий, выбираем пользовательский и именуем сценарий как хотим. Тоже самое касается девайсов. Их можно переименовывать как угодно. Стоит учесть регистр — иногда он влияет на результат распознания. В процессе распознания Siri пишет с заглавной только первое слово, а при именовании сценария — заглавная буква вылезает после каждого пробела.
Также хочу привести пример возможных команд по управлению устройствами для Siri. Хоть пример и на английском, но думаю, вам не составит труда перевести эти незамысловатые фразы:
“Turn on the lights” or “Turn off the lights.”

“Dim the lights” or “Set the brightness to 50%.”

“Set the temperature to 68 degrees.”

“Turn on the coffee maker.”

“Turn on the upstairs lights.”

“Turn off Chloe’s light.”

“Turn down the kitchen lights”

“Dim the lights in the dining room to 50%.”

“Make the living room lights the brightest.”

“Set the Tahoe house to 72 degrees.”

“Set the thermostat downstairs to 70.”

“Turn on the printer in the office.”

“Set up for a party, Siri.”

“Set the dinner scene.”

“Set my bedtime scene.”
Последние 3 фразы относятся к сценариям.

Ложка дегтя в бочке меда

Увы, сейчас нет возможности (может, мы об этом не знаем) нормально работать с Siri через SiriProxy.
С точки зрения мата, да и вообще произвольных речевых конструкций, SiriProxy — полная свобода действий. В ней можно было закладывать в свои программы различные фразы, проксируя распознанные запросы. Это было шикарно 🙂
Но, увы, протокол и логику Siri несколько переписали и с 7 версии IOS и выше SiriProxy работает в холостую. Согласитесь, жить на IOS6 сейчас будет несколько проблемно. Но мы не расстраиваемся и ждем очередной дыры подарков от Apple в использовании функционала на свое усмотрение!

алиса умный дом

Похожие записи

Оставить комментарий

Обнаружен Adblock

Пожалуйста, поддержите нас, отключив расширение AdBlocker в своих браузерах для нашего веб-сайта.