Lewati ke konten

Memantau suhu dan memicu alarm

Skenario: sebuah gudang dingin punya sensor di beberapa ruang. Anda ingin melihat suhu di dashboard dan mendapat alarm bila suhu masuk melewati 23,5 °C.

Prasyarat: workspace, channel telemetri-gudang, dan device sudah dibuat, dihubungkan (publish), dan rule penyimpanan terpasang. Bila belum, ikuti Mulai cepat.

Perangkat (atau simulator) mengirim SenML tiap beberapa detik:

[{"bn":"ruang-a1:","n":"temp_inlet","u":"Cel","v":22.4},
{"n":"temp_outlet","u":"Cel","v":33.7},
{"n":"humidity","u":"%RH","v":48.3},
{"n":"power_draw","u":"W","v":1128.3}]

Di Messages, nama metrik tersimpan sebagai ruang-a1:temp_inlet. Bila Anda memakai SenML tanpa bn, namanya hanya temp_inlet.

Di Otomasi → Rules → Buat rule, susun:

Rule 'Alarm suhu masuk tinggi': Channel Subscriber, Lua, dan Alarm.
Channel Subscriber → Lua → Alarm.
  1. Tambah Input: Channel Subscriber, pilih channel Telemetri Gudang, subtopik dikosongkan.

  2. Tambah Logic: Lua, tempel kode berikut. Kode mengembalikan objek alarm saat suhu melebihi batas, atau false bila normal.

    function logicFunction()
    for _, rec in ipairs(message.payload) do
    if rec.n and string.find(rec.n, "temp_inlet$") and rec.v and rec.v > 23.5 then
    return {
    severity = 70,
    cause = "Suhu masuk melewati batas",
    measurement = rec.n,
    value = rec.v,
    unit = "Cel",
    threshold = "23.5",
    }
    end
    end
    return false
    end
    return logicFunction()
  3. Tambah Output: Alarm. Biarkan field kosong (diambil dari hasil Lua). Atur auto-clear: setelah N pesan normal berturut-turut, misalnya 3.

  4. Simpan rule dengan nama Alarm suhu masuk tinggi, lalu nyalakan saklar Rule aktif.

Klik Test Rule dan masukkan payload contoh. Logic berjalan sungguhan; output Alarm hanya menampilkan pratinjau, jadi tidak ada alarm sungguhan yang tercipta.

Saat suhu melewati 23,5 °C, alarm muncul di menu Alarms, di kartu Home, dan di lonceng bilah atas.

Daftar alarm aktif dengan severity High.
  • Pembacaan berikutnya yang tetap tinggi tidak membuat alarm baru: penghitung kemunculan bertambah (deduplikasi per rule, device, dan measurement).
  • Setelah 3 pesan normal berturut-turut, alarm otomatis berstatus cleared.
  • Anda bisa Acknowledge, Assign ke rekan, menulis komentar, atau Resolve secara manual.

Di halaman Alarms, atur notifikasi workspace: in-app, e-mail, dan Telegram, dengan severity minimum (bawaan 60). Tombol Kirim notifikasi uji memastikan saluran bekerja. Alarm berseverity 70 di contoh ini (High) memenuhi batas bawaan.

Tambahkan widget Alarm Table dan Count Card (entitas alarms) ke dashboard Anda, bersama grafik temp_inlet per ruang (Dashboards).

Kebutuhan Cara
Alarm hanya bila tinggi selama 5 menit Pakai rule terjadwal dengan query_agg("ruang-a1:temp_inlet", "5m", "min") > 23.5, lalu output Alarm (Rule terjadwal).
Kirim juga ke Telegram Tambah output Telegram pada logic yang sama; template memakai {{.Result.cause}} dan {{.Result.value}}.
Alarm per ruang Gunakan measurement = rec.n (seperti di contoh) sehingga tiap ruang punya alarm sendiri.