ویژگی ها و کنترل کننده های بیشتری را اضافه کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
شما می توانید هر تعداد ویژگی که می خواهید به مدل دستگاه خود اضافه کنید. این ویژگیها تنها به یک نوع دستگاه مرتبط نیستند، میتوانید هر طور که میخواهید از آنها استفاده کنید.
این فرآیند برای افزودن هر صفت و مدیریت دستور ورودی است:
مشخص کنید که کدام ویژگی را می خواهید اضافه کنید.
فایل pushtotalk.py
باز کنید.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
بلوک کد زیر را به بلوک موجود اضافه کنید که فرمان 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.')
اطلاعات مورد نیاز برای هر متغیر را در بلوک کد بالا پیدا کنید.
command-name | از مرحله 1 به صفحه ویژگی خاص بروید (به عنوان مثال، ColorTemperature ). از یک دستور از جدول Device COMMANDS استفاده کنید. |
my-function | نام عملکرد کنترلر خود را هر چه می خواهید بگذارید. |
parameter-name | دوباره به جدول Device COMMANDS در صفحه ویژگی نگاه کنید. هر دستور دارای یک یا چند پارامتر مرتبط با آن است. اینها در زیر "params" در JSON درخواست EXECUTE فهرست شده اند. از نام پارامتر دقیق استفاده کنید. توجه داشته باشید که برخی از این پارامترها اشیایی هستند که حاوی پارامترهای دیگری هستند - فقط از شی سطح بالا استفاده کنید. |
conditional | شما به شدت نیازی به استفاده از یک شرطی در کد کنترل کننده خود ندارید، اما ممکن است به تمایز نحوه اجرای دستور در دستگاه کمک کند. |
در اینجا چند مثال برای صفات روشنایی و دمای رنگ آورده شده است:
@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')
مدل دستگاه را با ویژگیای که در مرحله ۱ اضافه کردهاید بهروزرسانی کنید .
کد منبع اصلاح شده را اجرا کنید.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
python pushtotalk.py
کلید Enter را فشار دهید و یک پرس و جو را امتحان کنید.
به عنوان مثال:
روشنایی را روی 65٪ تنظیم کنید.
آن را آبی کنید.
مرحله بعدی
ثبت اقدامات دستگاه سفارشی
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-28 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-28 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eYou can freely add numerous traits to your device model, independent of device type.\u003c/p\u003e\n"],["\u003cp\u003eThe process to add a trait involves updating the \u003ccode\u003epushtotalk.py\u003c/code\u003e file with a new code block to handle the incoming command and then updating the device model.\u003c/p\u003e\n"],["\u003cp\u003eEach added trait requires specific command details that can be found on the relevant trait documentation page.\u003c/p\u003e\n"],["\u003cp\u003eOnce implemented, the code can be tested by running \u003ccode\u003epushtotalk.py\u003c/code\u003e and using voice commands corresponding to the added trait.\u003c/p\u003e\n"]]],[],null,["# Add More Traits and Handlers\n\nYou can add as many traits to your device model as you wish. These traits are\nnot tied to just one device type, you can use them as you choose.\n\nThis is the process to add any trait and handle the incoming command:\n\n1. Determine which [trait](/assistant/sdk/reference/traits) you want\n to add.\n\n2. Open the `pushtotalk.py` file.\n\n ```\n cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc\n ``` \n\n ```\n nano pushtotalk.py\n ```\n3. Add the following code block under the existing one that\n handles the `action.devices.commands.OnOff` command (don't delete the existing\n code block).\n\n ```\n @device_handler.command('action.devices.commands.command-name')\n def my-function(parameter-name):\n if conditional:\n logging.info('Something happened.')\n else:\n logging.info('Something else happened.')\n ```\n4. Find the information you need for each variable in the above code block.\n\n |------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n | `command-name` | Go to the specific trait page from Step 1 (for example, [ColorTemperature](/assistant/sdk/reference/traits/colortemperature)). Use a command from the **Device COMMANDS** table. |\n | `my-function` | Name your handler function whatever you want. |\n | `parameter-name` | Look again at the **Device COMMANDS** table on the trait page. Each command has one or more parameters associated with it. These are listed under `\"params\"` in the EXECUTE request JSON. Use the exact parameter name. Note that some of these parameters are objects that contain other parameters - just use the top-level object. |\n | `conditional` | You don't strictly need to use a conditional in your handler code, but it may help to differentiate how you execute the command on the device. |\n\n Here are some examples for traits [Brightness](/assistant/sdk/reference/traits/brightness)\n and [ColorTemperature](/assistant/sdk/reference/traits/colortemperature): \n\n ```python\n @device_handler.command('action.devices.commands.BrightnessAbsolute')\n def brightnessCheck(brightness):\n if brightness \u003e 50:\n logging.info('brightness \u003e 50')\n else:\n logging.info('brightness \u003c= 50')\n\n @device_handler.command('action.devices.commands.ColorAbsolute')\n def color(color):\n if color.get('name') == \"blue\":\n logging.info('color is blue')\n else:\n logging.info('color is not blue')\n ```\n5. [Update the device model](/assistant/sdk/guides/service/python/extend/register-device-traits)\n with the trait you added in Step 1.\n\n6. Run the modified source code.\n\n ```\n cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc\n ``` \n\n ```\n python pushtotalk.py\n ```\n7. Press the Enter key and try a query.\n\n For example:\n\n *Set brightness to 65%.*\n\n *Make it blue.*\n\nNext step\n---------\n\n[Register Custom Device Actions](/assistant/sdk/guides/service/python/extend/custom-actions)"]]