Добавьте больше трейтов и обработчиков

Вы можете добавить в модель вашего устройства столько характеристик, сколько пожелаете. Эти особенности не привязаны к одному типу устройства, вы можете использовать их по своему усмотрению.

Это процесс добавления любого признака и обработки входящей команды:

  1. Определите, какую черту вы хотите добавить.

  2. Откройте файл hotword.py .

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
    nano hotword.py
  3. Добавьте следующий блок кода под существующий, который обрабатывает команду action.devices.commands.OnOff (не удаляйте существующий блок кода).

    if command == "action.devices.commands.command-name":
        if params['parameter-name']:
            if conditional:
                print('Something happened.')
            else:
                print('Something else happened.')
    
  4. Найдите необходимую информацию для каждой переменной в приведенном выше блоке кода.

    command-name Перейдите на страницу конкретного свойства из шага 1 (например, ColorTemperature ). Используйте команду из таблицы КОМАНДЫ УСТРОЙСТВА .
    parameter-name Посмотрите еще раз на таблицу КОМАНДЫ УСТРОЙСТВА на странице характеристик. С каждой командой связан один или несколько параметров. Они перечислены в разделе "params" в JSON-запросе EXECUTE. Используйте точное имя параметра. Обратите внимание, что некоторые из этих параметров являются объектами, содержащими другие параметры — просто используйте объект верхнего уровня.
    conditional Вам не обязательно использовать условие в коде обработчика, но это может помочь дифференцировать способ выполнения команды на устройстве.

    Вот несколько примеров черт Brightness и ColorTemperature :

    if command == "action.devices.commands.BrightnessAbsolute":
        if params['brightness']:
            if params['brightness'] > 50:
                print('brightness > 50')
            else:
                print('brightness <= 50')
    
    if command == "action.devices.commands.ColorAbsolute":
        if params['color']:
            if params['color'].get('name') == "blue":
                print('The color is blue.')
            else:
                print('The color is not blue.')
    
  5. Обновите модель устройства , указав признак, добавленный на шаге 1.

  6. Запустите измененный исходный код.

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
    python hotword.py --device-model-id my-model
  7. Попробуйте запрос.

    Окей, Google, установи яркость на 65%.

    Окей, Google, сделай его синим.

Следующий шаг

Регистрация пользовательских действий с устройством