Device Access projeleri, ortama ve ticari teklifin türüne bağlı olarak kullanıcı, yapı ve hız sınırlarıyla kısıtlanır.
Geliştiricilerin ilgi çekici kullanıcı deneyimleri oluşturmasını istiyoruz ancak Nest hizmetinin ve cihazlarının da kullanıcılar için her zaman kullanılabilir olmasını istiyoruz. Belirli bir süre içinde çok sayıda istekte bulunan entegrasyonlar, hizmet ve cihaz kullanılabilirliğini etkileyebilir. Bu nedenle SDM API, sıklık sınırları uygular. Sıklık sınırlaması, belirli bir süre içinde yapılan API çağrılarının sayısını kısıtlar ve kaynakların aşırı kullanılmasını önler.
Ortama göre sınırlar
Tüm projeler Sandbox ortamında başlar. Sandbox, SDM API'nin değerlendirilmesi ve kişisel kullanım için tasarlanmıştır. Bu nedenle, sınırlar buna göre belirlenir. Ticari Geliştirme gibi daha büyük kullanıcı tabanlarına sahip ortamlar için farklı sınırlar geçerlidir.
Korumalı alan kullanıcı sınırları
Sandbox'taki bir geliştirici hesabı, tüm projelerdeki 5 yapı genelinde 25 kullanıcıyla sınırlıdır. Hesap başına 3 proje sınırı vardır.
Yapılar her biri 5 kullanıcıyla sınırlıdır. Bu nedenle, kullanıcı sınırına yalnızca 5 yapının tamamı 5 kullanıcıyla doldurulduğunda ulaşılır. Projenin sahibi olan geliştirici hesabı, bir yapı için 5 kullanıcı sınırına dahil edilmez.
Buna karşılık, bir projede 5 yapıdan fazla 15 kullanıcı varsa yapı sınırı zaten aşıldığı için ek kullanıcılar yalnızca mevcut 5 yapıya eklenebilir.
Korumalı alan sıklık sınırları
Sandbox'ta 3 farklı düzeyde hız sınırlaması uygulanır. Aksi belirtilmedikçe sınırlar, dakika başına sorgu (QPM) olarak belirlenir.
API seviyesi
API çağrıları proje ve kullanıcı başına sınırlıdır. Tek tek yöntemler hakkında daha fazla bilgi için API Referansı'na bakın.
| API Yöntemi | Hız Sınırı |
|---|---|
devices.executeCommand |
10 QPM |
devices.get |
10 QPM |
devices.list |
5 QPM |
structures.get |
5 QPM |
structures.list |
5 QPM |
structures.rooms.get |
5 QPM |
structures.rooms.list |
5 QPM |
Komut düzeyi
Her özellik komutu (devices.executeCommand), proje, kullanıcı ve cihaz başına 5 QPM ile sınırlıdır.
Yani bir projede her biri 2 cihaz kullanan 2 kullanıcı varsa (toplam 4 cihaz), aynı komut 4 cihazın her biri için dakikada 5 kez çağrılabilir.
Ancak bir projede her biri 3 cihaz kullanan 2 kullanıcı varsa (toplam 6 cihaz), aynı komut bu 6 cihazın her biri için bir dakika içinde 5 kez çağrılamaz. Bu durumda, bir projenin kullanıcısı için devices.executeCommand API düzeyindeki hız sınırı 10 QPM iken her kullanıcı için 15 QPM elde edilir.
Cihaz örneği düzeyi
Ayrıca, cihaz pilini korumak için projelerde ve komutlarda (devices.executeCommand) cihaz örneği düzeyinde sınırlamalar uygulanır. Bu sınırlamalar hem QPM hem de saatte sorgu (QPH) düzeyinde uygulanır ve get ile list API yöntemleri için geçerli değildir.
Örneğin, Proje A ve Proje B'nin aynı cihaza (Cihaz A) erişimi olduğunu varsayalım (belki kullanıcı aynı cihazı kullanan iki farklı ticari entegrasyonu yetkilendirmiştir). Proje A, bir dakika içinde Cihaz A'ya 4 komut gönderdiyse cihaz örneği düzeyindeki sıklık sınırı aşılmadan önce Proje B, aynı dakika içinde Cihaz A'ya yalnızca 1 komut gönderebilir. Bu noktada, Cihaz A'ya gönderilen ilk komutla başlayan dakikanın sonuna kadar her iki projenin Cihaz A'ya gönderdiği komutlar sınırlandırılır.
Aşağıda listelenmeyen cihaz türlerinde cihaz örneği düzeyinde hız sınırlamaları yoktur.
| Cihazın Türü | Cihaz örneği hız sınırı |
|---|---|
| TERMOSTAT | 5 QPM veya 100 QPH |
| KAMERA | 30 QPM veya 100 QPH |
| DOORBELL | 30 QPM veya 100 QPH |
Hatalar
Bu kılavuzla ilgili olarak aşağıdaki hata kodları döndürülebilir:
| Hata Mesajı | RPC | Sorun giderme |
|---|---|---|
| Hız sınırlaması uygulandı. | RESOURCE_EXHAUSTED |
Her geliştiricinin yapabileceği çağrı sayısını sınırlayan bir kotası vardır. Kotanızdan daha fazla arama yaparsanız "Sınırlı hız" mesajını alırsınız. Bu sorunu düzeltmek için kota süresi dolduktan sonra çağrıyı yeniden gönderin. |
API hata kodlarının tam listesi için API Hata Kodu Referansı'na bakın.