Las APIs de Home para iOS 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 fabricantes externos), independientemente de la tecnología subyacente de la casa inteligente (como Matter o Cloud-to-cloud), y proporciona una superficie de API común para crear experiencias de usuario para desarrolladores de apps para dispositivos móviles y smart home.
Tipos de dispositivos
Los tipos de dispositivos que se presentan en las APIs de Home son una unificación de Matter y Cloud-to-cloud modelos de datos. Algunos se derivan directamente de Matter, otros son una extensión de Matter tipos de dispositivos y otros se derivan de Cloud-to-cloud.
Los tipos de dispositivos contienen rasgos que se usan para controlar y administrar dispositivos. Al igual que los tipos de dispositivos, los rasgos se derivan de los clústeres Matter y los rasgos Cloud-to-cloud, y se presentan en un formato común que es similar al de los clústeres Matter. En las APIs de Home, Matter-derived traits se denominan traits, no clusters.
Por lo tanto, los tipos de dispositivos y los rasgos de las APIs de Home están diseñados para ser Matter-compatibles. Un tipo de dispositivo o rasgo de Matter tiene prioridad sobre un análogo de Cloud-to-cloud.
Consulta Tipos de dispositivos compatibles en iOS para obtener una lista de los tipos de dispositivos y sus rasgos.
Rasgos
Se generan versiones de Swift de los rasgos para usarlas en las APIs de Home, y contienen funciones adicionales específicas de las APIs de Home (que no se encuentran en Matter ni en Cloud-to-cloud). Por ejemplo, cada rasgo tiene métodos para verificar si un rasgo admite un atributo o comando específico. Esto es útil para determinar 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 de dispositivo tengan las mismas funciones.
Para importar rasgos y tipos de dispositivos, importa el módulo GoogleHomeTypes a tu aplicación:
import GoogleHomeTypes
Además, puedes usar typealias para los nombres de rasgos y tipos de dispositivos para acortar el código y evitar la repetición del espacio de nombres:
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
La mayoría de los rasgos son compatibles con el uso de automatizaciones, y algunos rasgos solo están disponibles para las automatizaciones. Para obtener más detalles, consulta Compatibilidad con rasgos de la API de Automation en Android.
Composición del tipo de dispositivo
Las APIs de Home admiten la mayoría de los clústeres de aplicaciones Matter como rasgos en el modelo de datos. Los rasgos que no corresponden al control o los estados del dispositivo y que no ofrecen ninguna utilidad para los usuarios finales, como Binding y Groups, no se exponen a través de las APIs de Home.
Los rasgos derivados de Cloud-to-cloud rasgos de la casa inteligente suelen tener
el mismo nombre entre Cloud-to-cloud y las APIs de Home, como en
el ejemplo de OpenCloseTrait. Otros se representan como extensiones de
Matter rasgos, creadas con Matter
extensiones específicas del fabricante. Estos rasgos cierran la brecha para un
smart home rasgo en el que la funcionalidad se divide entre el
Matter SDK 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 aún no tienen análogos de Matter.
Los tipos de dispositivos se componen de rasgos de una o ambas fuentes, Matter o Cloud-to-cloud.
Por ejemplo, el
FanDeviceType
se compone de y cuenta con tres rasgos:
- El rasgo
IdentifyTraitMatter proporciona toda la funcionalidad de MatterIdentifyTrait. - El rasgo
FanControlTraitMatter proporciona toda la funcionalidad de MatterFanControlTrait. - El rasgo de Google
ExtendedFanControlTraitproporciona toda la funcionalidad de smart homeFanSpeedTraitde Google que no cubre el rasgoFanControlTraitMatter.
Este tipo de composición de rasgos proporciona un modelo flexible para la funcionalidad completa del tipo de dispositivo, que abstrae los modelos de datos subyacentes smart home.