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
Durum
Anlamı
Sonraki adım
Queued
Saklandı, cihazı bekliyor
Aşağıdaki “Kuyrukta kalıyor” bölümüne bakın
Sent
Gönderildi, cihaz henüz doğrulamadı
Bekleyin; böyle kalırsa cihaz bu topic’i işlemiyor olabilir
Delivered
Cihaz komutu aldı
Yanıtı bekleyin
Successful
Cihaz başarılı yanıtı verdi
Fiziksel olarak bir şey değişmediyse cihaz tarafını kontrol edin
Failed
Cihaz hata ile yanıt verdi
Response alanını okuyun
Timed out
Zamanında yanıt gelmedi
Komut yine de çalışmış olabilir: “Yanıt yok: sonuç bilinmiyor”. Yeniden göndermeden önce cihazı kontrol edin.
Expired
Teslim edilemeden süresi doldu
Cihaz, Give up after süresinden uzun süre çevrimdışı kaldı
Cancelled
Biri iptal etti
Kuyrukta kalır veya süresi dolar
Neden
Çözüm
Cihaz çevrimdışı ve komut persistent
Cihaz 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ğil
Hemen 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ıyor
HTTP 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 vermiyor
Aynı id ile yanıt vermesini sağlayın veya komutu tek yönlü gönderin
Yanıt zaman aşımı çok kısa
Answer 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 geldi
Answered 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 neden
Neden
Çözüm
bad_params
Parametreler komutla uyuşmuyor
Gerekli her parametreyi kendi aralığında doldurun
confirm_required, confirm_text_mismatch
Yüksek etkili bir komut onay gerektiriyor veya yazılan ifade yanlış
Onaylayın; ifadeyi tam olarak yazın
method_refused
Fabrika ayarlarına sıfırlama, eşleştirme, Wi-Fi’yi unutma ve buluttan ayrılma bulut üzerinden asla gönderilmez
Bunları cihaz üzerinde yapın
rpc_method_reserved
Metot kendi modülüne aittir (örneğin uzaktan erişim)
O modülü kullanın
rpc_not_supported_by_profile
Profil yalnızca komut taşımayan Legacy compatible topic şemasını kullanıyor
Ayarları shared attribute olarak gönderin veya profili güncel şemaya taşıyın
device_not_active
Cihaz devre dışı veya karantinada
Etkinleş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)
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
Nerede
Yaygı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 kural
Cihaz 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.