Node-RED Apple HomeKit: различия между версиями

Строка 104: Строка 104:


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


Добавим ноду WB, которая будет выдавать состояние Buzzer:
# Перетяните в рабочую область ноду '''in''', которая находится слева в группе '''Wiren Board'''.
# Дважды кликните на ней — откроется окно '''Edit in node''', где укажите:
#* Name — имя, например, Buzzer.
#* Server — MQTT-сервер, связь с которым настраивается при установке модуля ''WB Nodes''.
#* Channel — выберите в открывшемся списке mqtt-топик '''buzzer/enabled'''. Если список пуст, нажмите кнопку ''Refresh Device List''.
# Чтобы сохранить, нажмите кнопку '''Done'''.
Настроим конвертер, который преобразует состояние ''Buzzer'' в объект ''HomeKit'':
# Перетяните в рабочую область ноду '''function''', которая находится слева в группе '''function'''.
# Дважды кликните на ней — откроется окно '''Edit function node''' и впишите в поле '''onMessage''' код:
#<syntaxhighlight lang="js">
msg.payload = (msg.payload == '1') ? {'On':true} : {'On':false};
return msg
</syntaxhighlight>
# Укажите имя в поле '''Name''', например, ''true/false''.
# Нажмите кнопку '''Done'''. Конвертер готов.
Добавим ноду HomeKit типа Service:
# Перетяните в рабочую область ноду '''service''', которая находится слева в группе '''Apple HomeKit'''.
# Дважды кликните на ней — откроется окно '''Edit service node''', где:
#* в поле '''Service''' выберите '''Switch''',
#* в поле '''Bridge''' выберите мост, который мы создавали ранее — ''wb-demo''.
#* укажите имя в поле '''Name''', например, ''Buzzer''.
# Нажмите кнопку '''Done'''.
Настроим конвертер, который преобразует объект ''HomeKit'' в состояние ''Buzzer'':
# Перетяните в рабочую область ноду '''function''', которая находится слева в группе '''function'''.
# Дважды кликните на ней — откроется окно '''Edit function node''' и впишите в поле '''onMessage''' код:
#<syntaxhighlight lang="js">
msg.payload = (msg.payload.On) ? '1' : '0';
return msg
</syntaxhighlight>
# Укажите имя в поле '''Name''', например, ''1/0''.
# Нажмите кнопку '''Done'''. Конвертер готов.
И, наконец, добавим ноду WB, которая будет от устанавливать состояние Buzzer:
# Перетяните в рабочую область ноду '''out''', которая находится слева в группе '''Wiren Board'''.
# Дважды кликните на ней — откроется окно '''Edit out node''', где укажите:
#* Name — имя, например, Buzzer.
#* Server — MQTT-сервер, связь с которым настраивается при установке модуля ''WB Nodes''.
#* Channel — выберите в открывшемся списке mqtt-топик '''buzzer/enabled'''. Если список пуст, нажмите кнопку ''Refresh Device List''.
#* Command — выберите '''/on'''.
#* Payload — должно быть выбрано msg.payload
# Чтобы сохранить, нажмите кнопку '''Done'''.
У нас получилось пять нод, соедините их между собой: Buzzer (wb-in) → true/false → Buzzer (HK) → 1/0 → Buzzer (wb-out).


== Настройка в Phone ==
== Настройка в Phone ==