Weitere Eigenschaften und Handler hinzufügen

Du kannst deinem Gerätemodell beliebig viele Traits hinzufügen. Diese Merkmale sind nicht an nur einen Gerätetyp gebunden. Sie können sie beliebig verwenden.

So fügen Sie beliebige Merkmale hinzu und verarbeiten den eingehenden Befehl:

  1. Bestimmen Sie, welche Trait Sie hinzufügen möchten.

  2. Öffnen Sie die Datei pushtotalk.py.

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
    nano pushtotalk.py
  3. Fügen Sie den folgenden Codeblock unter dem vorhandenen Codeblock ein, der den Befehl action.devices.commands.OnOff verarbeitet. Löschen Sie den vorhandenen Codeblock nicht.

    @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. Suchen Sie die Informationen, die Sie für jede Variable im obigen Codeblock benötigen.

    command-nameRufe die Seite mit den spezifischen Merkmalen aus Schritt 1 auf (z. B. ColorTemperature). Verwenden Sie einen Befehl aus der Tabelle Gerätebefehle.
    my-functionGeben Sie der Handler-Funktion einen beliebigen Namen.
    parameter-nameSehen Sie sich die Tabelle Gerätebefehle auf der Trait-Seite noch einmal an. Jedem Befehl sind ein oder mehrere Parameter zugeordnet. Diese sind in der JSON-Datei der EXECUTE-Anfrage unter "params" aufgeführt. Verwenden Sie den genauen Parameternamen. Beachten Sie, dass einige dieser Parameter Objekte sind, die andere Parameter enthalten. Verwenden Sie einfach das Objekt der obersten Ebene.
    conditionalSie müssen in Ihrem Handler-Code nicht unbedingt eine Bedingung verwenden, aber es kann hilfreich sein, zu unterscheiden, wie Sie den Befehl auf dem Gerät ausführen.

    Hier sind einige Beispiele für die Eigenschaften Helligkeit und 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. Aktualisiere das Gerätemodell mit der in Schritt 1 hinzugefügten Trait.

  6. Führen Sie den geänderten Quellcode aus.

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
    python pushtotalk.py
  7. Drücken Sie die Eingabetaste und geben Sie eine Suchanfrage ein.

    Beispiel:

    Stell die Helligkeit auf 65 % ein.

    Blau

Nächster Schritt

Benutzerdefinierte Geräteaktionen registrieren