Testare l'app ed eseguirne il debug

Ti consigliamo di creare l'app di evasione degli ordini locale seguendo i passaggi descritti in precedenza, quindi di testare l'integrazione della casa intelligente nel tuo ambiente di hosting seguendo i passaggi che seguono:

  1. Nel tuo ambiente di hosting, pubblica la pagina HTML che esegue la tua app di evasione degli ordini locale. Lo snippet seguente mostra un esempio di file HTML statico che esegue la tua app di evasione degli ordini 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. Esegui il debug da Chrome. Utilizza i punti di interruzione e i log per risolvere i problemi di integrazione.

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

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

Testare il controllo del dispositivo

Nella console di azione, devi specificare l'URL della tua app web, che fornisce il codice HTML caricato sul dispositivo Google Home o Google Nest durante l'evasione locale.

Per testare il controllo del dispositivo con l'evasione locale:

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 Home locale (facoltativo) > Inserisci l'URL di test per Chrome, specifica l'URL del server di sviluppo che serve il codice HTML che esegue l'app di evasione degli ordini locale.
  4. Fai clic su Salva. Potrebbero essere necessari fino a 30 minuti prima che Google propaghi le modifiche alla console.
  5. Riavvia il dispositivo di test Google Home o Google Nest.
  6. Dai un comando al tuo smart device. Ad esempio, se il tuo dispositivo implementa la caratteristica 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 della casa locale (facoltativo) > Inserisci l'URL di test per Node, specifica l'URL del server di sviluppo che serve il codice JavaScript che esegue l'app di completamento locale.
  4. Fai clic su Salva. Potrebbero essere necessari fino a 30 minuti prima che Google propaghi le modifiche alla console.
  5. Riavvia il dispositivo di test Google Home o Google Nest.
  6. Dai un comando al tuo smart device. Ad esempio, se il tuo dispositivo implementa la caratteristica OnOff, puoi dire "Hey Google, accendi le luci".

Per ulteriori dettagli sul runtime utilizzato dal tuo dispositivo, consulta la sezione Dispositivi supportati.

.

Eseguire il debug da Chrome

Puoi eseguire il debug dell'app di evasione degli ordini locale utilizzando Chrome DevTools. Prima di poter eseguire il debug, assicurati che l'ambiente sia configurato correttamente:

  • Hai impostato l'URL di sviluppo nella console su un URL raggiungibile dal dispositivo Google Home o Google Nest (nella rete locale o tramite internet),
  • Il computer è connesso alla stessa rete di area locale del dispositivo Google Home o Google Nest che stai testando.
  • La tua rete non blocca i pacchetti tra i dispositivi.
  • Hai eseguito l'accesso con lo stesso Account Google in Console per le azioni e sul dispositivo Google Home o Google Nest.
  • Hai aggiornato la risposta SYNC nel cloud fulfillment. Deve restituire almeno un valore valido nel campo otherDeviceIds.
  • Hai inserito le informazioni corrette sulla configurazione dell'analisi nella console di Actions.

Per collegare l'app di evasione degli ordini locale al debugger di DevTools di Chrome, segui questi passaggi:

Chrome

  1. Nella macchina di sviluppo locale, installa e avvia il browser Google Chrome.
  2. Nel campo dell'indirizzo del browser Chrome, avvia lo strumento di ispezione di Chrome inserendo: chrome://inspect#devices. Nella pagina dovresti vedere un elenco di dispositivi e il file HTML dovrebbe essere elencato sotto il nome del dispositivo Google Home o Google Nest di prova.
  3. Fai clic sul link di ispezione blu sotto il codice HTML per avviare Chrome DevTools. Passa alla scheda Console. La piattaforma Local Home genera 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 la tua app ed è in grado di connettersi. In caso contrario, riavvia il dispositivo Google Home o Google Nest.
  4. Figura 1: app di evasione degli ordini locale in chrome://inspect.

Node.js

  1. Nella macchina di sviluppo locale, installa e avvia il browser Google Chrome.
  2. Determina l'indirizzo IP locale del tuo dispositivo di test.
  3. Nel campo dell'indirizzo del browser Chrome, avvia lo strumento di ispezione di Chrome inserendo: chrome://inspect#devices.
  4. Seleziona Configura… per aprire le Impostazioni di rilevamento dei target.
  5. Figura 2: impostazioni di rilevamento dei target in chrome://inspect.
  6. Inserisci DEVICE_IP_ADDRESS:9222 nell'elenco e fai clic su Fine.
  7. Fai clic sul link di ispezione blu sotto lo script per avviare Chrome DevTools. Passa alla scheda Console. La piattaforma Local Home genera 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 la tua app ed è in grado di connettersi. In caso contrario, riavvia il dispositivo Google Home o Google Nest.

Per maggiori dettagli sul runtime utilizzato dal tuo dispositivo, vedi Dispositivi supportati.

Suggerimenti per il debug

Ecco alcuni aspetti aggiuntivi da tenere presenti durante il debug:

  • Non collegare più dispositivi Google Home o Google Nest al tuo account di test sulla stessa rete locale. Non potrai controllare il dispositivo Google Home o Google Nest scelto come target con i comandi di adempimento locale.
  • Aggiorna la pagina in Strumenti per sviluppatori di Chrome per ricaricare il contenitore dell'app di evasione degli ordini locale con il codice più recente dall'URL di sviluppo. La piattaforma Local Home non viene reimpostata, il che potrebbe essere necessario per riattivare gli intent della piattaforma (ad esempio IDENTIFY) nell'app di evasione degli ordini locale. Per reimpostare la piattaforma Local Home, riavvia il dispositivo Google Home o Google Nest.
  • Verifica che l'app JavaScript venga caricata senza errori. Per farlo, controlla la sezione della console della pagina DevTools. In caso di problemi, verrà visualizzato un messaggio simile al seguente: Uncaught TypeError: Cannot read property ‘open’ of null.
  • Il valore verificationId della risposta IDENTIFY deve corrispondere a uno dei valori otherDeviceIds della risposta SYNC.
  • Per l'handler EXECUTE, assicurati che i comandi HTTP, TCP o UDP possano essere ricevuti dal dispositivo e funzionino come previsto.
  • Assicurati di restituire un Promise dagli handler.
  • Evita di mantenere lo stato globale in memoria. Consulta Ciclo di vita dell'applicazione.
  • Gli errori generati dall'app di evasione degli ordini locale verranno visualizzati nei log degli errori del progetto.

Preparazione e 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: carica l'app JavaScript.
  3. Nella finestra di dialogo Carica file, carica i file del bundle che hai generato in precedenza. Assicurati di caricare entrambe le versioni dei file del bundle (Node, web) in modo che l'azione sia configurata per funzionare correttamente in tutti gli ambienti di runtime supportati dal completamento locale.
    1. Carica il codice JavaScript che ha come target Node.js: carica il file bundle.js dalla directory dist/node.
    2. Carica il codice JavaScript che ha come target Chrome (browser): carica il bundle.js file 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. Quando il funzionamento dell'azione ti soddisfa, inviala a Google per il deployment in produzione seguendo le istruzioni riportate in Lanciare l'azione per la smart home. Questo include il completamento dei passaggi di autotest e richiesta di certificazione.