Перейти до вмісту

Webhooks з правил

Правило може викликати URL, коли воно спрацьовує. Так ваша система відразу дізнається про подію, наприклад про високу температуру або відключення пристрою.

  • HAM Systems вмикає webhooks для кожного облікового запису окремо. Якщо застосунок показує Webhook не увімкнені для вашого облікового запису, зверніться до підтримки.
  • Вам потрібна адреса https://, яка приймає запити POST з інтернету.

Додайте webhook до правила

Section titled “Додайте webhook до правила”
  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 дій.

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

Чат із підтримкою