Risoluzione dei problemi

App di esempio

Se riscontri problemi durante l'utilizzo delle API Home, puoi raccogliere i log per un ulteriore debug. La raccolta dei log dal dispositivo mobile richiede Xcode. Se hai bisogno di assistenza da parte di Google, raccogli i log sia dal dispositivo iOS sia dall'hub e apri un ticket nell'Issue Tracker con le informazioni pertinenti e i log associati.

Raccogli i log di iOS

Il dispositivo mobile deve essere connesso alla macchina locale per tutti i passaggi che coinvolgono Xcode.

I log delle app e dell'SDK vengono visualizzati e possono essere raccolti direttamente nella console Xcode. Quando il tuo dispositivo mobile è connesso alla tua macchina locale ed esegui l'applicazione tramite Xcode, la console acquisisce e trasmette automaticamente i log di output standard (stdout) ed errore standard (stderr) sia dal livello di applicazione sia dall'SDK Home integrato. In questo modo, puoi monitorare in modo semplice i processi di inizializzazione in tempo reale, le interazioni con l'API e gli eventi dell'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 un ulteriore debug.

  1. In Xcode, vai a Debug nella barra dei menu in alto e fai clic su Attach to Process by PID or Name (Collega al processo per PID o nome).

    Debug dell'app di esempio

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

    Estensione per app di esempio

  3. Se fai clic in alto a destra, vedrai In attesa di collegamento a MatterAddDeviceExtension su iPhone.

    Stato di attesa dell'app di esempio

  4. Fai clic sulla scheda e seleziona MatterAddExtension.

    App di esempio che aggiunge l'estensione Matter

  5. 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 dei partner.

Prerequisito: il tracciamento richiede l'utilizzo di un account condiviso e coordinato da Google (ad es. un account registrato su GReg o un account demo).

Scopo principale: eseguire il debug di difetti funzionali e 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 di collegamento dell'account.

Log del dispositivo Fuchsia Hub

Con questo metodo puoi raccogliere i log dai seguenti hub Fuchsia: * Google Nest Hub (2ª gen.) * Google Nest Hub Max

Per attivare un hub per il recupero dei log locali:

  1. 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.
  2. Una volta inserito nella lista consentita, devi attivare la funzionalità seguendo questi passaggi:
    • Dall'hub:
      1. Scorri verso il basso dalla parte superiore dello schermo.
      2. Tocca l'icona Impostazioni .
      3. Trova la versione Fuchsia: su Nest Hub (2ª gen.), vai a Informazioni del dispositivo > Informazioni tecniche > Versione Fuchsia
      4. Tocca "Versione Fuchsia" 7 volte. In questo modo verranno attivate le opzioni sviluppatore
      5. Torna al menu principale
      6. Tocca "Opzioni sviluppatore".
      7. Tocca "Logging partner".
    • La funzionalità verrà attivata per 24 ore. Dopodiché, riattiva la funzionalità di logging dal passaggio 5 in poi.
  3. Recupera l'indirizzo IP del tuo hub:
    • Dall'hub, se ha uno schermo:
      1. Scorri verso il basso dalla parte superiore dello schermo.
      2. Tocca l'icona Impostazioni .
      3. Trova l'indirizzo IP del dispositivo: su Nest Hub (2ª gen.), vai a Informazioni del dispositivo > Informazioni tecniche > Indirizzo IP
    • Dall'app Google Home (GHA) sullo smartphone:
    • Tocca il dispositivo per visualizzare la relativa pagina dei dettagli.
    • Tocca l'icona Impostazioni per aprire la pagina delle impostazioni.
    • Trova l'indirizzo IP del dispositivo: vai a Informazioni sul dispositivo > Informazioni tecniche > Indirizzo IP
  4. Per recuperare i log dall'hub, devi effettuare 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 solo per un minuto, ma i dati recuperati dal buffer di solito contengono 20-30 minuti di eventi passati.
      • Idealmente, i log vengono estratti utilizzando questo metodo subito dopo aver completato una procedura di test per garantire che il buffer contenga contenuti pertinenti al test (analogamente alle segnalazioni di bug di Android).

Automazioni

Rilevamento dei bordi

Le automazioni nell'ecosistema Google Home sono dotate di edge detection, una logica che verifica che un comando iniziale venga attivato solo quando si verifica un effettivo cambiamento di 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 dei bordi 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 funziona come previsto:

  1. Controlla ogni dispositivo per assicurarti che funzioni correttamente indipendentemente dall'automazione.

  2. Esamina il grafico dell'automazione e confrontalo con il DSL dell'automazione per individuare eventuali ipotesi errate da parte tua.

  3. Osserva lo stato del dispositivo nell'app Google Home durante l'esecuzione dell'automazione.

  4. Assicurati che tutti i dispositivi a cui fa riferimento l'automazione siano presenti nella struttura in cui ti aspetti che siano. L'eliminazione di un dispositivo da cui dipende un'automazione può avere conseguenze indesiderate. Consulta Impatto dell'eliminazione dei dispositivi 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 l'app contenga tutte le importazioni necessarie, inclusa ogni classe corrispondente ai diversi tipi di nodi e alle caratteristiche 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 utilizzarlo per testare le API Home.

La registrazione a Google Home Developer Console non è obbligatoria per testare e utilizzare le API Home. Tuttavia, per pubblicare l'app, devi comunque avere 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 utilizzi un client OAuth esistente. Per informazioni sull'aggiunta di utenti di test, consulta Genera l'ID client OAuth. Indipendentemente dalla verifica OAuth, esiste un limite imposto dalle API Home di 100 utenti che possono concedere autorizzazioni alla tua applicazione. Questa limitazione viene revocata al completamento della registrazione di Developer Console.

  • Developer Console registration deve essere inviata per l'approvazione quando è tutto pronto per limitare le autorizzazioni dei tipi di dispositivi tramite OAuth in preparazione all'aggiornamento dell'app con le API Home.

Per le app Google Cloud ancora in attesa della verifica OAuth, gli utenti non possono completare il flusso OAuth finché la verifica non è stata completata. I tentativi di concedere le autorizzazioni non andranno a buon fine con il seguente errore:

Access blocked: <Project Name> has not completed the Google verification process.