automations
automations, cihazlara belirli bir zamanda ya da tekrar eden aralıklarla gönderilecek komutların planlandığı otomasyon kayıtlarını tutar. Her otomasyon kaydı hedef cihazı, çalıştırılacak komutu, tetikleme tipini, sıradaki çalışma zamanını ve son çalışma sonucunu birlikte izler.
Bu yapı, zaman bazlı görev planlama ile komut yürütme geçmişini aynı tablo üzerinde birleştirir. Özellikle tekrarlı işlemler, önceliklendirme ve hata sonrası durum takibi için temel planlama katmanını oluşturur.
Enum Değerleri
automation.trigger_type
| Değer | Açıklama |
|---|---|
date | Belirli bir tarihte ve saatte tek sefer çalışır |
interval | Sabit zaman aralıklarıyla tekrar eden çalıştırma yapar |
automation.status
| Değer | Açıklama |
|---|---|
pending | Çalışma zamanı bekleniyor |
running | Otomasyon şu anda yürütülüyor |
completed | Yürütme başarılı şekilde tamamlandı |
failed | Yürütme hata ile sonuçlandı |
cancelled | Yürütülmeden önce iptal edildi |
Kolonlar
| Kolon | Tip | Null | Anlamı |
|---|---|---|---|
id | int | hayır | Otomasyon kaydı birincil anahtarı |
device_id | varchar(21) | hayır | Komutun gönderileceği cihaz; devices.id ile ilişkili |
user_id | int | evet | Otomasyonu oluşturan veya sahiplenen kullanıcı; users.id ile ilişkili |
device_command_id | int | hayır | Çalıştırılacak komut; device_commands.id ile ilişkili |
trigger_type | automation.trigger_type | hayır | Otomasyonun tek seferlik mi yoksa periyodik mi çalışacağı |
next_run_at | timestamp | hayır | Bir sonraki planlanan çalışma zamanı |
interval_seconds | int | evet | Periyodik otomasyonlar için tekrar aralığı; saniye cinsinden |
repeat_count | int | evet | Toplam tekrar limiti; boş ise açık uçlu tekrar anlamına gelebilir |
run_count | int | hayır | Şu ana kadar kaç kez çalıştırıldığı |
priority | int | hayır | Kuyruklama ve yürütme sıralaması için öncelik değeri |
status | automation.status | hayır | Otomasyonun güncel yürütme durumu |
last_run_at | timestamp | evet | Son çalıştırma zamanı |
last_result_code | int | evet | Son yürütmenin sonuç kodu |
last_result_message | varchar(255) | evet | Son yürütmeden dönen hata veya durum mesajı |
is_active | boolean | hayır | Otomasyon kaydının devrede olup olmadığı |
create_time | timestamp | hayır | Kayıt oluşturulma zamanı |
update_time | timestamp | hayır | Son güncelleme zamanı |
İndeksler
| İndeks | Tip | Açıklama |
|---|---|---|
id | Primary Key | Tablo birincil anahtarı |
Örnek Kayıtlar
- Planlı Tek Sefer
- Saatlik Tekrar
- Sahipsiz Görev
- Hatalı Tekrar
{
"id": 1,
"device_id": "46000000C47CA670",
"user_id": 1,
"device_command_id": 1,
"trigger_type": "date",
"next_run_at": "2026-04-04 06:00:00",
"interval_seconds": null,
"repeat_count": null,
"run_count": 0,
"priority": 1,
"status": "pending",
"last_run_at": null,
"last_result_code": null,
"last_result_message": null,
"is_active": true,
"create_time": "2026-04-03 12:00:00",
"update_time": "2026-04-03 12:00:00"
}
Özet: Belirli bir tarihte bir kez çalışacak bekleyen otomasyon; kullanıcı kaynaklı ve önceliği yükseltilmiş bir görev kaydıdır.
{
"id": 2,
"device_id": "46000000C47CA670",
"user_id": 1,
"device_command_id": 2,
"trigger_type": "interval",
"next_run_at": "2026-04-04 08:00:00",
"interval_seconds": 3600,
"repeat_count": 5,
"run_count": 0,
"priority": 2,
"status": "pending",
"last_run_at": null,
"last_result_code": null,
"last_result_message": null,
"is_active": true,
"create_time": "2026-04-03 12:05:00",
"update_time": "2026-04-03 12:05:00"
}
Özet: Saatlik aralıkla beş kez çalışacak periyodik otomasyon; daha yüksek öncelik ile kuyruğa alınmış tekrar eden komut senaryosunu gösterir.
{
"id": 3,
"device_id": "46000000C47CA671",
"user_id": null,
"device_command_id": 3,
"trigger_type": "date",
"next_run_at": "2026-04-04 00:00:00",
"interval_seconds": null,
"repeat_count": null,
"run_count": 0,
"priority": 0,
"status": "pending",
"last_run_at": null,
"last_result_code": null,
"last_result_message": null,
"is_active": true,
"create_time": "2026-04-03 12:10:00",
"update_time": "2026-04-03 12:10:00"
}
Özet: Kullanıcıya bağlı olmayan sistem üretimi bir planlı görev; varsayılan öncelik ile bekleme durumundadır.
{
"id": 4,
"device_id": "46000000C47CA672",
"user_id": 2,
"device_command_id": 6,
"trigger_type": "interval",
"next_run_at": "2026-04-03 13:00:00",
"interval_seconds": 86400,
"repeat_count": null,
"run_count": 3,
"priority": 1,
"status": "failed",
"last_run_at": "2026-04-03 12:00:00",
"last_result_code": 504,
"last_result_message": "Cihazdan zamanında yanıt alınamadı",
"is_active": true,
"create_time": "2026-04-01 09:00:00",
"update_time": "2026-04-03 12:00:00"
}
Özet: Günlük tekrar eden fakat son denemesinde timeout alan otomasyon; hata kodu ve açıklaması ile yeniden deneme ya da operatör müdahalesi için iz bırakır.