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

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

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

  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, сделай его синим.

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

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