Node-RED Apple HomeKit: различия между версиями
(→Сенсор) |
(→Сенсор) |
||
Строка 66: | Строка 66: | ||
#* Channel — выберите в открывшемся списке mqtt-топик '''hwmon/CPU Temperature'''. Если список пуст, нажмите кнопку ''Refresh Device List''. | #* Channel — выберите в открывшемся списке mqtt-топик '''hwmon/CPU Temperature'''. Если список пуст, нажмите кнопку ''Refresh Device List''. | ||
# Чтобы сохранить, нажмите кнопку '''Done'''. | # Чтобы сохранить, нажмите кнопку '''Done'''. | ||
Настроим конвертер сообщений: | Настроим конвертер сообщений: |
Версия 10:11, 12 мая 2022
Это черновик страницы. Последняя правка сделана 12.05.2022 пользователем A.Degtyarev.
Описание
Алиса — это программный фреймворк для умных устройств от Apple. Все добавленные устройства будут видны в приложении Home, что позволит вам управлять ими удалённо со своего iPhone и других устройств Apple.
В инструкции используется модуль node-red-contrib-homekit-bridged, поддержку которого осуществляет сообщество Node-RED.
Подготовка
Для настройки моста Apple HomeKit на контроллере Wiren Board с помощью Node-RED нам понадобится:
- установленный Node-RED,
- настроенный модуль WB Nodes,
- модуль node-red-contrib-homekit-bridged — его мы установим ниже,
- аккаунт iCloud и мобильное приложение Home.
На контроллере должен быть доступ к интернету — HomeKit без него не работает.
Настройка делается через встроенный в Node-Red веб-интерфейс, который доступен по адресу http://wb-ip-address:1880, например, http://192.168.42.1:1880.
В примерах мы будем создавать флоу (flows) — это блок-схемы процесса.
Установка модуля
Чтобы Node-RED мог работать с HomeKit, установите модуль node-red-contrib-homekit-bridged
:
- Зайдите в веб-интерфейс Node-RED.
- В правом верхнем углу вызовите меню.
- В открывшемся окне выберите вкладку Управление палитрой (Manager palette).
- Перейдите на вкладку Установка (Install), введите в поле поиска homekit-bridged и нажмите на клавиатуре Enter.
- Установите пакет с названием node-red-contrib-homekit-bridged.
- Закройте окно с настройками. Установка модуля завершена.
После установки, в левой панели появится секция alice.
Добавление устройства
Как это работает
Добавление новых устройств в общем случае выглядит так:
- Описываем на контроллере виртуальное устройство HomeKit.
- Прописываем логику, которое это устройство реализует, например, включение зуммера.
- Публикуем флоу кнопкой Deploy.
- В мобильном приложении Home обновляем список устройств.
В примере ниже мы добавим сенсор температуры процессора и переключатель, который будет управлять зуммером контроллера.
Настройка моста
Мост настраивается один раз и потом используется во всех устройствах:
- Перетяните в рабочую область ноду Service, которая находится слева в группе Apple HomeKit.
- Дважды кликните на ней — откроется окно Edit service node, где нажмите на карандашик в поле Bridge.
- Откроется окно Add new homekit-bridge config node, где:
- укажите имя в поле Name, например, wb-demo
- и запомните пин-код из поля Pin Code.
- Чтобы сохранить настройки, нажмите кнопку Add.
- В окне Edit service node нажмите кнопку Cancel и удалите ноду с рабочей области.
Мост настроен, дальше можно добавлять устройства.
Сенсор
В примере мы настроим сенсор температуры HomeKit, который будет выводить температуру процессора.
Добавим ноду WB, которая будет выдавать CPU Temperature:
- Перетяните в рабочую область ноду in, которая находится слева в группе Wiren Board.
- Дважды кликните на ней — откроется окно Edit in node, где укажите:
- Name — имя, например, CPU Temp.
- Server — MQTT-сервер, связь с которым настраивается при установке модуля WB Nodes.
- Channel — выберите в открывшемся списке mqtt-топик hwmon/CPU Temperature. Если список пуст, нажмите кнопку Refresh Device List.
- Чтобы сохранить, нажмите кнопку Done.
Настроим конвертер сообщений:
- Перетяните в рабочую область ноду function, которая находится слева в группе function.
- Дважды кликните на ней — откроется окно Edit function node и впишите в поле onMessage код:
msg.payload = {'CurrentTemperature': parseFloat(msg.payload)}; return msg;
- Укажите имя в поле Name, например, to Float.
- Нажмите кнопку Done. Конвертер готов.
CurrentTemperature — это имя характеристики, взято из документации Apple HomeKit.
Добавим ноду HomeKit типа Service:
- Перетяните в рабочую область ноду service, которая находится слева в группе Apple HomeKit.
- Дважды кликните на ней — откроется окно Edit service node, где:
- в поле Service выберите TemperatureSensor,
- в поле Bridge выберите мост, который мы создавали ранее — wb-demo.
- укажите имя в поле Name, например, CPU Temp.
- Нажмите кнопку Done.
У нас получилось три ноды, соедините их между собой: CPU Temp (WB) → to Float → CPU Temp (HK).
Чтобы изменения вступили в силу, нажмите справа вверху страницы кнопку Deploy.