طرح صفت توزیع خانه هوشمند
action.devices.traits.Dispense
- این ویژگی متعلق به دستگاه هایی است که از توزیع مقدار مشخصی از یک یا چند مورد فیزیکی پشتیبانی می کنند.
این ویژگی همچنین از توزیع یک پیش تنظیم پشتیبانی می کند، به عنوان مثال به عنوان یک "کاسه غذای گربه" برای تغذیه حیوانات خانگی یا یک "لیوان" برای یک شیر آب.
ویژگی های دستگاه
دستگاه های دارای این ویژگی ممکن است ویژگی های زیر را به عنوان بخشی از عملیات SYNC
گزارش کنند. برای کسب اطلاعات بیشتر در مورد مدیریت SYNC
، به تحقق هدف مراجعه کنید.
ویژگی های | تایپ کنید | شرح |
---|---|---|
supportedDispenseItems | آرایه | حاوی اطلاعات مربوط به تمام مواردی است که دستگاه می تواند توزیع کند. |
[ item, ... ] | هدف - شی | کالای قابل مصرف |
item_name | رشته | ضروری. نام داخلی برای کالای توزیع شده. این می تواند کاربر پسند نباشد و در همه زبان ها به اشتراک گذاشته شود. |
item_name_synonyms | آرایه | ضروری. نامهای مترادف برای زبانهای ارائهشده در هر زبان پشتیبانیشده. |
[ item, ... ] | هدف - شی | نامهای مترادف برای کالای توزیعشده در یک زبان معین. |
synonyms | آرایه | ضروری. نام های مترادف برای کالای توزیع شده. در صورت وجود، مترادف ها باید شامل هر دو شکل مفرد و جمع باشند. اولین رشته در این لیست باید به صورت جمع مورد در آن زبان باشد. |
[ item, ... ] | رشته | نام مترادف |
lang | رشته | ضروری. کد زبان (ISO 639-1). زبان های پشتیبانی شده را ببینید. |
supported_units | آرایه | ضروری. مجموعه واحدهایی که دستگاه برای آن مورد پشتیبانی می کند. |
[ item, ... ] | رشته | واحدهای پشتیبانی شده مقادیر پشتیبانی شده:
|
default_portion | هدف - شی | ضروری. مقدار معمولی از کالایی که ممکن است توزیع شود. |
amount | عدد صحیح | ضروری. مقدار توزیع شده |
unit | رشته | ضروری. واحد توزیع شده |
supportedDispensePresets | آرایه | تنظیمات از پیش تنظیم شده توسط دستگاه |
[ item, ... ] | هدف - شی | از پیش تعیین شده |
preset_name | رشته | ضروری. نام داخلی برای از پیش تعیین شده. این نام میتواند کاربر پسند نباشد و در همه زبانها به اشتراک گذاشته شود. |
preset_name_synonyms | آرایه | ضروری. نامهای مترادف پیشتنظیم در هر زبان پشتیبانیشده. |
[ item, ... ] | هدف - شی | نام های مترادف برای پیش تنظیم در یک زبان معین. |
synonyms | آرایه | ضروری. نام های مترادف برای از پیش تعیین شده. مترادف ها در صورت وجود باید شامل هر دو شکل مفرد و جمع باشند. |
[ item, ... ] | رشته | نام مترادف |
lang | رشته | ضروری. کد زبان (ISO 639-1). زبان های پشتیبانی شده را ببینید. |
مثال ها
توزیع کننده آب که واحدهای مایعات را با تنظیمات از پیش تنظیم شده پشتیبانی می کند.
{ "supportedDispenseItems": [ { "item_name": "Water", "item_name_synonyms": [ { "lang": "en", "synonyms": [ "Water" ] } ], "supported_units": [ "TEASPOONS", "TABLESPOONS", "FLUID_OUNCES", "CUPS", "PINTS", "QUARTS", "GALLONS", "MILLILITERS", "LITERS", "DECILITERS" ], "default_portion": { "amount": 2, "unit": "CUPS" } } ], "supportedDispensePresets": [ { "preset_name": "cat_bowl", "preset_name_synonyms": [ { "lang": "en", "synonyms": [ "Cat water bowl", "Cat water dish", "Cat water cup" ] } ] }, { "preset_name": "glass_1", "preset_name_synonyms": [ { "lang": "en", "synonyms": [ "Glass of water", "Glass" ] } ] } ] }
دستگاه پخش غذای حیوانات خانگی بدون تنظیمات از پیش تعیین شده.
{ "supportedDispenseItems": [ { "item_name": "Treat", "item_name_synonyms": [ { "lang": "en", "synonyms": [ "Treats", "Dog treats", "Treat", "Dog treat" ] } ], "supported_units": [ "NO_UNITS" ], "default_portion": { "amount": 1, "unit": "NO_UNITS" } } ] }
وضعیت دستگاه
دستگاههای دارای این ویژگی ممکن است وضعیتهای زیر را به عنوان بخشی از عملیات QUERY
گزارش کنند. برای کسب اطلاعات بیشتر در مورد مدیریت QUERY
، به تحقق هدف مراجعه کنید.
ایالت ها | تایپ کنید | شرح |
---|---|---|
dispenseItems | آرایه | وضعیت اقلامی که دستگاه می تواند توزیع کند. |
[ item, ... ] | هدف - شی | وضعیت یک مورد داده شده |
itemName | رشته | نام مورد از ویژگی |
amountRemaining | هدف - شی | مقدار آن مورد در دستگاه باقی مانده است. اگر دستگاه در حال حاضر در حال توزیع است، این مقدار باقیمانده یا مقدار آن را پس از اتمام توزیع گزارش میکند. |
amount | عدد | مقدار باقی مانده |
unit | رشته | واحد برای |
amountLastDispensed | هدف - شی | مقدار آن موردی که دستگاه اخیراً توزیع کرده است. اگر دستگاه در حال حاضر در حال توزیع است، باید میزان توزیع را قبل از مقدار توزیع فعلی گزارش کند. |
amount | عدد | مقدار باقی مانده |
unit | رشته | واحد برای |
isCurrentlyDispensing | بولی | نشان می دهد که آیا دستگاه در حال حاضر این مورد را توزیع می کند یا خیر. |
مثال ها
چند غذای سگ در تلگراف من باقی مانده است؟
{ "dispenseItems": [ { "itemName": "Dog treats", "amountRemaining": { "amount": 83, "unit": "NO_UNITS" }, "amountLastDispensed": { "amount": 2, "unit": "NO_UNITS" }, "isCurrentlyDispensing": false } ] }
چقدر آب در کولر آبی من باقی مانده است؟
{ "dispenseItems": [ { "itemName": "Water", "amountRemaining": { "amount": 6.2, "unit": "GALLONS" }, "amountLastDispensed": { "amount": 1, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
قبلا چقدر غذای گربه می دادم؟
{ "dispenseItems": [ { "itemName": "cat_food", "amountRemaining": { "amount": 16.5, "unit": "CUPS" }, "amountLastDispensed": { "amount": 2.5, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
آیا شیر آب هنوز هم آب می دهد؟
{ "dispenseItems": [ { "itemName": "Water", "isCurrentlyDispensing": true } ] }
amountRemaining
و amountLastDispensed
فقط باید با استفاده از یک واحد اندازه گیری گزارش شود.
چندین آیتم را می توان در آرایه dispenseItems
ارائه کرد. نام هر مورد باید منحصر به فرد باشد و باید با یک مورد در ویژگی supportedDispenseItems
مطابقت داشته باشد.
دستورات دستگاه
دستگاه های دارای این ویژگی ممکن است به دستورات زیر به عنوان بخشی از عملیات EXECUTE
پاسخ دهند. برای کسب اطلاعات بیشتر در مورد مدیریت EXECUTE
intent ها، به اجرای Intent مراجعه کنید.
action.devices.commands.Dispense
اقلام را توزیع کنید.
مولفه های
محموله شامل یکی از موارد زیر است:
بر اساس مقدار توزیع کنید.
مولفه های | تایپ کنید | شرح |
---|---|---|
item | رشته | نام موردی که باید توزیع شود، از ویژگی |
amount | عدد | ضروری. مقدار برای توزیع |
unit | رشته | ضروری. واحد برای |
توزیع توسط از پیش تعیین شده
مولفه های | تایپ کنید | شرح |
---|---|---|
presetName | رشته | ضروری. نام پیشتنظیمی که باید توزیع شود، از ویژگی |
بدون پارامتر توزیع کنید.
مولفه های | تایپ کنید | شرح |
---|---|---|
بدون خواص |
مثال ها
1 لیوان آب به من بده
{ "command": "action.devices.commands.Dispense", "params": { "amount": 1, "unit": "CUPS", "item": "Water" } }
کاسه آب گربه را پر کنید.
{ "command": "action.devices.commands.Dispense", "params": { "presetName": "cat_bowl" } }
آب پخش کنید.
{ "command": "action.devices.commands.Dispense", "params": {} }
خطاهای دستگاه
لیست کامل خطاها و استثناها را ببینید.-
dispenseAmountRemainingExceeded
: کاربر سعی کرد یک مورد یا مقداری را از دستگاهی که مقدار کافی باقیمانده ندارد توزیع کند. -
dispenseAmountAboveLimit
: کاربر سعی کرد مبلغی را که فراتر از محدودیت های درخواستی در یک پرس و جو است، توزیع کند. این برای جلوگیری از توزیع تصادفی مقدار بیش از حد (مثلاً 500000 فنجان آب) است. -
dispenseAmountBelowLimit
: کاربر سعی کرد یک مورد یا مقداری را از دستگاه توزیع کند که کمتر از حداقل مقداری است که می تواند توزیع کند. -
dispenseFractionalAmountNotSupported
: کاربر سعی کرد مقدار کسری از یک مورد را که دستگاه نمی تواند آن را تقسیم کند توزیع کند (به عنوان مثال، موارد قابل شمارش مانند خوراک سگ ممکن است بر دستگاه قابل تقسیم نباشد). -
genericDispenseNotSupported
: کاربر سعی می کند بدون تعیین یک مورد یا از پیش تعیین شده، از دستگاهی استفاده کند، اما دستگاه از چنین عملکردی پشتیبانی نمی کند (به عنوان مثال، یک اقدام توزیع پیش فرض). -
dispenseUnitNotSupported
: کاربر سعی می کند از دستگاهی با واحدی که برای آن مورد پشتیبانی نمی شود صرف نظر کند (به عنوان مثال، مورد ارائه نشده است، بنابراینsupported_unit validation
نادیده گرفته شد). -
dispenseFractionalUnitNotSupported
: کاربر سعی کرد مقدار کسری از یک مورد را که میتوان آن را تقسیم کرد، توزیع کند، اما نه برای واحد خاص مشخص شده (به عنوان مثال، یک شیر آب ممکن است بتواند 2.7 فنجان اما نه 2.7 میلی لیتر). -
deviceCurrentlyDispensing
: کاربران سعی می کنند یک مورد را توزیع کنند اما دستگاه از قبل در حال توزیع است. -
deviceClogged
: کاربران سعی می کنند یک مورد را توزیع کنند اما دستگاه مسدود شده است. -
deviceBusy
: کاربران سعی می کنند یک مورد را توزیع کنند اما دستگاه مشغول است (عمومی).
استثناهای دستگاه
این استثناها را می توان به عنوان یک exceptionCode
در states
موضوع پاسخ شما گزارش کرد:
-
amountRemainingLow
- کاربر یک مورد یا مقداری را از دستگاه توزیع می کند که مقدار باقی مانده را به سطح پایینی می رساند. شما مسئول تعریف سطح "پایین" هستید. -
userNeedsToWait
- زمانی که کاربر باید منتظر بماند تا کالا یا مقدار درخواستی بتواند با موفقیت توزیع شود (به عنوان مثال، یک شیر آب آب گرم را پخش می کند اما کاربر باید قبل از شروع توزیع صبر کند تا آب گرم شود).