Raspberry pi apple homekit

Автоматизация Дома с Помощью Raspberry Pi и HomeKit

October 11, 2018

Зачем мы всё это делаем?

Цель этого поста – показать как можно поставить homebridge сервер на Raspberry Pi. Этот сервер позволит управлять через приложение Home (на iOS и macOS) подключенными к Raspberry Pi устройствами (лампочками, вентиляторами, etc.).

Возможно, тебе будет интересно как я делал “коробочку” с реле, которой можно управлять до 4ёх устройств.

Центр Управления, подключение и настройка нового устройства Программа Home на iOS Программа Home на macOS

Начнём

Прежде всего нам потребуется установить ОС на RPi. Ставить будем Raspbian. Скачиваем торрент-файл с официального сайта с помощью торрент-менеджера (я использовал Transmission):

На всякий случай! Для своего RPi я использую “lite” версию, потому что она занимает меньше места (в ней отсутствует визуальный интерфейс, который мне не нужен).

Затем разархивируем скачанный файл, чтобы получить сам образ – файл .img . Для создания загрузочной microSD флешки я использовал приложение Etcher:

После завершения процесса записи вынимаем карточку и вставляем в RPi. Нам потребуется клавиатура и монитор, чтобы провести первую настройку. Затем можно будет подключаться с помощью ssh к RPi.

На всякий случай! Мне удалось уместить всё необходимое на microSD с объёмом памяти в 2GB.

При первом подключении надо будет ввести “pi” в качестве username и “raspberry” в качестве password.

Подключаемся к Wi-Fi

  1. sudo raspi-config
  2. “2. Network Options”
  3. “N2. Wi-fi”
  4. Choose your country
  5. Enter the SSID (name) of your network
  6. Enter the passphrase (password)
  7. Press “Finish” button

Теперь RPi подключён к сети Wi-Fi. Это можно проверить с помощью ping google.com – должно быть “0% packet loss”.

  1. sudo raspi-config
  2. “5. Interfacing Options”
  3. “P2. SSH”
  4. “Yes”
  5. “Ok”
  6. Press “Finish” button

Установка homebridge

Начнём с того, что обновим списки доступных пакетов, а также обновим уже установленные пакеты (которые идут сразу с ОС). Доустанавливаем git и screen :

Установка Python’a и необходимой библиотеки RPi.GPIO , с помощью которой осуществляется управление пинами (штырьки, торчащие из RPi):

Для homebridge и установки плагинов нам потребуется Node.js, который установим следующими командами:

На данном этапе стоит проверить тип чипа у RPi. Если это “armv7l”, то всё ок, идём дальше:

Проверим, что всё установилось как надо. Для этого надо запустить команду homebridge :

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

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

Плагины очень сильно упрощают подключения внешних устройств (таких как термостаты, реле, лампочки, датчики температуры, etc.). Все доступные плагины искать можно здесь.

Разберём пару тех, которые я использую:

  • CmdSwitch2 – предоставляет интерфейс для управления выключателем (я его использую для управления реле).
  • homebridge-temperature-file – удобный плагин для вывода температуры из файла в приложение Home .

С помощью таких команд их можно установить:

Вся информация о “собранной системе” для homebridge находится в папке

/.homebridge . На моём RPi структура этой папки выглядит так:

При первом знакомстве с homebridge я не понимал как должен быть устроен файл config.json . Поэтому я прикладываю копию своего, чтобы тебе было с чем сверяться.

Запуск сервера homebridge при включении RPi (on boot)

  1. Об этом написано подробно в репозитории homebridge
  2. Понадобится программа screen :

Добавление строк в файл /etc/rc.local

Проверка статуса сервиса. Тут должно отразиться, что мы действительно внесли изменения в файл /etc/rc.local :

После этого перезапускаем сервис rc-local :

Буду рад услышать пожелания/предложения/замечания от тебя. Если что – напиши мне 🙂

Источник

Читайте также:  Если не чистить кэш айфона

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit

Мы решили поделиться с Вами бюджетным готовым решением, надеемся Вы оцените наши старания. Решение проверенное, рабочее. Во вложении можно скачать все файлы программ и настройки. Отдаем все бесплатно.

Умный дом для заказчика в основном «игрушка» которым можно похвастаться перед друзьями, но эти игры стоят не малых усилий интеграторам!

Речь пойдет о некоторых проблемах и решениях, связанных именно с освещением в доме, как о неотъемлемом блоке «умного дома».

Проблема 1: Если система централизованная, то в случае сбоя центрального контроллера программа не может управлять реле включения света.

Решение: Использовать распределенные модули управления с внутренней логикой, по нашему опыту одним из самых зарекомендовавших себя устройств в этом — программируемое реле ПР200 производства компании ОВЕН. Советуем использовать версию 220в, т.к. бытовые выключатели рассчитаны именно на это напряжение и будет меньше проблем с логической «единицей» на дискретном входе.

Это устройство имеет 8 каналов (реле) которые можно запрограммировать с использованием внутренней логики (как распределенную систему), дополнительно подключаются еще модули расширения 2шт. по 8 каналов, но тут есть риск остаться без большего количество управляемых светильников при выходе из строя самого ПР200 (8 каналов против 24), если соберетесь экономить, подумайте!

Несмотря на то, что программу выглядит просто, к ней мы шли несколько лет не по своей вине, компания Овен относительно недавно (после появления ПР200) добавила возможность управлять сетевой переменной как с наружи, так и изнутри.

Подробнее о программе:

I8 – это дискретный вход с 8 выключателя в доме или комнате

RTRIG – детектор переднего, необходим для формирования единичного (на один цикл программы) импульса

TO INT – преобразования Bool в INT можно было бы и обойтись, но Slave сетевая переменная в Owen Logic не поддерживает bool.

XOR – исключающее или, если на одном входе 1, то и выход 1, если на оба входа подать 1 выход обнулится, основной элемент программы, который решает по нажатию на выключатель включить или выключить свет.

Реле8 – входная и выходная сетевая переменная, как я и говорил выше с недавнего времени можно использовать эти две переменные с одним регистром (адресом) Modbus, это нам дает возможность сохранить в нее необходимое нам состояние как снаружи, так и внутри без использования различных триггеров. Эти сетевые переменные имеют энергонезависимую память, поэтому при скачке напряжения освещение вернется в последнее состояние.

TO BOOL – конвертируем INT в BOOL значение, потому как реле на выходе имеет состояние False/True.

Шаг 1: программу для 8 каналов можно скачать по ссылке в конце статьи и залить в программируемое реле, не забудьте сменить целевую платформу для своей версии ПР200/110 иначе прошить устройство не удастся!

Проблема 2: стандартные бытовые выключатели имеют состояния включен либо выключен, что в корне противоречит логике управления освещением в умном доме, нам нужны кнопки без фиксации (с пружинками).

Решение 1: Использовать готовые кнопки без фиксации, которые есть у большинства производителей выключателей таких как Shneider, Biticino, ABB и др. (рекомендованное решение, хоть кнопки в одном положении и включенных и выключенных ламп это выглядит эстетически красиво)

Решение 2: Отлавливать в ПР200/110 изменение состояния входа при использование типичного бытового выключателя с фиксацией и дальше посылать импульс программе которую скачали выше, если свет был включен то он погаснет и наоборот (не рекомендуется, т.к. через некоторое время все кнопки будут перепутаны верх и низ)

Проблема 3: верхний уровень у большинства производителей систем умного дома не дотягивает до эстетического и функционального совершенства.

Решение: используем HomeKit от Apple, которое: функционально, удобно и есть голосовое управление.

Шаг 2: стыкуем ПР200/110 с HomeKit

Для этого необходимы следующие инструменты:

Решение рекомендованное для демонстраций:

Raspberry Pi 2/3/4 и к нему usb конвертер rs485 (например с Alliexpress)

Решение рекомендованное для инсталляций на базе модуля Raspberry CM3+ в промышленном исполнении c 2 двумя встроенными RS485 портами:

Подключите Ваше устройство на базе Raspberry к питанию и домашней сети желательно патчкордом, а не по wifi.

Соедините RS485 порт Вашего устройства и ПР200/110.

Читайте также:  Как обновить свой iphone 3gs

Далее определите IP адрес который выдал Ваш роутер и подключитесь по SSh например через программу PUTTY (по умолчанию логин pi пароль raspberry)

Установите программный продукт node-red для стыковки протокола HomeKit на верхнем уровне и Modbus Rtu на нижнем, смотри инструкцию по установке тут.

Не забудьте сделать Ваш node-red сервисом для автозагрузки.

Установите пакет HomeKit и modbus для node-red

Ждем перезагрузки и переходим в браузер «ВАШ IP»:1880 (например 192.168.1.110:1880)

Копируем следующий поток (код в конце статьи) и вставляем в веб интерфейс «движка» правил node-red

Заходим в Menu -> import -> вставляем код потока

Необходимо применить поток нажав на кнопку Deploy

В случае неудачи советуем правильно указать RS485 порт в настройках Modbus плагина «Запрос модбас» и «Write Reset FC6» (пример /dev/ttyUSB0).

Для достоверности перезагрузите Ваше устройство SSH à sudo reboot

Шаг 3. Настройка приложения на Вашем Apple устройстве довольно простая.

Даем имя нашему дому по желанию, в нашем примере ПР200

Добавляем и соглашаемся использовать несертифицированный аксессуар

Вводим код доступа, в нашем случае 111 11 111, его можно заменить в настройках Node-red в каждом из аксессуаров HomeKit

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

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

Мы не агитируем к коммерческому использованию протокол HomeKit, любые действия противоречащие лицензионному соглашению APPLE по использованию протокола HomeKit разработчик берет на себя!

Программу для ОВЕН ПР200 и скрипт для NodeRed можно бесплатно скачать тут.

Источник

Как подключить любые гаджеты в умный дом Apple HomeKit через Raspberry Pi

Продолжаем строить умный дом вместе.

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

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

Как настроить SSH на Raspberry Pi

SSH — это сетевой протокол для удаленного управления системой. С его помощью больше не потребуется подключать наш хаб к монитору или телевизору для внесения изменений или конфигурации ПО.

Не пренебрегайте данным шагом, ведь в процессе дальнейшей настройки вы неоднократно столкнетесь с неработоспособностью плагинов, неверно составленным файлом конфигурации, другими сбоями и проблемами, которые удобнее решать удаленно.

1. На Raspberry Pi необходимо перейти в консоль и ввести команду:

sudo raspi-config

2. В открывшемся меню конфигурации следует перейти в раздел Advanced Options.

3. Находим пункт SSH и активируем его.

4. Проверить успешную активацию протокола можно следующей командой в терминале:

sudo service ssh status

5. Для доступа по SSH используются такие учетные данные:

логин: pi
пароль: raspberry

6. В настройках Raspberry можно изменить эти данные.

Самый простой способ включения SSH:

Можно вообще обойтись без клавиатуры и монитора для Raspberry, но к сети её нужно подключить через кабель, а не по Wi-Fi.

1. На карте памяти с записанным образом для Raspberry Pi находим раздел Boot.

2. Создаем в ней файл ssh без расширения.

3. Устанавливаем карту в Raspberri и после загрузки SSH будет подключен.

Как подключиться по SSH

После того, как SSH подключение настроено, к «малинке» можно подключаться с других устройств внутри локальной сети. Монитор и клавиатура для Rasperry больше не потребуется.

Нужно лишь узнать IP-адрес устройства в сети. Сделать это можно из графического интерфейса микрокомпьютера, через приложение своего роутера, его веб-интерфейс или любым другим доступным способом.

Для получения доступа по SSH на Windows делаем следующее:

1. Устанавливаем приложение PuTTY.

2. В приложении на вкладке Session указываем IP-адрес Raspberry и порт 22.

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

Для получения доступа по SSH на macOS делаем следующее:

1. Запускаем приложение Терминал.

2. Вводим команду (используя IP-адрес своей «малинки»):

ssh [email protected]

3. Подтверждаем желание подключиться и вводим установленный пароль.

Для получения доступа по SSH на iOS делаем следующее:

1. Устанавливаем приложение Termius – SSH client из App Store.

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

Читайте также:  Iphone desktop phone dock

3. Подключаемся по настроенному соединению.

Теперь можно удаленно посылать команды «малинке», перезагружать её и менять файл конфигурации HomeBridge.

Запоминаем нужные команды:

sudo reboot – для перезагрузки Raspberry (SSH-соединение будет прервано)
sudo -n systemctl restart homebridge – для перезапуска сервера HomeBridge
nano

/.homebridge/config.json – для открытия файла конфигурации HomeBridge

Как подключить умные устройства

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

  • установленный плагин
  • данные об устройстве в файле конфигурации

Искать плагин можно самостоятельно. На просторах GitHub можно найти файлы практически для любого умного устройства.

Просто впишите в Google: mi air purifier 2 homebridge (для очистителя воздуха Xiaomi Mi Air Purifier 2) и по одной из первых ссылок найдете нужный плагин.

Альтернативным способом поиска плагинов является специальный раздел в веб-интерфейсе HomeBridge. Если устанавливали систему по нашей инструкции, веб-интерфейс уже должен работать. В противном случае ищите данные об установке веб-интерфейса в этой статье.

На специальной вкладке Плагины можно осуществить поиск нужного дополнения, аналогично поиску в Google. Вписываем название девайса (с китайскими гаджетами от всевозможных суб-брендов придется повозиться) и выбираем один из предложенных плагинов.

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

На GitHub странице плагина или на другом сайте, где было найдено дополнение, первым делом описывается процесс установки.

Для установки непосредственно на Raspberry Pi или через SSH используется приведенная в описании плагина команда такого вида:

sudo npm install -g homebridge-mi-acpartner

Для установки через веб-интерфейс достаточно нажать кнопку Install возле найденного в поиске дополнения.

Изменение файла конфигурации

Файл конфигурации тоже может быть изменен на самом устройстве с сервисом HomeBridge, через SSH или через веб-интерфейс. В первом случае редактируем файл config.json командой nano

/.homebridge/config.json, а во втором переходим в визуальный редактор на вкладке веб-интерфейс.

На странице с описанием плагина находим пример конфигурации:

«platforms»: [ <
«platform»: «XiaoMiAcPartner»,
«devices»: <
«192.168.31.120»:»your_token_here»
>]

Нужно интегрировать данный код в уже имеющуюся конфигурацию.

В большинстве случаев плагины интегрируются в разделы “platforms” или “accessories”. Особо сложные дополнения могут иметь части кода в обоих разделах.

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

Заполнение параметров устройства

Обратите внимание, что в большинстве случаев требуется указать два параметра подключаемого девайса: IP-адрес и токен. С поиском адреса в домашней сети проблем не возникнет (ищите через приложение роутера или его веб-интерфейс), а вот с токеном не так все просто.

Уникальный идентификатор умных устройств можно получить разными способами. Самый простой – воспользоваться модифицированным приложением Mi Home на Android. Если смартфона или планшета с нужной ОС на руках нет – устанавливаем эмулятор Android по инструкции.

1. Устанавливаем на Android модифицированное приложение Mi Home.

2. Авторизуемся в своей учетной записи с указанием правильного региона (в большинстве случаев это Материковый Китай).

3. Находим нужный девайс и в разделе Настройки – Общие параметры – Информация о сети видим поле с нужным нам токеном.

Здесь же можно найти IP-адрес.

Для устройств других производителей придется использовать другие способы добычи токенов.

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

Если все было сделано верно, устройство появится в приложении Дом на iPhone и им можно будет управлять, как нативным девайсом с поддержкой HomeKit.

Проблемы и их решение

Если фай конфигурации был изменен с ошибками, то HomeBridge повторно не запустится. Об этом вы поймете по зависшему веб-интерфейсу или по «отвалившимся» устройствам в приложении Дом.

Не стоит паниковать! Порядок действий следующий:

1. Подключаемся к Raspberry Pi по SSH.

2. Открываем файл config.json для редактирования.

3. Пытаемся найти ошибку или просто удаляем последний внесенный блок кода.

4. Сохраняем файл (Comman+X при работе в терминале или по SSH).

5. Перезапускаем HomeBridge командой: sudo -n systemctl restart homebridge.

Вот так происходит добавление всех умных устройств в HomeKit через HomeBridge. Не забывайте периодически сохранять удачные версии конфигурации.

Источник

Оцените статью