Ana içeriğe geç

Envelope: Automation Servisi

Topic: qapu.automation
DLQ: qapu.dlq.automation
Producer: automation-service

Automation servisi, cihazlara uzaktan komut gönderir (röle aç/kapa, parametre güncelleme vb.). Bir otomasyona komut talep edildiğinde automation.command.requested.v1, iş başarıyla tamamlandığında automation.job.completed.v1, hata durumunda automation.job.failed.v1 üretilir.

Event Envanteri

EventNe zaman üretilir?ConsumerAmaç
automation.command.requested.v1Kural veya kullanıcı tetiklemesi ile otomasyon işi kuyruğa alındığında(iç)Komut kuyruğa alındı bildirimi
automation.job.completed.v1Cihazdan başarı ACK alındığındaAction Servisi, LedgerDöngüyü kapatmak ve denetim
automation.job.failed.v1Cihazdan hata alındığında veya zaman aşımı oluştuğundaObserverHata görünürlüğü ve retry kararı

automation.command.requested.v1

Özet

BaşlıkDeğer
Topicqapu.automation
Producerautomation-service
Consumer(Servis içi)
Tetikleyiciaction.execute.requested.v1 tüketimi — action_type automate olduğunda
KritiklikYüksek — cihaza fiziksel komut gider

Payload

{
"event": "automation.command.requested.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i0",
"producer_service": "automation-service",
"produced_at": "2026-03-11T15:22:15.000Z",
"process_ms": 5
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:15.000Z",
"iccid": null,
"imei": null,
"firmware": "2.3.0"
},
"data": {
"job_id": "job_9823412_001",
"action_id": "act_9823412_001",
"command": "relay_open",
"channel": 2,
"timeout_ms": 30000,
"queued_at": "2026-03-11T15:22:15.000Z"
},
"error": null
}

Alan Açıklamaları

AlanTipZorunluAçıklama
data.job_idstringEvetOtomasyon işinin benzersiz tanımlayıcısı
data.commandstringEvetCihaza gönderilecek komut adı
data.channelintegerHayırHedef röle veya çıkış kanalı numarası
data.timeout_msintegerEvetACK bekleme süresi (ms)

automation.job.completed.v1

Özet

BaşlıkDeğer
Topicqapu.automation
Producerautomation-service
ConsumerAction Servisi, Ledger Servisi
TetikleyiciCihazdan başarı ACK alındığında
KritiklikYüksek

Payload

{
"event": "automation.job.completed.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i1",
"producer_service": "automation-service",
"produced_at": "2026-03-11T15:22:18.300Z",
"process_ms": 3300
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:18Z",
"iccid": null,
"imei": null,
"firmware": null
},
"data": {
"job_id": "job_9823412_001",
"action_id": "act_9823412_001",
"command": "relay_open",
"channel": 2,
"ack_received_at": "2026-03-11T15:22:18.290Z",
"duration_ms": 3290
},
"error": null
}

automation.job.failed.v1

Özet

BaşlıkDeğer
Topicqapu.automation
Producerautomation-service
ConsumerObserver Servisi
KritiklikYüksek — cihaz komutu uygulanamadı

Payload

{
"event": "automation.job.failed.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i2",
"producer_service": "automation-service",
"produced_at": "2026-03-11T15:22:45.050Z",
"process_ms": 30050
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:45Z",
"iccid": null,
"imei": null,
"firmware": null
},
"data": {
"job_id": "job_9823412_001",
"action_id": "act_9823412_001",
"command": "relay_open",
"channel": 2
},
"error": {
"failed_stage": "automation",
"error_code": "AUTOMATION_ACK_TIMEOUT",
"error_message": "No ACK received within 30000ms",
"failed_at": "2026-03-11T15:22:45Z"
}
}