DiyIphone и ipad

Как сделать DIY Wi-Fi Light под управлением Siri

Как сделать DIY Wi-Fi Light под управлением Siri

HomeKit, наконец, вышел в дикую природу, предоставив возможность голосового управления через Siri для нескольких потребительских умных домашних устройств.

К сожалению, я имею в виду буквальную горстку — все, что вы уже купили, вероятно, не совместимо. Тем не менее, протокол уже был переработан и доступен эмулятор с открытым исходным кодом для HomeKit API: или, говоря простым языком, теперь вы можете создавать «поддельные» устройства HomeKit, и Siri будет управлять ими, как и любой другой официальный аксессуар HomeKit.

Сегодня мы собираемся создать управляемый Wi-Fi источник света и управлять им с помощью Siri. Вот демо.

Вот что вам нужно:

  • Raspberry Pi (я использовал RPi2, есть небольшая разница в версиях Node для установки, учитывая обновленную архитектуру ARM — см. Примечания позже).
  • Брокер MQTT установлен на Raspberry Pi. См. Раздел «Установка Mosquitto на Pi» в моем Руководстве по OpenHAB, часть 2, Его не нужно устанавливать специально на Pi — вы даже можете использовать облачный сервер MQTT, но так как в любом случае нам нужен Pi для этого урока, это удобно.
  • NodeMCU v2 (совместимый с Arduino)
  • Неопиксельные светодиоды (я бы порекомендовал 4 пикселя для тестирования, затем вы можете добавить внешний источник питания и добавить столько, сколько хотите)

Установка моста HomeKit

Мы собираемся установить приложение NodeJS под названием HAP-NodeJS на Raspberry Pi: это сформирует мост между запросами HomeKit и устройствами Wi-Fi. Сейчас мы настроим этот мост с одним аксессуаром, но вы можете добавить столько, сколько захотите.

Я на самом деле устанавливаю это на свой существующий домашний сервер под управлением OpenHAB — я надеюсь соединить их вместе позже, но пока знаю, что они могут сосуществовать на одном Raspberry Pi. Если вы делаете то же самое, на всякий случай сделайте резервную копию своей текущей карты Pi SD. Если все пойдет не так, вы можете восстановить это.

Начните с полного обновления с терминала или сеанса SSH. .

  sudo apt-get update
 sudo apt-get upgrade

Возможно, вам придется сделать это дважды, если это было какое-то время.

Теперь установите несколько основных пакетов, которые нам понадобятся:

  sudo apt-get установить npm git-core libnss-mdns libavahi-compat-libdnssd-dev

Далее мы собираемся установить последнюю версию NodeJS. У вас может возникнуть соблазн сделать это с помощью apt-get , но не делайте этого — эта версия действительно старая и не будет работать. Вместо этого, посетите nodejs.org , перейдите в каталог download / release / latest-v5.x.0 / и проверьте, какая ссылка на последнюю версию. Вы ищете linux-armv7l для Raspberry Pi 2 или linuxarmv6l для оригинальных моделей RPi. Затем, при необходимости изменив URL-адреса и имена каталогов, загрузите и установите с помощью следующих команд.

  wget https://nodejs.org/download/release/latest-v5.x.0/node-v5.5.0-linux-armv7l.tar.gz
 tar -xvf node-v5.5.0-linux-armv7l.tar.gz
 cd node-v5.5.0-linux-armv7l
 sudo cp -R * / usr / local

Подтвердите, набрав

  версия узла

И вы должны увидеть v5.5 (или что-то последнее, что вы скачали).

Далее у нас есть несколько модулей Node для установки.

  sudo npm install -g npm
 sudo npm install -g node-gyp

В этой первой команде мы на самом деле используем Node Package Manager (npm), чтобы установить более новую версию. Умная!

Теперь, чтобы загрузить эмулятор HomeKit под названием HAP-NodeJS :

  git clone https://github.com/KhaosT/HAP-NodeJS.git
 cd HAP-NodeJS
 нпм перестроить
 sudo npm install node-persist
 sudo npm установить srp

В этот момент я запустил эту ошибку: « #error Эта версия узла / NAN / v8 требует компилятора C ++ 11 ». Если это произойдет с вами, установите более свежий компилятор C ++ с помощью команд:

  sudo apt-get установить gcc-4.8 g ++ - 4.8
 Возможности обновления sudo --install / usr / bin / gccgcc / usr / bin / gcc-4.6 20
 Возможности обновления sudo --install / usr / bin / gcc gcc /usr/bin/gcc-4.8 50
 Возможности обновления sudo --install / usr / bin / g ++ g ++ /usr/bin/g++-4.6 20
 Возможности обновления sudo --install / usr / bin / g ++ g ++ /usr/bin/g++-4.8 50

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

  sudo npm установить srp
 sudo npm install mdns --unsafe-perm
 sudo npm install debug
 sudo npm install ed25519 --unsafe-perm
 sudo npm install curve25519 --unsafe-perm

Это должно быть все. Попробуйте запустить эмулятор с:

  узел Core.js

Если вы получаете сообщения о том, что он не может найти такой-то и такой-то модуль, просто снова введите команду sudo npm install и добавьте имя того модуля, который отсутствовал. Предполагая, что все хорошо, вы должны увидеть несколько предупреждений, и ваш мост HomeKit будет работать. Вот как выглядит успех:

установлен hap-nodejs

Сразу видно, что уже создан набор из 6 поддельных устройств. Мы будем использовать их в качестве отправной точки для нашего собственного индикатора Wi-Fi позже, но пока будем использовать их только для тестирования. Вы также можете увидеть больше информации отладки, если вы запустите сервер с:

  DEBUG = * узел Core.js 

Теперь перейдите к устройству Apple, способному работать с Siri. Любопытно, что Apple не предоставляет стандартное приложение HomeKit, кроме зарегистрированных разработчиков, поэтому загрузите бесплатное приложение Elgato Eve, приложение для управления HomeKit, которое позволяет добавлять (даже не Elgato) устройства в сеть HomeKit.

При первом запуске приложения вам нужно будет назвать свой дом, пройтись по нему и пройтись по нему. Затем выберите «Добавить аксессуар». Проигнорируйте сообщение о том, чтобы быть близко к этому!

Елгато Ева 1

Далее вам будет предложено найти уникальный «Код установки HomeKit». Игнорируйте это и нажмите «Добавить в [название вашего дома]».

Он также скажет вам, что устройство не сертифицировано. На самом деле это не так. Иди вперед в любом случае. Когда вы попадаете на экран, спрашивая код доступа …

Елгато Ева 2

Выберите, чтобы ввести код вручную, и введите следующее:

  031-45-154 

Это можно найти / изменить в файле Light_accessory.js , но об этом позже. Добавьте этот аксессуар в свою комнату по умолчанию, назовите его Fake Light и продолжайте идти по диалоговым окнам, чтобы выбрать значок и т. Д.

Наконец, вернитесь к сеансу SSH, где у вас работает HAP-NodeJS. Возможно, вы уже видели сообщение «Мы на связи?» — это приложение Elgato, опрашивающее светлый статус. Откройте Siri и скажите ей: «Включите поддельный свет», затем попробуйте снова его выключить. Надеюсь, вы увидите несколько отладочных сообщений от HAP-NodeJS, чтобы показать, что он получил команды.

  Мы находимся?  Нет.
 Включение света!
 Выключить свет! 

Фантастика, это первый шаг закончен. Теперь нам нужен настоящий свет, прежде чем вернуться, чтобы снова настроить мост.

Создание Wi-Fi Light

Аппаратная сторона этого шага на удивление проста, если мы начнем с четырех неопикселей, поскольку мы можем питать их непосредственно от платы разработчика NodeMCU и ее USB-соединения. Если у вас более длинная полоса, не беспокойтесь — мы определили это в программном обеспечении, так что остальные просто не включатся.

Подключите красный кабель питания от жилы Neopixel к выводу VIN, синее заземление к GND, а зеленый сигнальный кабель к контакту с маркировкой D2 на NodeMCU. Будьте очень осторожны с полярностью: если вы перепутаете землю и VIN, вы отправите мощный импульс через вашу доску и уничтожите ее в процессе.

Если ваша среда Arduino еще не настроена для работы с ESP8266, продолжайте и следуйте руководству в моем ESP8266: Убийца Arduino руководства, а затем вернитесь после того, как вы подтвердили, что это работает. Установите эти дополнительные библиотеки:

Код, который мы используем, является модификацией Aditya Tannu пользователя Github — я удалил ненужные функции обновления по беспроводной сети, добавил некоторые отсутствующие функции HSV и упростил создание большего количества источников света, просто изменив одна переменная Если вы не видите код, встроенный ниже, вы найдете его в этом списке .

Похожие посты
Iphone и ipad

Лучшие варианты ремонта экрана iPhone

AndroidIphone и ipadLinuxWindows

Окончательное руководство по включению темного режима везде

Iphone и ipad

Как разрешить «ненадежные ярлыки» на iPhone и iPad

Iphone и ipadTech новости

Как изменить язык приложения на вашем iPhone или iPad