wb_editors
906
правок
Brainroot (обсуждение | вклад) |
|||
(не показано 20 промежуточных версий 1 участника) | |||
Строка 3: | Строка 3: | ||
== Описание == | == Описание == | ||
[ | В инструкции мы расскажем, как подключиться к [[Apple HomeKit]] с помощью Node-RED и модуля ''node-red-contrib-homekit-bridged''. | ||
Разработкой и поддержкой модуля занимается открытое сообщество пользователей [https://t.me/SprutAI_NodeRED Node-RED]. | |||
== Подготовка == | == Подготовка == | ||
Для настройки моста Apple HomeKit на контроллере [[Wiren Board]] с помощью Node-RED нам понадобится: | Для настройки моста Apple HomeKit на контроллере [[Wiren Board]] с помощью Node-RED нам понадобится: | ||
* установленный | * установленный Node-RED совместимой версии и [[Node-Red | настроенный модуль WB Nodes]], | ||
* модуль [https://flows.nodered.org/node/node-red-contrib-homekit-bridged node-red-contrib-homekit-bridged] — его мы установим ниже и для этого нам понадобится доступ в интернет, | * модуль [https://flows.nodered.org/node/node-red-contrib-homekit-bridged node-red-contrib-homekit-bridged] — его мы установим ниже и для этого нам понадобится доступ в интернет, | ||
* аккаунт iCloud и устройство Apple с приложением Home. | * аккаунт iCloud и устройство Apple с приложением Home. | ||
Строка 60: | Строка 59: | ||
В примере мы настроим сенсор температуры HomeKit, который будет выводить температуру процессора. | В примере мы настроим сенсор температуры HomeKit, который будет выводить температуру процессора. | ||
[[Image: 1. WB CPU Temp in HomeKit 1.png | 300px|thumb|right| Нода ''wb-in'' ]] | [[Image: 1. WB CPU Temp in HomeKit 1.png | 300px|thumb|right| Нода ''wb-in'', окно ''Edit in node'' ]] | ||
Добавим ноду WB, которая будет выдавать CPU Temperature: | Добавим ноду WB, которая будет выдавать CPU Temperature: | ||
{{Node-RED Tuning wb-in | |||
| name = CPU Temp | |||
| mqtt-topic = hwmon/CPU Temperature | |||
}} | |||
[[Image: 1. WB CPU Temp in HomeKit 2.png | 300px|thumb|right| Конвертер ''to Float'' ]] | [[Image: 1. WB CPU Temp in HomeKit 2.png | 300px|thumb|right| Конвертер ''to Float'' ]] | ||
Настроим конвертер, который преобразует значение ''CPU Temperature'' в объект ''HomeKit'': | Настроим конвертер, который преобразует значение ''CPU Temperature'' в объект ''HomeKit'': | ||
{{Node-RED Tuning function | |||
|name = to Float | |||
|code = <syntaxhighlight lang="js"> | |||
msg.payload = {'CurrentTemperature': parseFloat(msg.payload)}; | msg.payload = {'CurrentTemperature': parseFloat(msg.payload)}; | ||
return msg; | return msg; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} Конвертер готов. | |||
''CurrentTemperature'' — это имя характеристики, взято из [https://developer.apple.com/documentation/homekit/hmcharacteristic/characteristic_types документации Apple HomeKit]. | ''CurrentTemperature'' — это имя характеристики, взято из [https://developer.apple.com/documentation/homekit/hmcharacteristic/characteristic_types документации Apple HomeKit]. | ||
[[Image: 1. WB CPU Temp in HomeKit 3.png | 300px|thumb|right| Настройка устройства HomeKit]] | [[Image: 1. WB CPU Temp in HomeKit 3.png | 300px|thumb|right| Настройка устройства HomeKit]] | ||
Добавим ноду HomeKit | Добавим ноду HomeKit, которая создаст виртуальное устройство: | ||
# Перетяните в рабочую область ноду '''service''', которая находится слева в группе '''Apple HomeKit'''. | # Перетяните в рабочую область ноду '''service''', которая находится слева в группе '''Apple HomeKit'''. | ||
# Дважды кликните | # Дважды кликните по ней — откроется окно '''Edit service node''', где: | ||
#* в поле '''Service''' выберите '''TemperatureSensor''', | #* в поле '''Service''' выберите '''TemperatureSensor''', | ||
#* в поле '''Bridge''' выберите мост, который мы создавали ранее — ''wb-demo''. | #* в поле '''Bridge''' выберите мост, который мы создавали ранее — ''wb-demo''. | ||
Строка 101: | Строка 97: | ||
Теперь настроим переключатель HomeKit, который будет управлять устройством Buzzer. | Теперь настроим переключатель HomeKit, который будет управлять устройством Buzzer. | ||
[[Image: 2. WB Buzzer in HomeKit 1.png | 300px|thumb|right| Нода ''wb-in'' ]] | [[Image: 2. WB Buzzer in HomeKit 1.png | 300px|thumb|right| Нода ''wb-in'', окно ''Edit in node'' ]] | ||
Добавим ноду WB, которая будет выдавать состояние Buzzer: | Добавим ноду WB, которая будет выдавать состояние Buzzer: | ||
{{Node-RED Tuning wb-in | |||
| name = Buzzer | |||
| mqtt-topic = buzzer/enabled | |||
}} | |||
[[Image: 2. WB Buzzer in HomeKit 2.png | 300px|thumb|right| Конвертер ''true/false'' ]] | [[Image: 2. WB Buzzer in HomeKit 2.png | 300px|thumb|right| Конвертер ''true/false'' ]] | ||
Настроим конвертер, который преобразует состояние ''Buzzer'' в объект ''HomeKit'': | Настроим конвертер, который преобразует состояние ''Buzzer'' в объект ''HomeKit'': | ||
{{Node-RED Tuning function | |||
|name = true/false | |||
|code = <syntaxhighlight lang="js"> | |||
msg.payload = (msg.payload == '1') ? {'On':true} : {'On':false}; | msg.payload = (msg.payload == '1') ? {'On':true} : {'On':false}; | ||
return msg | return msg | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} Конвертер готов. | |||
[[Image: 2. WB Buzzer in HomeKit 3.png | 300px|thumb|right| Настройка устройства HomeKit ]] | [[Image: 2. WB Buzzer in HomeKit 3.png | 300px|thumb|right| Настройка устройства HomeKit ]] | ||
Добавим ноду HomeKit | Добавим ноду HomeKit, которая создаст виртуальное устройство: | ||
# Перетяните в рабочую область ноду '''service''', которая находится слева в группе '''Apple HomeKit'''. | # Перетяните в рабочую область ноду '''service''', которая находится слева в группе '''Apple HomeKit'''. | ||
# Дважды кликните | # Дважды кликните по ней — откроется окно '''Edit service node''', где: | ||
#* в поле '''Service''' выберите '''Switch''', | #* в поле '''Service''' выберите '''Switch''', | ||
#* в поле '''Bridge''' выберите мост, который мы создавали ранее — ''wb-demo''. | #* в поле '''Bridge''' выберите мост, который мы создавали ранее — ''wb-demo''. | ||
Строка 133: | Строка 126: | ||
[[Image: 2. WB Buzzer in HomeKit 4.png | 300px|thumb|right| Конвертер ''1/0'' ]] | [[Image: 2. WB Buzzer in HomeKit 4.png | 300px|thumb|right| Конвертер ''1/0'' ]] | ||
Настроим конвертер, который преобразует объект ''HomeKit'' в состояние ''Buzzer'': | Настроим конвертер, который преобразует объект ''HomeKit'' в состояние ''Buzzer'': | ||
{{Node-RED Tuning function | |||
|name = 1/0 | |||
|code = <syntaxhighlight lang="js"> | |||
msg.payload = (msg.payload.On) ? '1' : '0'; | msg.payload = (msg.payload.On) ? '1' : '0'; | ||
return msg | return msg | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} Конвертер готов. | |||
[[Image: 2. WB Buzzer in HomeKit 5.png | 300px|thumb|right| Нода ''wb-out'' ]] | [[Image: 2. WB Buzzer in HomeKit 5.png | 300px|thumb|right| Нода ''wb-out'' ]] | ||
Добавим ещё одну ноду WB, которая будет | Добавим ещё одну ноду WB, которая будет устанавливать состояние Buzzer: | ||
{{Node-RED Tuning wb-out | |||
|name = Buzzer | |||
|mqtt-topic = buzzer/enabled | |||
}} | |||
У нас получилось пять нод, соедините их между собой: Buzzer (wb-in) → true/false → Buzzer (HK) → 1/0 → Buzzer (wb-out). | У нас получилось пять нод, соедините их между собой: Buzzer (wb-in) → true/false → Buzzer (HK) → 1/0 → Buzzer (wb-out). | ||
Строка 161: | Строка 149: | ||
== Настройка в устройстве Apple == | == Настройка в устройстве Apple == | ||
{{Wbincludes:Apple HomeKit Tunning iPhone}} | |||
== Полезные ссылки == | == Полезные ссылки == | ||
* [[Media: Apple HomeKit DemoFlow.zip | Пример флоу из инструкции ]], замените пин-код в настройках моста. | * [[Media: Apple HomeKit DemoFlow.zip | Пример флоу из инструкции ]], замените пин-код в настройках моста. | ||
* [https://developer.apple.com/documentation/homekit/hmcharacteristic/characteristic_types | * [https://developer.apple.com/homekit/ Документация Apple HomeKit] | ||
* [https://developer.apple.com/documentation/homekit/hmcharacteristic/characteristic_types Список доступных характеристик Apple HomeKit] |