device_rule_state
device_rule_state, cihaz bazında her rule group'un o anki tetiklenme durumunu tutar. Rule geçmişini her pakette baştan hesaplamak yerine bu tablo sayesinde son bilinen durum hızlıca okunur. Özellikle duration kuralı, reset mantığı ve multi-trigger sayacı için zorunludur.
Bu tablo event geçmişi değildir; sadece current state'tir. Tarihsel iz rule_events tablosunda tutulur. (device_id, rule_group_id) kombinasyonu unique olmalıdır; böylece her cihaz-grup ikilisi yalnız bir state kaydı taşır.
Kolonlar
| Kolon | Tip | Null | Anlamı |
|---|---|---|---|
id | int | hayır | State kaydı birincil anahtarı |
device_id | varchar(21) | hayır | İlgili cihaz; devices.id ile ilişkili |
rule_group_id | int | hayır | İlgili rule group; rule_groups.id ile ilişkili |
is_triggered | boolean | hayır | Alarm şu an aktif mi (DEFAULT: false) |
trigger_count | int | hayır | Toplam tetiklenme sayısı (DEFAULT: 0) |
last_trigger_time | timestamp | evet | Son tetiklenme zamanı |
last_reset_time | timestamp | evet | Son reset zamanı |
last_event_id | bigint | evet | Son rule_events kaydına referans |
update_time | timestamp | hayır | Son güncelleme zamanı |
İndeksler
| İndeks | Amacı |
|---|---|
(device_id, rule_group_id) [unique] | Aynı cihaz-grup ikilisinin bir tane state kaydı taşıması garantisi |
Örnek Kayıtlar
- C47CA670 / Grup 1 - Aktif
- C47CA670 / Grup 2 - Reset
- C47CA671 / Grup 1 - Hiç Tetiklenmemiş
- C47CA671 / Grup 3 - Aktif
- C47CA672 / Grup 3 - Hiç Tetiklenmemiş
- E2E-001 Aktif Durum
{
"id": 1,
"device_id": "46000000C47CA670",
"rule_group_id": 1,
"is_triggered": true,
"trigger_count": 2,
"last_trigger_time": "2026-04-03T10:30:00Z",
"last_reset_time": "2026-04-03T08:15:00Z",
"last_event_id": 1,
"update_time": "2026-04-03T10:30:05Z"
}
Özet: Cihaz C47CA670'nin grup 1 alarmı şu an aktif. Daha önceki 2 tetiklemeden sonra 08:15'te reset olmuş, 10:30'da yeniden tetiklenmişlüğü belirtmektedir.
{
"id": 2,
"device_id": "46000000C47CA670",
"rule_group_id": 2,
"is_triggered": false,
"trigger_count": 1,
"last_trigger_time": "2026-04-02T16:40:00Z",
"last_reset_time": "2026-04-02T16:42:00Z",
"last_event_id": 2,
"update_time": "2026-04-02T16:42:05Z"
}
Özet: Aynı cihazın grup 2 alarmı şu an reset durumunda. Dün 16:40'ta tetiklenmişti, 2 dakika sonra reset olmuş ve o zamandan beri durağan.
{
"id": 3,
"device_id": "46000000C47CA671",
"rule_group_id": 1,
"is_triggered": false,
"trigger_count": 0,
"last_trigger_time": null,
"last_reset_time": null,
"last_event_id": null,
"update_time": "2026-04-03T09:32:00Z"
}
Özet: Cihaz C47CA671'e atama yapıldığından bu yana grup 1 alarm koşulu hiç sağlanmamış veya başlangıç durumudur.
{
"id": 4,
"device_id": "46000000C47CA671",
"rule_group_id": 3,
"is_triggered": true,
"trigger_count": 1,
"last_trigger_time": "2026-04-03T12:00:00Z",
"last_reset_time": null,
"last_event_id": 3,
"update_time": "2026-04-03T12:00:05Z"
}
Özet: Aynı cihazın grup 3 alarmı şu an aktiftir. 12:00'te tetiklenmişti ve henüz reset olmamışlıklarını göstermektedir.
{
"id": 5,
"device_id": "46000000C47CA672",
"rule_group_id": 3,
"is_triggered": false,
"trigger_count": 0,
"last_trigger_time": null,
"last_reset_time": null,
"last_event_id": null,
"update_time": "2026-04-03T09:34:00Z"
}
Özet: Cihaz C47CA672'nin grup 3 ataması yapılmış ancak şimdiye kadar alarm koşulu tetiklenmemiş; başlangıç durumundadır.
{
"id": 101,
"device_id": "46000000C47CA670",
"rule_group_id": 1,
"is_triggered": true,
"trigger_count": 1,
"last_trigger_time": "2026-04-09T10:30:05Z",
"last_reset_time": null,
"last_event_id": 101,
"update_time": "2026-04-09T10:30:05Z"
}
Özet: E2E-001 sonunda cihaz-grup durumu active olur ve son event kaydi 101e isaret eder.