Aggiungi altri tratti e gestori

Puoi aggiungere tutte le caratteristiche che vuoi al modello del tuo dispositivo. Questi tratti non sono legati a un solo tipo di dispositivo, ma puoi usarli come preferisci.

Questa è la procedura per aggiungere un trait e gestire il comando in arrivo:

  1. Determina quale tratto vuoi aggiungere.

  2. Apri il file pushtotalk.py.

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
    nano pushtotalk.py
  3. Aggiungi il seguente blocco di codice sotto quello esistente che gestisce il comando action.devices.commands.OnOff (non eliminare il blocco di codice esistente).

    @device_handler.command('action.devices.commands.command-name')
    def my-function(parameter-name):
        if conditional:
            logging.info('Something happened.')
        else:
            logging.info('Something else happened.')
    
  4. Trova le informazioni necessarie per ogni variabile nel blocco di codice riportato sopra.

    command-nameVai alla pagina del trait specifica del passaggio 1 (ad esempio ColorTemperature). Utilizza un comando dalla tabella COMANDI del dispositivo.
    my-functionAssegna alla funzione gestore il nome che preferisci.
    parameter-nameControlla di nuovo la tabella COMANDI del dispositivo nella pagina dei trait. A ogni comando sono associati uno o più parametri. Questi dati sono elencati alla voce "params" nel JSON della richiesta EXECUTE. Utilizza il nome esatto del parametro. Tieni presente che alcuni di questi parametri sono oggetti che contengono altri parametri: è sufficiente utilizzare l'oggetto di primo livello.
    conditionalNon è strettamente necessario utilizzare un condizionale nel codice del gestore, ma potrebbe essere utile per differenziare il modo in cui esegui il comando sul dispositivo.

    Ecco alcuni esempi di trait Luminosità e ColorTemperature:

    @device_handler.command('action.devices.commands.BrightnessAbsolute')
    def brightnessCheck(brightness):
        if brightness > 50:
            logging.info('brightness > 50')
        else:
            logging.info('brightness <= 50')
    
    @device_handler.command('action.devices.commands.ColorAbsolute')
    def color(color):
        if color.get('name') == "blue":
            logging.info('color is blue')
        else:
            logging.info('color is not blue')
    
  5. Aggiorna il modello del dispositivo con il trait aggiunto nel passaggio 1.

  6. Esegui il codice sorgente modificato.

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
    python pushtotalk.py
  7. Premi il tasto Invio e prova a eseguire una query.

    Ad esempio:

    Imposta la luminosità al 65%.

    Scegli il blu.

Passaggio successivo

Registrare le azioni personalizzate dei dispositivi