新增更多托盤和處理常式

您可以視需求在裝置型號中新增多個特徵。這些特徵並非只與一種裝置類型相關聯,可以視需要使用。

這個流程可新增特徵及處理傳入的指令:

  1. 決定要新增的特徵

  2. 開啟 pushtotalk.py 檔案。

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
    nano pushtotalk.py
  3. 在處理 action.devices.commands.OnOff 指令的現有程式碼區塊底下新增下列程式碼區塊 (請勿刪除現有的程式碼區塊)。

    @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. 在上方的程式碼區塊中,找出每個變數需要的資訊。

    command-name前往步驟 1 的特定特徵頁面 (例如「ColorTemperature」ColorTemperature)。使用 Device COMMANDS 表格中的指令。
    my-function視需要為處理常式函式命名。
    parameter-name再次查看特徵頁面的「裝置指令」表格。每個指令都有一或多個相關聯的參數。這些程式碼列在 EXECUTE 要求 JSON 的 "params" 下。請使用確切的參數名稱。請注意,部分參數是包含其他參數的物件,只要使用頂層物件即可。
    conditional您不一定要在處理常式程式碼中使用條件式,但這可能會有助於區分您在裝置上執行指令的方式。

    以下是一些亮度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. 使用您在步驟 1 新增的特徵更新裝置型號

  6. 執行經過修改的原始碼。

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
    python pushtotalk.py
  7. 按下 Enter 鍵並嘗試查詢。

    例如:

    將亮度設為 65%。

    設為藍色。

後續步驟

註冊自訂裝置動作