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

Komutlar cihaza ulaşmıyor

Bir komut neden kuyrukta kalır, zaman aşımına uğrar, süresi dolar, başarısız olur veya reddedilir – komut durumları, kalıcılık ve süre sonu, katmanlar ve izinler, şifresiz oturumlar ve sınırlar.

Bu sayfa, cihaz sayfasından, bir pano kontrolünden, bir SCADA sembolünden, bir kuraldan, bir akıştan veya API üzerinden gönderilen bir komut beklediğiniz gibi çalışmadığında yardımcı olur. Komutun geçmişinden başlayın: cihazın Commands sekmesini ve History içindeki komutu açın. Durumu ve Progress alanı genellikle ne olduğunu anlatır.

Durumu okuyun

DurumAnlamıSonraki adım
QueuedSaklandı, cihazı bekliyorAşağıdaki “Kuyrukta kalıyor” bölümüne bakın
SentGönderildi, cihaz henüz doğrulamadıBekleyin; böyle kalırsa cihaz bu topic’i işlemiyor olabilir
DeliveredCihaz komutu aldıYanıtı bekleyin
SuccessfulCihaz başarılı yanıtı verdiFiziksel olarak bir şey değişmediyse cihaz tarafını kontrol edin
FailedCihaz hata ile yanıt verdiResponse alanını okuyun
Timed outZamanında yanıt gelmediKomut yine de çalışmış olabilir: “Yanıt yok: sonuç bilinmiyor”. Yeniden göndermeden önce cihazı kontrol edin.
ExpiredTeslim edilemeden süresi dolduCihaz, Give up after süresinden uzun süre çevrimdışı kaldı
CancelledBiri iptal etti

Kuyrukta kalır veya süresi dolar

NedenÇözüm
Cihaz çevrimdışı ve komut persistentCihaz geri gelene kadar, en fazla Give up after süresine kadar bekler (varsayılan 24 saat, en fazla 7 gün)
Cihaz çevrimdışı ve komut persistent değilHemen başarısız olur: “Cihaz çevrimdışı: “persistent” olmadan komut hemen başarısız olur.” Komutu persistent olarak veya cihaz çevrimiçiyken gönderin.
Cihaz bu bağlantıda v1/rpc/req/+ topic’ine abone olmadıKomutlar yalnızca bu abonelikten sonra teslim edilir. Cihaz her bağlantıdan sonra yeniden abone olmalıdır.
Oturum şifresiz (düz MQTT veya düz HTTP)Komutlar, profilin Commands allowed without TLS listesindekiler dışında yalnızca TLS oturumlarıyla iletilir. Diğerleri TLS oturumunu veya süre sonunu bekler.
Bir HTTP cihazı poll yapmıyorHTTP cihazları komutları GET /api/v1/rpc (long poll) ile bekler. Cihaz başına yalnızca bir poll açık olabilir (409). Bkz. Device HTTP API.

Zaman aşımına uğruyor

NedenÇözüm
Cihaz komutu çalıştırıyor ancak v1/rpc/res/{id} üzerinde yanıt vermiyorAynı id ile yanıt vermesini sağlayın veya komutu tek yönlü gönderin
Yanıt zaman aşımı çok kısaAnswer timeout (seconds) 1 ile 600 arasındadır (varsayılan 10)
Uzun süren bir işCihaz hemen kabul etmeli ("accepted": true, "job_id": …) ve sonucu daha sonra rpc_result client attribute içinde bildirmelidir
Yanıt bitişten sonra geldiAnswered after the end olarak gösterilir

Bir komut cihaza iki kez ulaşabilir. Cihaz son 32 istek id’sini 10 dakika boyunca hatırlamalı ve hiçbirini iki kez çalıştırmamalıdır. Bkz. Sending commands to devices.

Gönderilmeden önce reddediliyor

Mesaj veya nedenNedenÇözüm
bad_paramsParametreler komutla uyuşmuyorGerekli her parametreyi kendi aralığında doldurun
confirm_required, confirm_text_mismatchYüksek etkili bir komut onay gerektiriyor veya yazılan ifade yanlışOnaylayın; ifadeyi tam olarak yazın
method_refusedFabrika ayarlarına sıfırlama, eşleştirme, Wi-Fi’yi unutma ve buluttan ayrılma bulut üzerinden asla gönderilmezBunları cihaz üzerinde yapın
rpc_method_reservedMetot kendi modülüne aittir (örneğin uzaktan erişim)O modülü kullanın
rpc_not_supported_by_profileProfil yalnızca komut taşımayan Legacy compatible topic şemasını kullanıyorAyarları shared attribute olarak gönderin veya profili güncel şemaya taşıyın
device_not_activeCihaz devre dışı veya karantinadaEtkinleştirin veya aktive edin
payload_too_largeİstek, cihazın kabul ettiğinden büyük (varsayılan 64 KiB, lisanslı cihazlar için 4 KiB)Daha az gönderin
device_rate_limitedBu cihaza bir dakikada 10’dan fazla komutBir dakika bekleyin
“Planınız için çok fazla istek…”Kuruluşta bir dakikada 600’den fazla komutKomutları yayın

Tam liste için bkz. Commands API.

Katmanlar ve izinler

KatmanVarsayılan olarak kim gönderebilirİzin
BasicKullanıcılariot_rpc.send.basic
PrivilegedYöneticileriot_rpc.send.privileged
CriticalYöneticileriot_rpc.send.critical
Raw (katalogda olmayan bir metot)Sahipleriot_rpc.send.raw

Eksik bir düğme veya izin hatası, rolünüzde ya da gruplarınızda o katmanın izninin olmadığı anlamına gelir. Bkz. Groups and permissions.

Bir panodan, kuraldan veya akıştan

NeredeYaygın neden
Bir pano kontrolüPano kontrollerine yalnızca Basic komutlar sunulur. Listede olmayan bir komut profilin kataloğunda yoktur veya daha yüksek bir katmandadır. Gri bir kontrolün değeri eski veya bilinmiyordur ya da izniniz yoktur. Bkz. Control cards.
Hiçbir şey yapmıyor gibi görünen bir pano kontrolüKontrol göndermeden önce sorar (Ask before running varsayılan olarak açıktır); komut yalnızca Confirm sonrasında çalışır
Rules kartındaki bir kuralCihaz veya üstündeki bir yer Manual durumdaysa ya da bir komut adımı başarısız olduysa History “skipped: device is in Manual” gösterir. Bkz. Manual and auto modes.
Bir akışAkışlardan tek bir cihaza giden komutlar ve ayarlar varsayılan olarak dakikada 30 ile sınırlıdır. Komut her cihazın profilinde aranır; profilinde olmayan cihazlara hiçbir şey gönderilmez. Geç gelen mesajlar komut göndermez. Bkz. Alarm, command and notify blocks.
Bir SCADA sembolüBir sembolün komutu her zaman onay ister. Bkz. Commands on symbols.
Bir LoRaWAN cihazıYalnızca ham downlink’ler (lora.downlink). Class A cihazlar bunları bir sonraki uplink’lerinden sonra alır. Bkz. Sending downlinks.

İlgili