Node red homekit service

node-red-contrib-homekit-bridged 1.4.3

Node-RED nodes to simulate Apple HomeKit devices.

node-red-contrib-homekit-bridged

HomeKit all the things!

Do you need setup help? Have a great idea? Want to shoot the breeze with fellow users? Join us on our Discord server!

About this Contrib

This is a collection of nodes which can be used to imitate HomeKit devices inside of Node-RED. Messages coming into these nodes are able to set device states and status in Apple’s iOS and MacOS Home apps. Commands from Home apps (or Siri) will be passed from these nodes into your Node-RED flows.

Easy Install

If you have Node-RED already installed, the recommended install method is to use the editor. To do this, select Manage palette from the Node-RED menu (top right). Then select Install tab in the palette. Search for and install this node ( node-red-contrib-homekit-bridged ).

Docker Install

You can also pull a docker image containing everything needed to get started.

Getting Started

Example flows For a quick start, we recommend checking out the flows which are included with the plugin, they can be imported using the Node-RED hamburger menu after install.

Documentation home page For more instructions, information about how things work, and detailed examples (including various real life examples from the community).

Discord Again, one of us is on Discord every day, always ready to help!

Источник

Настройка Apple HomeKit на контроллере Wiren Board через Node-RED

Содержание

Описание

В инструкции мы расскажем, как подключиться к Apple HomeKit с помощью Node-RED и модуля node-red-contrib-homekit-bridged.

Разработкой и поддержкой модуля занимается открытое сообщество пользователей Node-RED.

Подготовка

Для настройки моста Apple HomeKit на контроллере Wiren Board с помощью Node-RED нам понадобится:

  • установленный Node-RED и настроенный модуль WB Nodes,
  • модуль node-red-contrib-homekit-bridged — его мы установим ниже и для этого нам понадобится доступ в интернет,
  • аккаунт iCloud и устройство Apple с приложением Home.

Настройка делается через встроенный в Node-Red веб-интерфейс, который доступен по адресу http://wb-ip-address:1880, например, http://192.168.42.1:1880.

В примерах мы будем создавать флоу (flows) — это блок-схемы процесса.

Установка модуля

Чтобы Node-RED мог работать с HomeKit, установите модуль node-red-contrib-homekit-bridged :

  1. Зайдите в веб-интерфейс Node-RED.
  2. В правом верхнем углу вызовите меню.
  3. В открывшемся окне выберите вкладку Управление палитрой (Manager palette).
  4. Перейдите на вкладку Установка (Install), введите в поле поиска homekit-bridged и нажмите на клавиатуре Enter .
  5. Установите пакет с названием node-red-contrib-homekit-bridged.
  6. Закройте окно с настройками. Установка модуля завершена.

После установки, в левой панели появится группа Apple HomeKit.

Добавление устройства

Как это работает

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

  1. Описываем на контроллере виртуальное устройство HomeKit.
  2. Прописываем логику, которое это устройство реализует, например, включение зуммера.
  3. Публикуем флоу кнопкой Deploy.
  4. Если мост уже добавлен в приложение Home, то устройство появится в нём автоматически.

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

Настройка моста

Мост настраивается один раз и потом используется во всех устройствах:

  1. Перетяните в рабочую область ноду Service, которая находится слева в группе Apple HomeKit.
  2. Дважды кликните на ней — откроется окно Edit service node, где нажмите на карандашик в поле Bridge.
  3. Откроется окно Add new homekit-bridge config node, где:
    • укажите имя в поле Name, например, wb-demo
    • и запомните пин-код из поля Pin Code.
  4. Чтобы сохранить настройки, нажмите кнопку Add.
  5. В окне Edit service node нажмите кнопку Cancel и удалите ноду с рабочей области.

Мост настроен, дальше можно добавлять устройства. В процессе нужно учесть два момента:

  1. устройство HomeKit на вход принимает и отдаёт объект, который содержит имя характеристики и значение;
  2. WB ноды in и out отдают и принимают значения в виде строки.

Чтобы синхронизировать разные типы данных, мы будем создавать конвертеры значений.

Окно Edit service node

Сенсор

В примере мы настроим сенсор температуры HomeKit, который будет выводить температуру процессора.

Добавим ноду WB, которая будет выдавать CPU Temperature:

  1. Перетяните в рабочую область ноду in, которая находится слева в группе Wiren Board.
  2. Дважды кликните по ней — откроется окно Edit in node, где укажите:
    • Name — имя, например, CPU Temp.
    • Server — MQTT-сервер, связь с которым настраивается при установке модуля WB Nodes.
    • Channel — выберите в открывшемся списке mqtt-топик hwmon/CPU Temperature. Если список пуст, нажмите кнопку Refresh Device List.
  3. Чтобы сохранить, нажмите кнопку Done.

Настроим конвертер, который преобразует значение CPU Temperature в объект HomeKit:

  1. Перетяните в рабочую область ноду function, которая находится слева в группе function.
  2. Дважды кликните по ней — откроется окно Edit function node и впишите в поле On Message код:

CurrentTemperature — это имя характеристики, взято из документации Apple HomeKit.

Добавим ноду HomeKit, которая создаст виртуальное устройство:

  1. Перетяните в рабочую область ноду service, которая находится слева в группе Apple HomeKit.
  2. Дважды кликните по ней — откроется окно Edit service node, где:
    • в поле Service выберите TemperatureSensor,
    • в поле Bridge выберите мост, который мы создавали ранее — wb-demo.
    • укажите имя в поле Name, например, CPU Temp.
  3. Нажмите кнопку Done.

У нас получилось три ноды, соедините их между собой: CPU Temp (wb-in) → to Float → CPU Temp (HK).

Чтобы изменения вступили в силу, нажмите справа вверху страницы кнопку Deploy.

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

Теперь настроим переключатель HomeKit, который будет управлять устройством Buzzer.

Добавим ноду WB, которая будет выдавать состояние Buzzer:

  1. Перетяните в рабочую область ноду in, которая находится слева в группе Wiren Board.
  2. Дважды кликните по ней — откроется окно Edit in node, где укажите:
    • Name — имя, например, Buzzer.
    • Server — MQTT-сервер, связь с которым настраивается при установке модуля WB Nodes.
    • Channel — выберите в открывшемся списке mqtt-топик buzzer/enabled. Если список пуст, нажмите кнопку Refresh Device List.
  3. Чтобы сохранить, нажмите кнопку Done.

Настроим конвертер, который преобразует состояние Buzzer в объект HomeKit:

  1. Перетяните в рабочую область ноду function, которая находится слева в группе function.
  2. Дважды кликните по ней — откроется окно Edit function node и впишите в поле On Message код:

Добавим ноду HomeKit, которая создаст виртуальное устройство:

  1. Перетяните в рабочую область ноду service, которая находится слева в группе Apple HomeKit.
  2. Дважды кликните по ней — откроется окно Edit service node, где:
    • в поле Service выберите Switch,
    • в поле Bridge выберите мост, который мы создавали ранее — wb-demo.
    • укажите имя в поле Name, например, Buzzer.
  3. Нажмите кнопку Done.

Настроим конвертер, который преобразует объект HomeKit в состояние Buzzer:

  1. Перетяните в рабочую область ноду function, которая находится слева в группе function.
  2. Дважды кликните по ней — откроется окно Edit function node и впишите в поле On Message код:

Добавим ещё одну ноду WB, которая будет устанавливать состояние Buzzer:

  1. Перетяните в рабочую область ноду out, которая находится слева в группе Wiren Board.
  2. Дважды кликните по ней — откроется окно Edit out node, где укажите:
    • Name — имя, например, Buzzer.
    • Server — MQTT-сервер, связь с которым настраивается при установке модуля WB Nodes.
    • Channel — выберите в открывшемся списке mqtt-топик buzzer/enabled. Если список пуст, нажмите кнопку Refresh Device List.
    • Command — выберите /on.
    • Payload — должно быть выбрано msg.payload
  3. Чтобы сохранить, нажмите кнопку Done.

У нас получилось пять нод, соедините их между собой: Buzzer (wb-in) → true/false → Buzzer (HK) → 1/0 → Buzzer (wb-out).

Чтобы изменения вступили в силу, нажмите справа вверху страницы кнопку Deploy.

Настройка в устройстве Apple

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

Перед началом настройки подключите контроллер Wiren Board и ваше устройство Apple к одной локальной сети, например, по Wi-Fi.

Мы будем использовать iPhone и стандартное приложение Home:

  1. Откройте приложение Home.
  2. Выберите Add Accessory.
  3. Нажмите More options…
  4. В списке должен появиться мост, который мы настроили выше.
  5. Выберите наш мост из списка.
  6. На сообщение о том, что аксессуар не сертифицирован, ответьте Add Anyway.
  7. Введите пин-код вида XXX-XX-XXX.
  8. Выберите для нашего моста комнату, например, Bedroom.
  9. Укажите имя моста, или оставьте по умолчанию.
  10. Нажмите Continue и дальше для каждого устройтства укажите комнату.

Источник

Азы Node Red: Создаем Homekit устройства в Node-Red, часть 1

Лузин Евгений (EvLuz)

Вместо предисловия

Возможно Вы уже знаете, что платформа для создания автоматизаций Node-Red позволяет устанавливать дополнительные плагины в систему, которые расширяют ее функциональность. Я расскажу о node-red-contrib-homekit-bridged, который позволяет симулировать Apple Homekit устройства. Вы сможете сами создать любое Homekit устройство, не дожидаясь появления нативного, или пока кто-нибудь не напишет плагин для HomeBridge. Если у Вас еще нет Node-Red, как раз время его установить и в этом Вам поможет статья с нашего портала.

Установка плагина и начальная база знаний

Установка плагина происходит так же, как и большинство плагинов для Node-Red: заходите во вкладку Manage Palette, нажимаете Install, в строке поиска вбиваете название и устанавливаете. Скорее всего Вас попросят перезапустить Node-Red после установки, но если этого не случится, то это будет не лишним. Сразу скажу на будущее, что работа с нодой этого плагина требует определенного ритуала: при изменении параметров в ноде или удаление нод, необходим перезапуск Node-Red.

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

Ссылка на wiki от автора плагина и также полезная ссылка по Homekit сервисам и характеристикам, где вы найдете множество примеров по созданию своих HomeKit устройств. Запаситесь терпением и знанием Английского языка (либо Google переводчик Вам в помощь).

Если у Вас Deconz?

Это самое простое решение, так как наш коллега по чату Node-Red Андрей Попов создал прекрасный плагин, который позволяет это сделать автоматически, практически для всех устройств. По ссылке найдете описание плагина и примеры использования для различных устройств. Картинки для HomeKit ноды могут отличаются, так как плагин кардинально обновлялся, но смысл не изменился. Я не буду останавливаться более детально на описании работы с этим плагином, чтобы не повторятся позже, где я рассмотрю работу с HomeKit нодой. Для примера, флоу трех zigbee ламп c использованием Conbee координатора от Deconz, через плагин node-red-contrib-deconz.

Если Вы используете zigbee2mqtt?

Если Вы еще не догадались, то и для координаторов с использованием бриджа zigbee2mqtt нашлось время у Андрея и появился замечательный плагин, который существенно облегчает работу с HomeKit устройствами. Пока это работает не со всеми устройствами, в силу того, что у автора их просто нет и он определил эту опцию, как приятный бонус. Но тем не менее, очень много HomeKit устройств поддерживается этим плагином прямо из коробки. В описании плагина есть вся необходима информация для его установки и примеры работы с ним. Лишь покажу флоу, как это выглядит.

Если у Вас ничего НЕТ, только данные

Для начала нужно получить необходимые данные, причем желательно в формате Object, так просто легче с ними работать. Как получить данные — это вопрос отдельной статьи, я затрону лишь способ, как посмотреть то, что мы получаем и как это использовать в дальнейшем. Если Вы все же мало знакомы с Node-Red, то в статье одного из авторов нашего портала sprut.ai, ознакомьтесь с базовыми нодами (кубиками), а то возможно продолжение статьи будет неинтересно и малопонятно.

Да, я решил разбить статью на две части

Подумав немного, я все же решил разбить статью на две части. Многие уже используют вышеперечисленные плагины и им уже и так все просто. Многим же надо подумать и пройтись по ссылкам в этой статье, иначе вторая часть будет бессмысленной. Нельзя объять необъятное в рамках одной темы и поэтому вторая часть будет посвящена Homekit без готового решения из коробки. Берем поток данных и формируем HomeKit устройство. Да, и не забудьте изучить детально ноды Inject и Debug, они Вам точно понадобятся в следующей статье.

Часть 1, конечно, получилась в большей степени обзорной, нет тестовых флоу, готовых примеров по решению ваших задач, но это только начальная точка. Следующая часть немного приоткроет мир HomeKit устройств, которые Вы создадите сами с помощью Node-Red, как волшебник из страны Оз.

Источник