Cihazı kaldırma

Bir cihazı kaldırmak, cihazın yapıdan hizmet dışı bırakılmasını gerektirir. Kullanıcılar bunu Google Home app (GHA) ile yapabilir ve uygulamalar, akıllı ev cihazlarının hizmet dışı bırakılmasını programatik olarak sağlayabilir. Hangi cihazların kaldırılabileceği konusunda sınırlamalar vardır. Ayrıca, bir cihazın kaldırılması uygulamanızın yapısını ve kullanıcı deneyimlerini etkileyebilir.

Kaldırabilecekleriniz

Aşağıdaki cihazları Home API'leri aracılığıyla programatik olarak kaldırabilirsiniz:

  • Uygulamanızın izinlere sahip olduğu Matter cihaz.
  • Matter köprüler (uygulamanızın köprü üzerinden bağlı tüm cihazlara erişimi olması koşuluyla) Köprünün kaldırılması, ona bağlı tüm Matter cihazlarını kaldırır.

Kaldıramayacaklarınız

Aşağıdaki cihazlar, Home API'leri aracılığıyla programatik olarak kaldırılamaz:

  • Uygulamanızın kullanıcı izinlerinin eksik olduğu Matter cihaz.
  • Matter köprüsü üzerinden bağlanan bağımsız cihazlar.
  • Cloud-to-cloud bağlı cihaz.
  • Çift cihazlar (hem Matter hem de Cloud-to-cloud uygulayan cihazlar).

Cihazı kaldırmadan önce dikkat edilmesi gereken önemli noktalar

Uygulamanız bir cihazı kaldırdığında bu cihaz, tüm yapıdan kaldırılır. Bu durum, GHA dahil olmak üzere tüm kullanıcıları ve tüm uygulamaları etkiler. Cihazın türüne bağlı olarak, devre dışı bırakmanın ek yan etkileri olabilir:

  • Birden fazla cihaz türü uygulayan cihazlar: Bir cihazın birden fazla işlevi varsa (ör. hem akıllı ışık hem de hub olarak işlev gören bir cihaz) bu cihazı kaldırdığınızda ilişkili tüm cihazlar da kaldırılır. Uygulama, birden fazla cihaz işlevinin etkileneceği durumlarda kullanıcıyı bilgilendirmelidir.
  • Cihaz Geçmişi: Bir cihazın silinmesi, cihazın geçmişinin kaldırılmasına neden olabilir.
  • Paylaşılan Yüzeyler: Paylaşılan yüzeylerde cihaz silerken dikkatli olun. Bu işlem, diğer kullanıcılar için istenmeyen sonuçlara yol açabilir.
  • Kimlik doğrulama: Cihaz kaldırma işlemi yalnızca kimliği doğrulanmış yüzeylerde (ör. cep telefonu) yapılmalıdır. TV gibi kimliği doğrulanmamış cihazlarda yapılmamalıdır. Bu durum, Google Home Geliştirici Politikaları'nı ihlal eder.

Cihazı kaldırma

Bir cihazın kaldırılmaya uygunluğunu kontrol etmek maliyetlidir ve yalnızca gerektiğinde yapılmalıdır. Bir cihazın kaldırılmaya uygun olup olmadığını kontrol etmek için aşağıdaki komutu kullanın:

val eligibility = device.checkDecommissionEligibility()

if (eligibility is DecommissionEligibility.Ineligible) {
  println("The device cannot be decommissioned.")
} else if (eligibility is DecommissionEligibility.EligibleWithSideEffects) {
  println("The device can be decommissioned but there will be side effects on other devices.")
} else if (eligibility is DecommissionEligibility.Eligible) {
  println("The device can be decommissioned.")
}

Matter cihazları

Cihaz bir Matter köprüsünün arkasında değilse Matter cihazını programatik olarak kaldırabilirsiniz.

Bir Matter cihazı kaldırmak için cihazda decommissionDevice() işlevini çağırın:

val decommissionedDeviceIds = device.decommissionDevice()

Çağrı hata vermiyorsa başarılı olmuştur.

Cihazın kimliğinin decommissionDevice() tarafından döndürülenler arasında olup olmadığını kontrol edebilirsiniz: decommissionDevice() :

if (decommissionedDeviceIds.contains(deviceId)) {
  println("Decommission successful!")
} else {
  println("Decommission failed!")
}

Matter olmayan cihazlar

Matter dışı cihazlar programatik olarak kaldırılamaz. Matter olmayan bir cihazı kaldırmak için Senkronizasyon isteği gönderebilir (bkz. Senkronizasyon İsteğinde Bulunma) veya Cloud-to-cloud entegrasyonunu silebilirsiniz (bkz. Başlatılan bir buluttan buluta entegrasyonunu silme).

decommissionDevice() işlevini Matter olmayan bir cihazda çağırırsanız HomeException hatası verilir.

Matter olmayan bir cihazı kaldırdıktan sonra, başarıyla kaldırıldığını doğrulamak için cihazın varlığını kontrol edin:

var removedDevice: HomeDevice? = null
runBlockingCustom {
  try {
    removedDevice = homeManager.devices().get(deviceId)
  } catch (exception: Exception) {
    println("removal successful!")
  }
}
if (removedDevice != null) {
  println("removal failed!")
}

Çok kaynaklı cihazlar

Çok kaynaklı cihazlar hem Cloud-to-cloud hem de Matter API'lerini kullanan cihazlardır. Bu tür bir cihazın hizmetten çıkarma uygunluğunu kontrol ederseniz cihazın çok kaynaklı olması nedeniyle hizmetten çıkarılamayacağını belirten bir DecommissionIneligibleReason.multiSourceDevice alırsınız.

Çok kaynaklı bir cihazı kaldırmak için aşağıdaki prosedürü uygulayın:

  1. Cloud-to-cloud ilişkilendirmesini Non-Matter cihazlar bölümünde açıklandığı şekilde kaldırın.
  2. Matter cihazını Madde cihazları bölümünde açıklandığı gibi devre dışı bırakın.

Bu adımların sırası önemlidir. Cloud-to-cloud ilişkilendirmesini kaldırmadan önce Matter cihazını devre dışı bırakmaya çalışırsanız HomeException hatası verilir.