Перейти к содержимому

Вебхуки из правил

Правило может вызвать URL, когда оно срабатывает. Так Ваша система сразу узнаёт о событии, например о высокой температуре или отключении устройства.

  • HAM Systems включает вебхуки для каждого аккаунта отдельно. Если приложение показывает Вебхуки не включены для вашей учётной записи, обратитесь в поддержку.
  • Вам нужен адрес https://, который принимает запросы POST из интернета.
  1. Откройте Меню. В группе Инструменты нажмите Облачные правила.
  2. Откройте правило или создайте новое правило. См. Создание правила.
  3. В действиях нажмите Добавить действие.
  4. Выберите в списке Webhook.
  5. В поле URL введите адрес Вашей системы.
  6. Если Вам также нужен вызов при сбросе правила, нажмите Добавить действие сброса и снова выберите Webhook.
  7. Нажмите Сохранить.
Новое правило с условиями и действиями
Компьютер
Новое правило с условиями и действиями
Телефон
Действие правила со значением Webhook и заполненным полем URL
Компьютер
Действие правила со значением Webhook и заполненным полем URL
Телефон

Если адрес неправильный, приложение показывает Недействительный URL.

Платформа отправляет POST с телом JSON (Content-Type: application/json):

{
"event": "triggered",
"rule": {
"id": 4321,
"name": "Fridge 1 temperature",
"serialno": "e11:123",
"this_data": [ { "...": "the rule conditions" } ]
},
"device_data": {
"e11:123": {
"R": { "T": 912, "GI": 1, "GIC": 0, "GI2": 1, "GI2C": 0 },
"O": [],
"S": { "...": "the device settings" }
}
},
"messages": []
}
Поле Содержимое
event triggered, когда правило срабатывает. resolved, когда выполняется действие При сбросе.
rule.id, rule.name Номер и название правила
rule.serialno Устройство правила
rule.this_data Условия правила
device_data Текущее состояние каждого устройства правила, по серийному номеру. Тот же формат, что у обновлений WebSocket.
messages Ошибки, например Failed to get state of e11:123 for rule #4321, когда состояние устройства недоступно

Значения в R необработанные. В примере T: 912 означает 9.12 °C. См. определения в REST API.

Платформа удаляет данные WiFi устройства (название сети, пароль и корпоративные данные) из device_data.

У запроса нет подписи (HMAC). Чтобы проверить, что запрос приходит от Вашего правила:

  1. Создайте длинный случайный секрет, например командой openssl rand -hex 32.
  2. Поместите секрет в строку запроса адреса: https://example.com/ham-hook?token=YOUR_SECRET.
  3. В Вашей системе отклоняйте каждый запрос, у которого нет правильного token.
  • Адрес должен начинаться с https://.
  • Платформа не вызывает локальные и частные адреса: localhost, 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16, 100.64.0.0/10, 0.0.0.0/8 и соответствующие адреса IPv6 (::1, fe80:, fc00::/7).
  • До 5 вызовов за 60 секунд для каждого действия webhook правила.
  • До 30 вызовов webhook за 60 секунд для каждого аккаунта.
  • Платформа пропускает вызовы сверх лимитов. Она не отправляет их позже.
  • Платформа не проверяет статус HTTP Вашего ответа и не отправляет запрос снова.
  • У действия может быть задержка (ПОСЛЕ). У правила всего до 12 действий.

Для первой проверки используйте публичный сервис, который показывает полученные запросы. Создайте правило с простым условием и посмотрите на тело запроса.

Чат с поддержкой