Gå til indhold

Webhooks fra regler

En regel kan kalde en URL, når den udløses. Så får dit eget system besked om en hændelse med det samme, for eksempel en høj temperatur eller en afbrudt enhed.

  • HAM Systems slår webhooks til for hver konto. Hvis app’en viser Webhooks er ikke aktiveret for din konto, skal du kontakte support.
  • Du skal have en https://-adresse, der accepterer POST-anmodninger fra internettet.
  1. Åbn Menu. Tryk på Skyregler i gruppen Værktøjer.
  2. Åbn en regel, eller lav en ny regel. Se Opret en regel.
  3. Tryk på Tilføj handling i handlingerne.
  4. Vælg Webhook på listen.
  5. Skriv adressen på dit system i feltet URL.
  6. Hvis du også vil have et kald, når reglen nulstilles, skal du trykke på Tilføj nulstillingshandling og vælge Webhook igen.
  7. Tryk på Gem.
En ny regel med betingelser og handlinger
Computer
En ny regel med betingelser og handlinger
Telefon
En regels handling indstillet til Webhook med feltet URL udfyldt
Computer
En regels handling indstillet til Webhook med feltet URL udfyldt
Telefon

Hvis adressen ikke er korrekt, viser app’en URL’en er ikke gyldig.

Platformen sender en POST med et JSON-indhold (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": []
}
Felt Indhold
event triggered, når reglen udløses. resolved, når en handling Ved nulstilling kører.
rule.id, rule.name Reglens nummer og navn
rule.serialno Reglens enhed
rule.this_data Reglens betingelser
device_data Den aktuelle tilstand for hver enhed i reglen med serienummeret som nøgle. Det samme format som opdateringerne fra WebSocket.
messages Fejl, for eksempel Failed to get state of e11:123 for rule #4321, når en enheds tilstand ikke er tilgængelig

Værdierne i R er rå. I eksemplet betyder T: 912 9.12 °C. Se definitionerne i REST API.

Platformen fjerner enhedens WiFi-oplysninger (netværksnavn, adgangskode og enterprise-oplysninger) fra device_data.

Anmodningen har ingen signatur (HMAC). For at kontrollere, at anmodningen kommer fra din regel:

  1. Lav en lang tilfældig hemmelighed, for eksempel med openssl rand -hex 32.
  2. Sæt hemmeligheden i adressens forespørgselsstreng: https://example.com/ham-hook?token=YOUR_SECRET.
  3. Afvis i dit system hver anmodning, der ikke har det korrekte token.
  • Adressen skal starte med https://.
  • Platformen kalder ikke lokale og private adresser: 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 og de tilsvarende IPv6-adresser (::1, fe80:, fc00::/7).
  • Op til 5 kald for hver 60 sekunder for hver webhook-handling i en regel.
  • Op til 30 webhook-kald for hver 60 sekunder for hver konto.
  • Platformen springer kaldene over grænserne over. Den sender dem ikke senere.
  • Platformen kontrollerer ikke HTTP-statussen i dit svar og sender ikke anmodningen igen.
  • En handling kan have en forsinkelse (EFTER). En regel har op til 12 handlinger i alt.

Brug en offentlig tjeneste, der viser de anmodninger, den modtager, til en første test. Lav en regel med en nem betingelse, og se på anmodningens indhold.

Chat med support