Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Zaman damgaları, geç ve yinelenen okumalar

Bir okumanın hangi zamanda kaydedildiği, gelecekten veya geçmişten gelen okumalar, zaman damgası ayarları, yinelenenler ve kesinti nedeniyle gecikmiş okumalar.

Her okuma bir zamana kaydedilir. Bu sayfa, bunun hangi zaman olduğunu, hangi okumaların zamanları nedeniyle reddedildiğini, yinelenenlerin nasıl ele alındığını ve geç gelen okumalara ne olduğunu açıklar.

Cihaz zamanı veya alım zamanı

Cihazın gönderdikleriKaydedilme zamanı
Düz bir nesne, örneğin {"temperature": 21.5}Platformun mesajı aldığı zaman
{"ts": 1759572000000, "values": {...}}ts: cihazın kendi zamanı
İki biçimin bir dizisiHer öğe kendi zamanında

ts, 1 Ocak 1970 UTC’den bu yana geçen milisaniyeyi gösteren bir tam sayıdır. Başka herhangi bir ts (saniye, metin, negatif sayı) kaydın bad_ts olarak düşürülmesine neden olur. Bkz. MQTT topics and payload reference.

Yalnızca cihazın saati senkronize olduğunda ts gönderin. Güvenilir bir saati olmayan cihaz düz nesneler göndermeli ve platformun bunlara zaman damgası atmasına izin vermelidir. Kayan bir saat, okumaların grafiklerde yanlış yere düşmesine neden olur ve reddedilebilir.

Bir akışta kayıt zamanı msg.metadata.recordTs, alım zamanı ise msg.metadata.ts‘tir. Save telemetry bloğu varsayılan olarak kayıt zamanını kaydeder; ts ayarı alım zamanına geçirilebilir ve ts_path, bir kaydı mesajdaki bir değerden yeniden zamanlayabilir.

Gelecekteki okumalar

Geliş zamanından 10 dakikadan fazla ileri zaman damgalı bir kayıt bad_ts olarak düşürülür. Asla “şimdi” olarak düzeltilmez. Toleransı Settings > Telemetry (IoT Telemetry Settings) bölümünden değiştirebilirsiniz:

AyarVarsayılanAralık
Gelecekteki zaman damgası toleransı (dakika)101 ila 1.440
Kabul edilen en eski ölçüm (gün)0 (her yaş)0 ila 36.500

Gelişinden önce Oldest accepted reading (days) değerinden daha eski bir kayıt bad_ts olarak düşürülür. Bir cihazın çok eski tamponlanmış verileri yeniden göndermesini engellemek için kullanın. Sayfa için View IoT telemetry settings ve Change IoT telemetry settings izinleri gerekir (varsayılan olarak Admin). Değişiklikler bir dakika içinde veri alımına ulaşır.

Geçmişten gelen okumalar

Saklama sınıfınızın ham veriyi tuttuğu süreden daha eski bir okuma, yukarıdaki ayarlar ne derse desin, depo tarafından too_old olarak reddedilir:

Saklama sınıfıBir okuma şundan eskiyse reddedilir
7 gün7 gün
30 gün7 gün
90 gün30 gün
365 gün90 gün
1.095 gün90 gün

Ham veri penceresi içindeki okumalar eski olsalar bile saklanır ve dakika, saat ve gün özetlerine katılır. Bkz. How long data is kept.

Yinelenenler

Bir cihaz, bir ağ geçidi veya bir yeniden deneme aynı okumayı iki kez gönderebilir. Hermetry bunu iki noktada ele alır:

  1. Akıştan önce. Mesaj kimliği 60 saniye içinde zaten görülmüş bir cihaz mesajı veya kimliği olmayıp kendi ts değerini taşıyan ve içeriği daha önce görülmüş bir mesaj, çalıştırılmadan onaylanır. Ne kimliği ne de ts değeri olan bir okuma asla tekrar sayılmaz: aynı değer iki kez, iki okumadır.
  2. Depoda. Aynı cihaz için aynı zamanda aynı değerleri taşıyan bir mesaj bir kez kaydedilir. Yeniden teslim edilen veya yeniden oynatılan bir mesaj hiçbir şeyi değiştirmez.

Aynı zaman damgasına sahip iki farklı mesaj da tutulur. API ham değerleri okuduğunda, zaman damgası başına bir nokta döndürür. En son değer, o zaman damgası için gördüğü ilk değeri korur.

Sıra dışı okumalar

Çevrimdışıyken okumaları tamponlayıp daha sonra gönderen bir cihaz, bunları daha yeni verilerden sonra teslim eder. Bunlar geçmişte kendi zamanlarında saklanır. En son değerin yerini almazlar. Alarm kuralları, son değerlendirilenden daha eski kayıtları geriye dönük veri olarak ele alır: canlı olarak değerlendirilmezler ve geriye dönük veri açık olan bir kural, bunlardan kimseye bildirim göndermeden alarm üretir. Bkz. Clear conditions and late readings.

Kesintinin geciktirdiği okumalar

Bir işleme çalışanı devre dışıyken mesajlar bir kuyrukta bekler. Platform yetiştiğinde, yaşam süresinden (varsayılan olarak 5 dakika) daha uzun bekleyen bir cihaz mesajı bir geç mesajdır:

  • Yine de kök akışından geçer ve kaydedilir. Birikmiş veri sizin verinizdir, bu yüzden orada asla atılmaz.
  • Geç olarak işaretlenir (msg.metadata.late). Platform dışında eylem yapan bloklar bunu atlar: bildirim yok, cihaz komutu yok, HTTP çağrısı veya MQTT yayını yok (bloğun late ayarı send değilse), yayılan olay yok.
  • Alarm rules bloğu bunu geriye dönük veri olarak değerlendirir: alarmlar geçmişe yazılır, Backfilled olarak işaretlenir ve geçmiş için kimse çağrılmaz. Canlı okumalar devam ettiğinde hâlâ açık olan bir alarm o zaman duyurulur.
  • Buna tepki verecek diğer akışlar (örneğin bir alarm dinleyicisi) onu düşürür ve Too old olarak sayar.

Bkz. Protections and failed messages.

Saat dilimleri

Her şey UTC olarak saklanır. Konsol, panolar ve dışa aktarımlar saatleri görüntüleyenin saat diliminde gösterir. Günlük toplamlar UTC ile gece yarısından gece yarısına çalışır; yerel günleri okumak için bkz. Aggregates and rollups.

Sorun giderme

BelirtiOlası neden
Bir okuma eksik, aynı cihazın diğerleri mevcutts değeri gelecekte veya aralık dışındaydı (bad_ts) ya da ham veri penceresinden eskiydi (too_old). Kök akışın çalışma kayıtlarını kontrol edin.
Okumalar saatler veya bir gün kadar kayık görünüyorCihaz ts değerini yerel saatte veya saniye cinsinden gönderiyor. UTC milisaniye veya düz nesneler gönderin.
Yeni okumalar gelmesine rağmen en son değer değişmiyorYeni okumalar, kayıtlı olandan daha eski veya eşit bir ts taşıyor.
Düzeltilmiş bir değer görünmüyorOrijinaliyle aynı ts ile gönderildi; en son değer ilkini korur. Düzeltmeyi yeni bir ts ile gönderin.

Ayrıca bkz. Wrong times and gaps.