Quitar un dispositivo implica darlo de baja de la estructura. Un usuario puede hacerlo con Google Home app (GHA), y una app puede dar de baja un dispositivo inteligente para la casa de forma programática. Existen limitaciones sobre qué dispositivos se pueden quitar. Además, quitar un dispositivo puede afectar la estructura y las experiencias del usuario de tu app.
Qué puedes quitar
Puedes quitar los siguientes dispositivos de forma programática a través de las APIs de Home:
- Matter dispositivos para los que tu app tiene permisos.
- Puentes de Matter, siempre que tu app tenga acceso a todos los dispositivos conectados a través del puente Si quitas el puente, se quitarán todos los dispositivos Matter conectados a él.
- Dispositivos de cámara y timbre compatibles, incluidas las cámaras y los timbres Google Nest compatibles con Matter, así como las cámaras de socios compatibles Para obtener detalles sobre los modelos compatibles y no compatibles, consulta Cámaras y timbres.
Qué no puedes quitar
Los siguientes dispositivos no se pueden quitar de forma programática a través de las APIs de Home:
- Dispositivos Matter para los que tu app no tiene permisos del usuario
- Dispositivos individuales conectados detrás de un puente Matter.
- Cloud-to-cloud dispositivos vinculados
- Dispositivos de doble ruta que no son cámaras (dispositivos que implementan Matter y Cloud-to-cloud, además de cámaras y timbres compatibles)
- Dispositivos de cámara y timbre no compatibles, incluidas las pantallas inteligentes con cámaras integradas y las cámaras heredadas que no admiten Matter (consulta Cámaras y timbres).
Consideraciones importantes antes de quitar un dispositivo
Cuando tu app quita un dispositivo, este se quita de toda la estructura, lo que afecta a todos los usuarios y a todas las apps, incluido el GHA. Según el tipo de dispositivo, es posible que haya efectos secundarios adicionales por la baja del dispositivo:
- Si un dispositivo proporciona varias funciones, como una lámpara inteligente que también actúa como concentrador, quitarlo también quitará todos los dispositivos asociados. La app debe informar al usuario si se ven afectadas varias funciones del dispositivo.
- Si quitas una cámara o un timbre, se borrarán de forma permanente todo el historial de video continuo, el historial de video de eventos, los clips grabados y los datos de la biblioteca de rostros conocidos asociados con esa cámara en toda la estructura de la casa.
- La desactivación de una cámara no cancela las suscripciones activas, como Google Home Premium o los servicios de supervisión de socios. Las suscripciones continúan hasta que el usuario las cancela.
- Cuando se retira de servicio una cámara o un timbre, la plataforma de las APIs de Home muestra al usuario una pantalla de confirmación administrada por Google en la que se explica que el historial de video se borrará de forma permanente. El usuario debe confirmar este mensaje antes de quitar el dispositivo.
- Ten cuidado cuando borres dispositivos en plataformas compartidas, ya que esto puede tener consecuencias no deseadas para otras personas.
- La eliminación del dispositivo solo se debe realizar en plataformas autenticadas, como un teléfono celular, no en dispositivos no autenticados, como TVs. Esto incumple las Políticas para Desarrolladores de Google Home.
Cómo quitar un dispositivo
Verificar si un dispositivo es apto para quitarse es costoso y solo debe hacerse cuando sea necesario. Para verificar si un dispositivo es apto para quitarse, usa el siguiente comando:
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.") }
Dispositivos de Matter
Puedes quitar un dispositivo Matter de forma programática si el dispositivo no está detrás de un puente Matter.
Para quitar un dispositivo Matter, llama a decommissionDevice() en él:
val decommissionedDeviceIds = device.decommissionDevice()
Si la llamada no arroja un error, significa que se realizó correctamente.
Puedes verificar si el ID del dispositivo se encuentra entre los que devuelve decommissionDevice() de la siguiente manera:
if (decommissionedDeviceIds.contains(deviceId)) { println("Decommission successful!") } else { println("Decommission failed!") }
Cámaras y timbres
Puedes quitar cámaras y timbres compatibles de forma programática con decommissionDevice().
Entre los modelos compatibles, se incluyen los siguientes:
- Google Nest Cam (indoor, wired)
- Google Nest Cam (outdoor or indoor, battery)
- Google Nest Cam with floodlight
- Google Nest Doorbell (battery)
- Google Nest Doorbell (wired)
- Cámaras y timbres de socios compatibles (como onn. de Walmart)
Los siguientes dispositivos de cámara y timbre no se pueden retirar de forma programática:
- Pantallas inteligentes con cámaras integradas, como Google Nest Hub Max.
- Cámaras y timbres Nest heredados que no admiten Matter y se conectan solo a través de servicios en la nube, como Nest Cam Indoor (1ª gen.), Nest Cam Outdoor (1ª gen.), Nest Cam IQ y Nest Doorbell (con cable, 1ª gen.).
- Cámaras y timbres vinculados de Cloud-to-cloud de terceros
Cuando tu app inicia la baja de una cámara o un timbre, la plataforma muestra al usuario una pantalla de confirmación administrada por Google. En esta pantalla, se informa al usuario que, si quita la cámara, se borrarán de forma permanente todos los datos grabados del historial de video continuo, el historial de eventos, los clips y la biblioteca de rostros conocidos asociados con el dispositivo en toda la estructura.
Si el usuario descarta o cancela la pantalla de confirmación,decommissionDevice() arroja un HomeException.
La desactivación de una cámara no cancela las suscripciones activas a la cámara (como Google Home Premium). Los usuarios deben cancelar las suscripciones por separado a través del proveedor de suscripciones.
kotlin
try {
val decommissionedDeviceIds = device.decommissionDevice()
if (decommissionedDeviceIds.contains(device.id)) {
// Camera was successfully decommissioned
}
} catch (e: HomeException) {
// Handle cancellation or decommission error
}
Dispositivos que no son de Matter
Los dispositivos que no son Matter (que no sean cámaras y timbres compatibles) no se pueden quitar de forma programática. Para quitar otros dispositivos que no sean de Matter, puedes enviar una solicitud de sincronización (consulta Solicitar sincronización) o borrar la integración de Cloud-to-cloud (consulta Borra una integración de nube a nube lanzada).
Si llamas a decommissionDevice() en un dispositivo no compatible que no sea Matter, se arroja un HomeException.
Una vez que quites un dispositivo que no sea Matter, verifica su presencia para confirmar que se quitó correctamente:
var removedDevice: HomeDevice? = null runBlockingCustom { try { removedDevice = homeManager.devices().get(deviceId) } catch (exception: Exception) { println("removal successful!") } } if (removedDevice != null) { println("removal failed!") }