Entrixy → openHAB
Готовый пример подключения к Entrixy. Формат вебхука — entrixy.com/webhook。
Запрос Entrixy openHAB напрямую не принимает: Entrixy отправляет POST с JSON и подписью, а REST API openHAB ждёт текстовую команду (POST /rest/items/<item> с телом ON) и подпись не проверяет. Поэтому команду передаёт мост.
Схема: Node.js-мост (объект «Устройство»)
integrations/nodejs/entrixy.js — клиент, который сам подключается наружу к Entrixy, поэтому публичный адрес и проброс портов не нужны: он работает за NAT. В приложении это объект типа «Устройство», а не «Вебхук».
- В приложении: Настройки → Объекты → Добавить → «Устройство» — получите
device_keyиdevice_secret。 - Запустите
integrations/nodejs/entrixy.jsна машине с openHAB и вставьте ключи в начало файла. - В
onOpen()замените тело на вызов REST API openHAB:
await fetch('http://localhost:8080/rest/items/FrontDoorLock', {
method: 'POST',
headers: { 'Content-Type': 'text/plain' }, // при включённой авторизации добавьте 'Authorization': 'Bearer <API-токен>'
body: 'ON'
});
Затем скопируйте entrixy.rules в conf/rules/ и замените FrontDoorLock на свой item: правило через секунду возвращает реле в OFF, получается короткий сигнал.
Адрес вебхука указывать не нужно — клиент сам держит связь с Entrixy. Протокол: entrixy.com/socket。
Этот клиент доверяет серверу Entrixy: подпись каждой команды проверяет только сетевой контроллер на ESP32, привязанный к телефону владельца.
Через приёмник вебхука
Если вам нужен именно объект «Вебхук», поставьте перед openHAB приёмник с проверкой подписи — /integrations/flask-test/ — и в on_command() вызывайте тот же REST API openHAB. Приёмник, доступный только в домашней сети, работает лишь в режиме «С вашего телефона» и только пока телефон подключён к этой сети.