Raspberry apple home kit

Автоматизация Дома с Помощью 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 структура этой папки выглядит так:

Читайте также:  Кто производитель аккумуляторы для iphone

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

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

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

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

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

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

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

Источник

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

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

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

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

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

Для работы умного девайса с 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. Находим нужный девайс и в разделе Настройки – Общие параметры – Информация о сети видим поле с нужным нам токеном.

Читайте также:  Ваш apple id был деактивирован что делать

Здесь же можно найти 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. Не забывайте периодически сохранять удачные версии конфигурации.

Источник

Умный Дом — голосовое управление в три шага. 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.

Далее определите 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 можно бесплатно скачать тут.

Источник

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