İçeriğe geç

Kurallardan webhook'lar

Bir kural tetiklendiğinde bir URL’yi çağırabilir. Böylece kendi sisteminiz bir olayı hemen öğrenir, örneğin yüksek bir sıcaklığı veya bir cihazın bağlantısının kesilmesini.

  • HAM Systems webhook’ları hesap bazında açar. Uygulama Hesabınız için Webhook’lar etkin değil gösterirse destekle iletişime geçin.
  • İnternetten POST isteklerini kabul eden bir https:// adresine ihtiyacınız vardır.
  1. Menü seçeneğini açın. Araçlar grubunda Bulut kuralları seçeneğine dokunun.
  2. Bir kuralı açın veya yeni bir kural oluşturun. Bkz. Kural oluşturma.
  3. Eylemlerde Eylem ekle seçeneğine dokunun.
  4. Listede Webhook seçin.
  5. URL alanına sisteminizin adresini yazın.
  6. Kural sıfırlandığında da bir çağrı istiyorsanız Sıfırlama eylemi ekle seçeneğine dokunun ve tekrar Webhook seçin.
  7. Kaydet seçeneğine dokunun.
Koşulları ve eylemleriyle yeni bir kural
Bilgisayar
Koşulları ve eylemleriyle yeni bir kural
Telefon
URL alanı doldurulmuş, Webhook olarak ayarlanmış bir kural eylemi
Bilgisayar
URL alanı doldurulmuş, Webhook olarak ayarlanmış bir kural eylemi
Telefon

Adres doğru değilse uygulama URL geçerli değil gösterir.

Platform JSON gövdeli (Content-Type: application/json) bir POST gönderir:

{
"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": []
}
Alan İçerik
event Kural tetiklendiğinde triggered. Bir Sıfırlamada eylemi çalıştığında resolved.
rule.id, rule.name Kuralın numarası ve adı
rule.serialno Kuralın cihazı
rule.this_data Kural koşulları
device_data Kuralın her cihazının seri numarasına göre geçerli durumu. WebSocket güncellemeleriyle aynı biçim.
messages Hatalar, örneğin bir cihazın durumu mevcut olmadığında Failed to get state of e11:123 for rule #4321

R içindeki değerler ham değerlerdir. Örnekte T: 912, 9.12 °C anlamına gelir. REST API içindeki tanımlara bakın.

Platform, cihazın WiFi bilgilerini (ağ adı, parola ve kurumsal bilgiler) device_data alanından kaldırır.

İsteğin imzası (HMAC) yoktur. İsteğin kuralınızdan geldiğini kontrol etmek için:

  1. Uzun, rastgele bir gizli değer oluşturun, örneğin openssl rand -hex 32 ile.
  2. Gizli değeri adresin sorgu dizesine koyun: https://example.com/ham-hook?token=YOUR_SECRET.
  3. Sisteminizde doğru token olmayan her isteği reddedin.
  • Adres https:// ile başlamalıdır.
  • Platform yerel ve özel adresleri çağırmaz: 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 ve ilgili IPv6 adresleri (::1, fe80:, fc00::/7).
  • Bir kuralın her webhook eylemi için 60 saniyede en fazla 5 çağrı.
  • Her hesap için 60 saniyede en fazla 30 webhook çağrısı.
  • Platform sınırların üzerindeki çağrıları atlar. Onları daha sonra göndermez.
  • Platform yanıtınızın HTTP durumunu kontrol etmez ve isteği tekrar göndermez.
  • Bir eylemin bir gecikmesi (SONRA) olabilir. Bir kuralda toplam en fazla 12 eylem vardır.

İlk test için aldığı istekleri gösteren herkese açık bir hizmet kullanın. Kolay bir koşulla bir kural oluşturun ve istek gövdesine bakın.

Destekle sohbet