Testare l'app ed eseguirne il debug

Ti consigliamo di creare la tua app di evasione degli ordini locale seguendo i passaggi descritti in precedenza, quindi di testare l'integrazione della smart home nel tuo ambiente di hosting seguendo questi passaggi:

  1. Nel tuo ambiente di hosting, pubblica la pagina HTML che esegue la tua app di fulfillment locale. Lo snippet seguente mostra un esempio di file HTML statico che esegue la tua app di fulfillment locale.

    <html>
      <head>
        <!-- Local Home SDK -->
        <script src="//www.gstatic.com/eureka/smarthome/smarthome_sdk.js"></script>
        <!-- Local app under development -->
        <script src="local_execution.js"></script>
      </head>
    
    </html>
    
    
  2. Testa il controllo dei dispositivi.

  3. Debug da Chrome. Usa i punti di interruzione e i log per risolvere i problemi dell'integrazione.

  4. Modifica e compila il codice TypeScript, quindi ripeti questi passaggi.

Ripetendo questa procedura di creazione e test, puoi vedere le modifiche in azione rapidamente e più facilmente per individuare ed eseguire il debug dei problemi relativi al codice.

Testa il controllo dei dispositivi

Nella Console azioni, devi specificare l'URL della tua app web, che pubblica il codice HTML caricato sul dispositivo Google Home o Google Nest durante l'evasione degli ordini locali.

Per testare il controllo dei dispositivi con fulfillment locale, segui questi passaggi:

Chrome

  1. Apri il progetto per la smart home nella console Actions.
  2. Nel menu di navigazione a sinistra, fai clic su Azioni.
  3. In Configura l'SDK di casa locale (facoltativo) > Inserisci l'URL di test per Chrome, specifica l'URL del server di sviluppo che pubblica l'HTML che esegue l'app di distribuzione locale.
  4. Fai clic su Salva. Google potrebbe impiegare fino a 30 minuti per propagare le modifiche alla console.
  5. Riavvia il dispositivo Google Home o Google Nest di prova.
  6. Dai un comando al tuo smart device. Ad esempio, se il tuo dispositivo implementa il trait OnOff, puoi dire "Hey Google, accendi le luci".

Node.js

  1. Apri il progetto per la smart home nella console Actions.
  2. Nel menu di navigazione a sinistra, fai clic su Azioni.
  3. In Configura l'SDK di casa locale (facoltativo) > Inserisci l'URL di test per il nodo, specifica l'URL del server di sviluppo che pubblica il codice JavaScript che esegue l'app di distribuzione locale.
  4. Fai clic su Salva. Google potrebbe impiegare fino a 30 minuti per propagare le modifiche alla console.
  5. Riavvia il dispositivo Google Home o Google Nest di prova.
  6. Dai un comando al tuo smart device. Ad esempio, se il tuo dispositivo implementa il trait OnOff, puoi dire "Hey Google, accendi le luci".

Per ulteriori dettagli su quale runtime viene utilizzato dal tuo dispositivo, vedi Dispositivi supportati.

Debug da Chrome

Puoi eseguire il debug dell'app di distribuzione locale utilizzando Chrome DevTools. Prima di eseguire il debug, assicurati che il tuo ambiente sia configurato correttamente:

  • Aver impostato l'URL di sviluppo nella console su un URL raggiungibile dal dispositivo Google Home o Google Nest (sulla local area network o tramite internet).
  • Il dispositivo sia collegato alla stessa LAN del dispositivo Google Home o Google Nest che stai testando.
  • La tua rete non blocca i pacchetti tra i dispositivi.
  • Aver eseguito l'accesso con lo stesso Account Google nella console Actions e sul dispositivo Google Home o Google Nest.
  • Hai aggiornato la risposta SYNC in Cloud fulfillment. Deve restituire almeno un valore valido nel campo otherDeviceIds.
  • Hai inserito le informazioni corrette sulla configurazione della scansione nella console di Actions.

Per connettere l'app di distribuzione locale al debugger di Chrome DevTools, segui questi passaggi:

Chrome

  1. Installa e avvia il browser Google Chrome sulla tua macchina di sviluppo locale.
  2. Nel campo dell'indirizzo del browser Chrome, avvia Chrome Inspector inserendo: chrome://inspect#devices. Dovresti vedere un elenco di dispositivi nella pagina e il tuo file HTML deve essere elencato sotto il nome del tuo dispositivo Google Home o Google Nest di prova.
  3. Fai clic sul link di controllo blu sotto il codice HTML per avviare Chrome DevTools. Passa alla scheda Console. La piattaforma Local Home riporta la versione dell'app e la versione dell'SDK Local Home nel log della console. Se vedi il log, significa che Google ha caricato correttamente l'app e può connettersi a quest'ultima. In caso contrario, riavvia il dispositivo Google Home o Google Nest.
  4. Figura 1: app di distribuzione locale in chrome://inspect.

Node.js

  1. Installa e avvia il browser Google Chrome sulla tua macchina di sviluppo locale.
  2. Determina l'indirizzo IP locale del dispositivo di test.
  3. Nel campo dell'indirizzo del browser Chrome, avvia Chrome Inspector inserendo: chrome://inspect#devices.
  4. Seleziona Configura... per aprire le Impostazioni di individuazione del target.
  5. Figura 2: impostazioni di rilevamento della destinazione in chrome://inspect.
  6. Inserisci DEVICE_IP_ADDRESS:9222 nell'elenco e fai clic su Fine.
  7. Fai clic sul link di controllo blu sotto lo script per avviare Chrome DevTools. Passa alla scheda Console. La piattaforma Local Home riporta la versione dell'app e la versione dell'SDK Local Home nel log della console. Se vedi il log, significa che Google ha caricato correttamente l'app e può connettersi a quest'ultima. In caso contrario, riavvia il dispositivo Google Home o Google Nest.

Per ulteriori dettagli su quale runtime viene utilizzato dal tuo dispositivo, vedi Dispositivi supportati.

Suggerimenti di debug

Alcuni aspetti aggiuntivi da tenere presenti durante il debug includono:

  • Non collegare più dispositivi Google Home o Google Nest all'account di test sulla stessa rete locale. Non potrai controllare quale dispositivo Google Home o Google Nest viene scelto come target con i comandi di distribuzione locale.
  • Aggiorna la pagina in Chrome DevTools per ricaricare il contenitore dell'app di distribuzione locale con il codice più recente dell'URL di sviluppo. La piattaforma Local Home non viene reimpostata, che potrebbe essere necessaria per riattivare gli intent della piattaforma (ad esempio IDENTIFY) nell'app di distribuzione locale. Per reimpostare la piattaforma Local Home, riavvia il dispositivo Google Home o Google Nest.
  • Verifica che l'app JavaScript venga caricata senza errori. Controlla la sezione relativa alla console della pagina DevTools. Se si verifica un problema, viene visualizzato un messaggio come questo: Uncaught TypeError: Cannot read property ‘open’ of null.
  • Il verificationId della risposta IDENTIFY deve corrispondere a uno dei otherDeviceIds della risposta SYNC.
  • Per il gestore EXECUTE, assicurati che i comandi HTTP, TCP o UDP possano essere ricevuti dal tuo dispositivo e funzionare come previsto.
  • Assicurati di restituire un Promise dai gestori.
  • Evita di mantenere lo stato globale in memoria. Vedi Ciclo di vita delle applicazioni.
  • Gli errori generati dall'app di fulfillment locale verranno visualizzati nei log degli errori del progetto.

Prepararsi al lancio in produzione

Quando è tutto pronto per lanciare l'Azione per la smart home, segui questi passaggi:

  1. Apri un terminale. Nella directory del progetto, esegui il comando npm run build. Questo comando genera i seguenti bundle JavaScript per la tua app nella directory dist:
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. Nella console, carica l'app JavaScript facendo clic su Sviluppa > Azioni. Nella sezione Configura l'SDK Local Home, fai clic su Carica file JavaScript.
    Figura 3: caricamento dell'app JavaScript.
  3. Nella finestra di dialogo Carica file, carica i file del pacchetto che hai generato in precedenza. Assicurati di caricare entrambe le versioni dei file del bundle (nodo, web) in modo che l'azione sia configurata in modo da funzionare correttamente in tutti gli ambienti di runtime supportati dal fulfillment locale.
    1. Carica il file Node.js con targeting JavaScript: carica il file bundle.js dalla directory dist/node.
    2. Carica il tuo codice JavaScript che abbia come target Chrome (browser): carica il file bundle.js dalla directory dist/web.
  4. Testa l'Azione su un dispositivo con l'assistente integrato per verificare che funzioni come previsto in un ambiente di produzione. Per scoprire di più, consulta Testare e condividere l'azione per la smart home.
  5. Se il funzionamento dell'Azione ti soddisfa, inviala a Google per il deployment in produzione seguendo le istruzioni riportate in Avviare l'Azione per la smart home. Ciò include il completamento dei passaggi di autodiagnosi e richiesta di certificazione.