Sari la conținut

Webhook-uri din reguli

O regulă poate apela un URL când se declanșează. Astfel, propriul dumneavoastră sistem află imediat despre un eveniment, de exemplu o temperatură ridicată sau o deconectare a dispozitivului.

  • HAM Systems activează webhook-urile pentru fiecare cont. Dacă aplicația arată Webhook-urile nu sunt activate pentru contul dvs., contactați suportul.
  • Aveți nevoie de o adresă https:// care acceptă cereri POST de pe internet.
  1. Deschideți Meniu. În grupul Instrumente, atingeți Reguli în cloud.
  2. Deschideți o regulă sau creați o regulă nouă. Consultați creați o regulă.
  3. La acțiuni, atingeți Adăugați acțiune.
  4. În listă, selectați Webhook.
  5. În câmpul URL, introduceți adresa sistemului dumneavoastră.
  6. Dacă vreți un apel și când regula se resetează, atingeți Adăugați acțiune de resetare și selectați din nou Webhook.
  7. Atingeți Salvați.
O regulă nouă cu condiții și acțiuni
Calculator
O regulă nouă cu condiții și acțiuni
Telefon
O acțiune de regulă setată la Webhook, cu câmpul URL completat
Calculator
O acțiune de regulă setată la Webhook, cu câmpul URL completat
Telefon

Dacă adresa nu este corectă, aplicația arată URL-ul nu este valid.

Platforma trimite un POST cu un corp 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": []
}
Câmp Conținut
event triggered când regula se declanșează. resolved când rulează o acțiune La resetare.
rule.id, rule.name Numărul și numele regulii
rule.serialno Dispozitivul regulii
rule.this_data Condițiile regulii
device_data Starea curentă a fiecărui dispozitiv al regulii, cu numărul de serie drept cheie. Același format ca actualizările WebSocket.
messages Erori, de exemplu Failed to get state of e11:123 for rule #4321 când starea unui dispozitiv nu este disponibilă

Valorile din R sunt brute. În exemplu, T: 912 înseamnă 9.12 °C. Consultați definițiile din API REST.

Platforma elimină din device_data datele WiFi ale dispozitivului (numele rețelei, parola și datele enterprise).

Cererea nu are semnătură (HMAC). Pentru a verifica dacă cererea vine de la regula dumneavoastră:

  1. Creați un secret lung și aleatoriu, de exemplu cu openssl rand -hex 32.
  2. Puneți secretul în query string-ul adresei: https://example.com/ham-hook?token=YOUR_SECRET.
  3. În sistemul dumneavoastră, respingeți fiecare cerere care nu are token corect.
  • Adresa trebuie să înceapă cu https://.
  • Platforma nu apelează adrese locale și private: 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 și adresele IPv6 asociate (::1, fe80:, fc00::/7).
  • Până la 5 apeluri pe 60 de secunde pentru fiecare acțiune webhook a unei reguli.
  • Până la 30 de apeluri webhook pe 60 de secunde pentru fiecare cont.
  • Platforma omite apelurile care depășesc limitele. Nu le trimite mai târziu.
  • Platforma nu verifică starea HTTP a răspunsului dumneavoastră și nu retrimite cererea.
  • O acțiune poate avea o întârziere (DUPĂ). O regulă are în total până la 12 acțiuni.

Pentru un prim test, folosiți un serviciu public care arată cererile pe care le primește. Creați o regulă cu o condiție ușoară și priviți corpul cererii.

Chat cu suportul