Webhook Entegrasyonu
Sensium'daki olayları (alarm, cihaz durumu değişikliği vb.) ERP, MRP veya MES sisteminize webhook ile gönderin.
Webhook Oluşturma
Dashboard → Ayarlar → Webhook'lar sayfasından yeni webhook ekleyebilirsiniz.
Olay Tipleri
| Olay | Açıklama |
|---|---|
alert.created | Yeni alarm oluştu |
alert.acknowledged | Alarm onaylandı |
alert.resolved | Alarm çözüldü |
device.online | Cihaz çevrimiçi |
device.offline | Cihaz çevrimdışı (60 sn veri yok) |
machine.status_changed | Makine durumu değişti (online → warning vb.) |
machine.assigned_to_group | Makine bir gruba eklendi/çıkarıldı |
ai.anomaly_detected | AI yardımcı anormallik tespit etti |
audit.entity_changed | Bir varlıkta CRUD işlemi (audit log) |
Webhook Payload
POSTWebhook İsteği
POST https:300">"text-slate-500">//erp.sirketiniz.com/pulse-webhook
Content-Type: application/json
X-Sensium-Signature: sha256=abc123...
X-Sensium-Event: alert.created
X-Sensium-Delivery: 7c1b9f4e-...
X-Sensium-Tenant: 41e1833a-...
{
300">"event": 300">"alert.created",
300">"timestamp": 300">"2026-05-04T12:00:00Z",
300">"data": {
300">"id": 300">"550e8400-...",
300">"severity": 300">"critical",
300">"sensorType": 300">"temperature",
300">"triggeredValue": 87.5,
300">"threshold": 85,
300">"machineId": 300">"abc-...",
300">"machineName": 300">"CNC Tezgah 1",
300">"groupIds": [300">"pres-atolyesi-uuid"],
300">"deviceKey": 300">"cnc-001",
300">"sensorKey": 300">"spindleTemperature"
}
}İmza Doğrulama
Her webhook isteği X-Sensium-Signature header'ı ile imzalanır. Gelen istekleri doğrulamak için:
verify-signature.js
const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expected = 'sha256=' +
crypto.createHmac('sha256', secret)
.update(JSON.stringify(payload))
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}
300">"text-slate-500">// Express middleware örneği
app.post('/pulse-webhook', (req, res) => {
const signature = req.headers['x-sensium-signature'];
if (!verifySignature(req.body, signature, 'wh_sizin_secret')) {
return res.status(401).json({ error: 'Invalid signature' });
}
300">"text-slate-500">// İşle...
res.json({ received: true });
});Yeniden Deneme
Başarısız webhook gönderimleri (HTTP 4xx/5xx veya timeout) üç kez yeniden denenir:
1. denemeAnlık
2. deneme1 dakika sonra
3. deneme5 dakika sonra
Plan Sınırlamaları
| Plan | Webhook Limiti |
|---|---|
| Başlangıç | 1 webhook |
| Profesyonel | 5 webhook |
| Kurumsal | Sınırsız |