App di esempio
Se riscontri problemi durante l'utilizzo delle API Home, puoi raccogliere i log per ulteriori operazioni di debug. La raccolta dei log dal dispositivo mobile richiede Xcode. Se hai bisogno dell'assistenza di Google, raccogli i log sia dal dispositivo iOS sia dall'hub e apri un ticket nel tracker dei problemi con le informazioni e i log pertinenti associati.
Raccogliere i log iOS
Il tuo dispositivo mobile deve essere connesso alla tua macchina locale per tutti i passaggi che coinvolgono Xcode.
I log dell'app e dell'SDK vengono visualizzati e raccolti direttamente nella console Xcode. Quando il dispositivo mobile è connesso alla macchina locale ed esegui l'applicazione tramite Xcode, la console acquisisce e trasmette automaticamente i log di output standard (stdout) e di errore standard (stderr) sia dal livello dell'applicazione sia dall'SDK Home integrato. In questo modo, puoi monitorare facilmente i processi di inizializzazione in tempo reale, le interazioni API e gli eventi SDK durante lo sviluppo e il debug.
Raccolta dei log delle estensioni da Xcode
Se riscontri problemi durante l'utilizzo delle API Home, puoi raccogliere i log per ulteriore debug.
In Xcode, vai a Debug nella barra dei menu in alto e fai clic su Collega a processo per PID o nome.

In PID o nome processo, seleziona MatterExtension e fai clic su Allega.

Se fai clic in alto a destra, vedrai il messaggio In attesa di essere collegato a MatterAddDeviceExtension su iPhone.

Fai clic sulla scheda e seleziona MatterAddExtension.

La console registrerà il log dell'estensione.
Sherlog: tracciamento degli eventi cross-stack
Sherlog è un servizio di tracciamento in tempo reale che fornisce una visualizzazione end-to-end delle interazioni tra l'infrastruttura di Google e i servizi cloud partner.
Prerequisito: la tracciabilità richiede l'utilizzo di un account condiviso e coordinato da Google (ad es. un account demo o registrato in GReg).
Scopo principale: esegui il debug dei difetti funzionali e dei problemi di integrazione cloud-to-cloud (C2C) (ad es. errori di collegamento dell'account o stati del dispositivo errati) senza richiedere modifiche al codice di produzione.
Funzionalità: fornisce grafici completi delle chiamate RPC, payload di richiesta/risposta e metadati per gli intent SYNC, EXECUTE, QUERY e collegamento dell'account.
Log del dispositivo hub Fuchsia
Puoi raccogliere i log dai seguenti hub Fuchsia utilizzando questo metodo: * Google Nest Hub (2ª gen.) * Google Nest Hub Max
Per attivare un hub per il recupero dei log locali:
- Invia un'email con il numero di serie e il modello dei tuoi dispositivi al tuo Technical Account Manager (TAM) di Google. Si trovano in caratteri piccoli sotto il dispositivo.
- Una volta inserito nella lista consentita, devi attivare la funzionalità seguendo questi passaggi:
- Dall'hub:
- Scorri verso il basso dalla parte superiore dello schermo.
- Tocca l'icona Impostazioni .
- Trova la versione Fuchsia: su Nest Hub (2ª gen.), vai a Informazioni dispositivo > Informazioni tecniche > Versione Fuchsia
- Tocca "Versione Fuchsia" 7 volte. In questo modo, le opzioni sviluppatore verranno attivate.
- Torna al menu di primo livello
- Tocca "Opzioni sviluppatore".
- Tocca "Registrazione partner".
- La funzionalità verrà attivata per 24 ore. Dopodiché, riattiva la funzionalità di registrazione a partire dal passaggio 5.
- Dall'hub:
- Ottieni l'indirizzo IP dell'hub:
- Dall'hub, se ha uno schermo:
- Scorri verso il basso dalla parte superiore dello schermo.
- Tocca l'icona Impostazioni .
- Trova l'indirizzo IP del dispositivo: su Nest Hub (2ª gen.), vai a Informazioni sul dispositivo > Informazioni tecniche > Indirizzo IP
- Dall'app Google Home sullo smartphone:
- Tocca il dispositivo per visualizzare la pagina dei dettagli
- Tocca l'icona Impostazioni per visualizzare la pagina delle impostazioni.
- Trova l'indirizzo IP del dispositivo: vai a Informazioni sul dispositivo > Informazioni tecniche > Indirizzo IP
- Dall'hub, se ha uno schermo:
- Per recuperare i log dall'hub, invia una richiesta HTTP GET all'hub
da un computer connesso alla stessa rete Wi-Fi.
- Prendi nota della porta e del percorso dell'endpoint:
curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file - La connessione può essere mantenuta aperta per un solo minuto, ma i dati recuperati
dal buffer di solito contengono eventi passati di 20-30 minuti.
- Idealmente, i log vengono estratti utilizzando questo metodo immediatamente dopo il completamento di una procedura di test per garantire che il buffer contenga contenuti pertinenti al test (simili alle segnalazioni di bug di Android).
- Prendi nota della porta e del percorso dell'endpoint:
Automazioni
Rilevamento dei bordi
Le automazioni nell'ecosistema Google Home sono dotate di rilevamento dei bordi, ovvero una logica che verifica che un comando iniziale si attivi solo quando si verifica un'effettiva modifica dello stato, anziché un aggiornamento dello stato che ripete semplicemente lo stato precedente del dispositivo.
Ad esempio, se l'accensione di una luce è uno starter, il rilevamento del bordo verifica che lo starter si attivi solo se il dispositivo di illuminazione passa da spento ad acceso, anziché da acceso ad acceso (nessuna modifica).
L'automazione non si comporta come previsto
Dopo aver tenuto conto del rilevamento dei bordi, se un'automazione non si comporta come previsto:
Controlla ogni dispositivo per assicurarti che funzioni correttamente indipendentemente dall'automazione.
Dai un'occhiata al grafico dell'automazione, confrontandolo con il DSL dell'automazione, per rivelare eventuali ipotesi potenzialmente errate da parte tua.
Osserva lo stato del dispositivo nell'app Google Home durante l'esecuzione dell'automazione.
Controlla che tutti i dispositivi a cui fa riferimento l'automazione siano presenti nella struttura in cui ti aspetti che si trovino. L'eliminazione di un dispositivo da cui dipende un'automazione può avere conseguenze indesiderate. Consulta Impatto dell'eliminazione del dispositivo sulle automazioni.
L'automazione viene eseguita quando non dovrebbe
Se l'automazione viene eseguita quando non dovrebbe, esamina i criteri del comando iniziale. Potrebbe essere necessario aggiungere una logica aggiuntiva per assicurarsi che una modifica dello stato venga acquisita una sola volta e attivi l'automazione una sola volta.
L'automazione non viene compilata
Assicurati che la tua app contenga tutte le importazioni necessarie, inclusa ogni classe corrispondente ai diversi tipi di nodi, nonché i tratti a cui fai riferimento.
La creazione dell'automazione non supera la convalida
Se la creazione dell'automazione non supera la convalida, un messaggio di avviso o di errore
fornisce informazioni sul problema. Per saperne di più, consulta il riferimento ValidationIssueType.
OAuth
Se hai un client OAuth esistente
Se hai già un client OAuth verificato per un'app pubblicata, puoi utilizzare il client OAuth esistente per testare le API per la casa.
La registrazione Google Home Developer Console non è necessaria per testare e utilizzare le API per la casa. Tuttavia, per pubblicare la tua app avrai comunque bisogno di una registrazione Developer Console approvata, anche se hai un client OAuth verificato da un'altra integrazione.
Si applicano le seguenti considerazioni:
Esiste un limite di 100 utenti quando si utilizza un client OAuth esistente. Per informazioni sull'aggiunta di utenti di test, consulta la sezione Generare l'ID client OAuth. Indipendentemente dalla verifica OAuth, le API Home impongono un limite di 100 utenti che possono concedere autorizzazioni alla tua applicazione. Questa limitazione viene rimossa al termine della registrazione di Developer Console.
La registrazioneDeveloper Console deve essere inviata per l'approvazione quando sei pronto a limitare le concessioni di tipo di dispositivo tramite OAuth in preparazione dell'aggiornamento dell'app con le API Home.
Per le app Google Cloud per cui la verifica OAuth è ancora in attesa, gli utenti non possono completare il flusso OAuth finché la verifica non è completata. I tentativi di concedere le autorizzazioni non andranno a buon fine e verrà visualizzato il seguente errore:
Access blocked: <Project Name> has not completed the Google verification process.