Entrixy → Shelly
Готовый пример подключения к Entrixy. Формат вебхука — entrixy.com/webhook.
Smart-реле Shelly (1, Plus 1, Pro 1, 2.5 и другие) принимают команды через свой HTTP API, но подпись Entrixy не проверяют. Поэтому варианта три.
Вебхук с телефона внутри домашней сети
В Entrixy создайте объект «Вебхук» в режиме «С вашего телефона» с адресом реле, например для Shelly 1 (Gen1):
http://<SHELLY-IP>/relay/0?turn=on
Телефон владельца отправит на этот адрес POST, пока подключён к домашней сети; реле берёт команду из адреса. Подпись Shelly не проверяет, поэтому включить реле может и любой другой участник этой сети. Чтобы реле отпускало само, настройте Auto-off (см. ниже). В режиме «С сервера Entrixy» адреса домашней сети не принимаются.
Вариант 1: через Home Assistant (рекомендуется)
Shelly → HA (через интеграцию Shelly или MQTT) → webhook receiver. См. integrations/home-assistant/.
В HA автоматизация:
action:
- service: switch.turn_on
target:
entity_id: switch.shelly_kitchen
Вариант 2: HTTP-прокси
Shelly Gen2/Pro принимает RPC через HTTP. Например для Shelly Plus 1:
http://<SHELLY-IP>/rpc/Switch.Set?id=0&on=true
или GET-style на Gen1 (Shelly 1):
http://<SHELLY-IP>/relay/0?turn=on
Но Entrixy шлёт POST с HMAC-подписью, а Shelly не валидирует подпись. Поэтому:
- В приложении создайте объект «Устройство» (socket) и вставьте
device_key/device_secretвintegrations/nodejs/entrixy.js(илиintegrations/raspberry-pi/). Скрипт сам подключается к Entrixy наружу — публичный URL не нужен. - В обработчике
onOpen()замените логику на:
await fetch('http://192.168.1.50/rpc/Switch.Set?id=0&on=true');
setTimeout(() => fetch('http://192.168.1.50/rpc/Switch.Set?id=0&on=false'), 500);
- Никакой webhook URL не указывается — это объект «Устройство», а не «Веб-хук».
Auto-off в самом Shelly
Чтобы не делать второй запрос для выключения, настройте в Shelly UI: Settings → Auto-off → 1 second — реле само отключится через секунду.
После этого в прокси достаточно одного запроса на включение.