❮  Интеграции

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. В приложении это объект типа «Устройство», а не «Вебхук».

  1. В приложении: Настройки → Объекты → Добавить → «Устройство» — получите device_key и device_secret.
  2. Запустите integrations/nodejs/entrixy.js на машине с openHAB и вставьте ключи в начало файла.
  3. В 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. Приёмник, доступный только в домашней сети, работает лишь в режиме «С вашего телефона» и только пока телефон подключён к этой сети.