Panoramica delle API Home

Le API Google Home per Android forniscono un'interfaccia 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 camere 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
Figura 1: Architettura delle API Home

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

In Matter, le funzionalità dei dispositivi sono raggruppate in cluster, che nelle API Home sono rappresentati come tratti Matter standard. Le API Home supportano l'insieme standard di cluster Matter come definito nella specifica Matter corrente.

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

Sono disponibili anche altri tratti, come i cluster specifici del produttore e i tratti della piattaforma. Per scoprire di più, consulta la sezione Modello di dati.

Lingua

Le API Home 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 lo hai già fatto, ti consigliamo di familiarizzare con la documentazione di Kotlin su coroutine, flow e Jetpack Compose:

Identificatori di 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 la parità, poiché i metadati di un'entità possono cambiare.

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

Mappatura della terminologia

Le entità nelle API Home vengono associate ai concetti Matter e Cloud-to-cloud come segue:

API per la casa Matter Cloud-to-cloud
Tratto Cluster Tratto
Attributo Attributo Attributo, stato
Comando Comando Comando
Evento Evento Risposta di follow-up, Notifica