Přeskočit na obsah

Webhooky z pravidel

Pravidlo může při spuštění zavolat adresu URL. Váš systém se tak o události dozví okamžitě, například o vysoké teplotě nebo o odpojení zařízení.

  • HAM Systems zapíná webhooky pro každý účet zvlášť. Pokud aplikace ukáže Webhooks nejsou pro váš účet povoleny, kontaktujte podporu.
  • Potřebujete adresu https://, která přijímá požadavky POST z internetu.

Přidání webhooku do pravidla

Sekce “Přidání webhooku do pravidla”
  1. Otevřete Nabídka. Ve skupině Nástroje klepněte na Cloudová pravidla.
  2. Otevřete pravidlo nebo vytvořte nové. Viz vytvoření pravidla.
  3. V akcích klepněte na Přidat akci.
  4. V seznamu vyberte Webhook.
  5. Do pole URL napište adresu vašeho systému.
  6. Pokud chcete volání také při resetu pravidla, klepněte na Přidat akci resetování a znovu vyberte Webhook.
  7. Klepněte na Uložit.
Nové pravidlo s podmínkami a akcemi
Počítač
Nové pravidlo s podmínkami a akcemi
Telefon
Akce pravidla nastavená na Webhook s vyplněným polem URL
Počítač
Akce pravidla nastavená na Webhook s vyplněným polem URL
Telefon

Pokud adresa není správná, aplikace ukáže URL není platná.

Platforma pošle POST s tělem 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": []
}
Pole Obsah
event triggered, když se pravidlo spustí. resolved, když se provede akce Při resetování.
rule.id, rule.name Číslo a název pravidla
rule.serialno Zařízení pravidla
rule.this_data Podmínky pravidla
device_data Aktuální stav každého zařízení pravidla podle sériového čísla. Formát je stejný jako u aktualizací WebSocket.
messages Chyby, například Failed to get state of e11:123 for rule #4321, když stav zařízení není k dispozici

Hodnoty v R jsou surové. V příkladu T: 912 znamená 9.12 °C. Viz definice v REST API.

Platforma z device_data odstraní údaje WiFi zařízení (název sítě, heslo a podnikové údaje).

Požadavek nemá podpis (HMAC). Takto zkontrolujete, že požadavek pochází z vašeho pravidla:

  1. Vytvořte dlouhý náhodný tajný řetězec, například pomocí openssl rand -hex 32.
  2. Vložte tajný řetězec do query stringu adresy: https://example.com/ham-hook?token=YOUR_SECRET.
  3. Ve svém systému odmítněte každý požadavek, který nemá správný token.
  • Adresa musí začínat https://.
  • Platforma nevolá místní a soukromé adresy: 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 a související adresy IPv6 (::1, fe80:, fc00::/7).
  • Nejvýše 5 volání za 60 sekund pro každou akci webhook pravidla.
  • Nejvýše 30 volání webhooku za 60 sekund pro každý účet.
  • Platforma přeskočí volání nad limity. Neposílá je později.
  • Platforma nekontroluje stav HTTP vaší odpovědi a požadavek neposílá znovu.
  • Akce může mít zpoždění (PO). Pravidlo má celkem nejvýše 12 akcí.

Pro první test použijte veřejnou službu, která ukazuje přijaté požadavky. Vytvořte pravidlo s jednoduchou podmínkou a prohlédněte si tělo požadavku.

Chat s podporou