Modelo de datos

Las APIs de Home presentan todos los dispositivos del ecosistema de Google Home en un modelo de datos unificado. Este modelo de datos abarca todos los tipos de dispositivos (de Google Nest o de fabricantes externos), independientemente de la tecnología subyacente de la casa inteligente (como Matter o Cloud-to-cloud), y proporciona una plataforma de API común para crear experiencias del usuario para desarrolladores de smart home y de apps para dispositivos móviles.

Tipos de dispositivos

Los tipos de dispositivos que se presentan en las APIs de Home son una unificación de los modelos de datos Matter y Cloud-to-cloud. Algunos se derivan directamente de Matter, algunos son una extensión de los tipos de dispositivos Matter y otros se derivan de Cloud-to-cloud.

Los tipos de dispositivos contienen atributos que se usan para controlar y administrar dispositivos. Al igual que los tipos de dispositivos, los atributos se derivan de los clústeres Matter y los atributos Cloud-to-cloud, y se presentan en un formato común similar al de los clústeres Matter. En las APIs de Home, los atributos derivados de Matter se denominan atributos, no clústeres.

Por lo tanto, los tipos de dispositivos y las características de las APIs de Home están diseñados para priorizar Matter. Un tipo o atributo de dispositivo Matter tiene prioridad sobre un analógico Cloud-to-cloud.

Consulta Tipos de dispositivos compatibles para obtener una lista de los tipos de dispositivos y sus atributos.

Rasgos

Las versiones de Kotlin de los atributos se generan para su uso en las APIs de Home y contienen funciones adicionales específicas de las APIs de Home (que no se encuentran en Matter ni Cloud-to-cloud). Por ejemplo, cada atributo tiene métodos para verificar si admite un atributo o comando específico. Esto es útil cuando se determina si se puede realizar la lectura del estado o ciertas acciones en el dispositivo de un usuario, ya que no se espera que todos los dispositivos de un tipo tengan las mismas funciones.

Cada atributo se encuentra en su propio espacio de nombres y se debe importar de forma individual para usarlo.

Por ejemplo, para usar el atributo de encendido/apagado Matter y el tipo de dispositivo de unidad de complemento de encendido/apagado, importa los siguientes paquetes a tu aplicación:

import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice

Para un tipo de dispositivo de cochera (de la casa inteligente de Google), incluye una combinación de Matter y atributos de Google:

import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice

Android Studio tiene la funcionalidad de autocompletar y, a menudo, manejará los nombres de paquetes completos por ti cuando agregues líneas import a los archivos de origen de tu proyecto. Sin embargo, los nombres de los paquetes no son coherentes en todos los tipos y atributos de dispositivos. Consulta la referencia para verificar el nombre de paquete correcto de cada DeviceType o Trait.

Los atributos también son compatibles con las automatizaciones, pero pueden ser limitados, y algunos solo están disponibles para las automatizaciones. Para obtener una lista, consulta Compatibilidad con atributos de la API de Automation.

Composición del tipo de dispositivo

Las APIs de Home admiten la mayoría de los clústeres de aplicaciones de Matter 1.3 como atributos en el modelo de datos. Los atributos que no corresponden al control o los estados del dispositivo y que no ofrecen ninguna utilidad para los usuarios finales, como Binding y Grupos, no se exponen a través de las APIs de Home.

Los atributos derivados de los atributos de casa inteligente de Cloud-to-cloud suelen tener el mismo nombre entre Cloud-to-cloud y las APIs de Home, como en el ejemplo de OpenClose. Otros se representan como extensiones de rasgos Matter, creados con extensiones específicas del fabricante Matter. Estos atributos cierran la brecha para un atributo smart home en el que la funcionalidad se divide entre el SDK de Matter y el ecosistema de Google Home. Un ejemplo específico de esto son los tipos de dispositivos Google* que provienen de Cloud-to-cloud, pero que aún no tienen análogos de Matter.

Los tipos de dispositivos se componen de atributos de una o ambas fuentes, Matter o Cloud-to-cloud.

Por ejemplo, el tipo de dispositivo de ventilador se compone de ambos y cuenta con dos atributos de FanControl:

  • El atributo Matter de FanControl proporciona todas las funciones del atributo FanControl Matter.
  • El atributo Google ExtendedFanControl proporciona todas las funciones del atributo FanSpeed smart home de Google que no cubre el atributo Matter de FanControl.

Este tipo de composición de atributos proporciona un modelo flexible para la funcionalidad completa del tipo de dispositivo, lo que abstrae los modelos de datos smart home subyacentes.