Panoramica delle API Home per Android

Le API Google Home per Android forniscono una superficie API unificata per consentire agli sviluppatori di interagire con lo stato delle entità nella casa di un utente. Queste entità possono descrivere dispositivi e informazioni non relative ai dispositivi associati alla struttura e alle stanze di un utente.

Le API Home definiscono le seguenti entità con cui un utente può interagire:

  • Le strutture rappresentano una casa che contiene stanze e dispositivi.
  • Le stanze fanno parte di una struttura e contengono dispositivi.
  • I dispositivi implementano tratti contenenti attributi, sono conformi ai tipi, emettono eventi e rispondono ai comandi.
  • Le automazioni fanno parte di una struttura e utilizzano i metadati e i dispositivi della casa per automatizzare le attività in casa.

La Figura 1 illustra questa architettura:

Diagramma che mostra l'architettura delle API Home per un'app per Android
Figura 1: architettura delle API Home per un'app Android

I tipi di dispositivi dell'API Home possono essere supportati da Matter, uno standard aperto per la smart home, oppure essere un dispositivo Cloud-to-cloud nell'ecosistema Google Home. Alcuni tipi di dispositivi potrebbero incorporare funzionalità di entrambi. Per ulteriori informazioni, vedi Tipi di dispositivi supportati su Android.

In Matter, la funzionalità del dispositivo è raggruppata per cluster, che sono rappresentati nelle API Home come tratti standard Matter. Le API Home supportano il set standard di cluster Matter definiti nella specifica Matter corrente.

Nell'ecosistema Google Home, la funzionalità dei dispositivi è raggruppata in base alle caratteristiche della smart home, che sono rappresentate nelle API Home come caratteristiche della smart home di Google. Le API Home supportano l'insieme di caratteristiche per la smart home definite nel programma Cloud-to-cloud.

Sono disponibili anche altre caratteristiche, come i cluster specifici del produttore e le caratteristiche della piattaforma. Per scoprire di più, consulta la sezione Modello dei dati su Android.

Lingua

Le API Home per Android sono scritte in Kotlin e forniscono un'interfaccia Kotlin idiomatica che utilizza Flow per gestire lo stato e l'abbonamento. Ciò offre una serie di vantaggi rispetto a un'API di abbonamento standard.

Se non l'hai ancora fatto, ti consigliamo di familiarizzare con la documentazione di Kotlin su coroutine, flussi e Jetpack Compose:

Identificatori entità

Ogni entità nelle API Home ha un ID che rappresenta il suo identificatore principale. Questo ID è un identificatore univoco e stabile che non cambierà mai per tutta la durata dell'entità. Questo ID può essere utilizzato per memorizzare nella cache gli oggetti o verificare l'uguaglianza, poiché i metadati di un'entità possono cambiare.

Consulta l'interfaccia HasId per scoprire quali entità hanno un ID.

Mappatura della terminologia

Le entità nella mappa delle API Home corrispondono ai concetti Matter e Cloud-to-cloud come segue:

API Home Matter Cloud-to-cloud
Tratto Cluster Tratto
Attributo Attributo Attributo, Stato
Comando Comando Comando
Evento Evento Risposta di follow-up, Notifica