סכימה של תכונות דישון לבית חכם
action.devices.traits.Dispense
– התכונה הזו שייכת למכשירים שתומכים בהנפקה של כמות מוגדרת של פריט פיזי אחד או יותר.
התכונה הזו גם תומכת במזין מוגדר מראש, כמו 'קערת אוכל לחתולים' למתקן האכלה לחיות מחמד או '' לברז.
מאפייני המכשיר
מכשירים עם התכונה הזו עשויים לדווח על המאפיינים הבאים כחלק מהפעולה SYNC
. מידע נוסף על טיפול באובייקטים מסוג SYNC
זמין במאמר מילוי אובייקטים של Intent.
מאפיינים | תיאור | תיאור |
---|---|---|
supportedDispenseItems |
מערך |
מכיל מידע על כל הפריטים שהמכשיר יכול להנפיק. |
[item, ...] |
אובייקט |
פריט שניתן למזיגת. |
item_name |
String |
חובה. השם הפנימי של הפריט שנשלף. זה עשוי להיות לא ידידותי למשתמש, ואפשר לשתף אותו בכל השפות. |
item_name_synonyms |
מערך |
חובה. שמות מילים נרדפות למילים המפוצלות בכל שפה נתמכת. |
[item, ...] |
אובייקט |
שמות מילים נרדפות עבור הפריט שהתקבל בשפה מסוימת. |
synonyms |
מערך |
חובה. שמות מילים נרדפות של הפריט לחלק. המאפיינים צריכים לכלול גם צורות יחיד וגם צורות רבים, אם הדבר רלוונטי. המחרוזת הראשונה ברשימה הזו חייבת להיות בצורת הרבים של הפריט באותה שפה. |
[item, ...] |
String |
שם מילה נרדפת |
lang |
String |
חובה. קוד שפה (ISO 639-1). כאן תוכלו לקרוא את השפות הנתמכות. |
supported_units |
מערך |
חובה. קבוצת היחידות שנתמכות במכשיר עבור הפריט הזה. |
[item, ...] |
String |
יחידות נתמכות. ערכים נתמכים:
|
default_portion |
אובייקט |
חובה. הכמות הרגילה של הפריט שאפשר לנפק. |
amount |
Integer |
חובה. סכום ההנחה. |
unit |
String |
חובה. יחידת סינון. |
supportedDispensePresets |
מערך |
הגדרות קבועות מראש שנתמכות על ידי המכשיר. |
[item, ...] |
אובייקט |
הגדרה קבועה מראש. |
preset_name |
String |
חובה. שם פנימי להגדרה הקבועה מראש. השם הזה עשוי להיות לא ידידותי למשתמש, והוא משותף לכל השפות. |
preset_name_synonyms |
מערך |
חובה. שמות מילים נרדפות להגדרה הקבועה מראש בכל שפה נתמכת. |
[item, ...] |
אובייקט |
שמות מילים נרדפות להגדרה הקבועה מראש בשפה נתונה. |
synonyms |
מערך |
חובה. שמות מילים נרדפות עבור ההגדרה הקבועה מראש. המילים הנרדפות צריכות לכלול גם צורות יחיד וגם רבים, אם הדבר רלוונטי. |
[item, ...] |
String |
שם מילה נרדפת |
lang |
String |
חובה. קוד שפה (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" } } ] }
מכשיר STATES
ישויות עם התכונה הזו עשויות לדווח על המצבים הבאים כחלק מהפעולה QUERY
. מידע נוסף על טיפול באובייקטים מסוג QUERY
זמין במאמר מילוי אובייקטים של Intent.
מדינות | תיאור | תיאור |
---|---|---|
dispenseItems |
מערך |
את המצבים של הפריטים שהמכשיר יכול לנפות. |
[item, ...] |
אובייקט |
המצב של פריט נתון. |
itemName |
String |
שם הפריט ממאפיין |
amountRemaining |
אובייקט |
כמות היחידות של הפריט שנשאר במכשיר. אם המכשיר מונפק כרגע, יוצג הסכום שנותר או מה יהיה הסכום לאחר סיום הנפקת המכשיר. |
amount |
מספר |
הסכום שנותר |
unit |
String |
היחידה של המאפיין |
amountLastDispensed |
אובייקט |
כמות הפריט שהמכשיר הוציא לאחרונה. אם המכשיר מונפק כרגע, יש לדווח על הסכום שהוא נחלק לפני סכום ההנפקה הנוכחי. |
amount |
מספר |
הסכום שנותר |
unit |
String |
היחידה של המאפיין |
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
.
COMMANDS של מכשיר
מכשירים עם התכונה הזו עשויים להגיב לפקודות הבאות כחלק מהפעולה EXECUTE
. מידע נוסף על טיפול באובייקטים מסוג EXECUTE
זמין במאמר מילוי אובייקטים של Intent.
action.devices.commands.Dispense
מוציאים פריטים.
פרמטרים
המטען הייעודי מכיל אחד מהפרטים הבאים:
מוציאים לפי הסכום.
פרמטרים | תיאור | תיאור |
---|---|---|
item |
String |
שם הפריט להנפקה, מהמאפיין |
amount |
מספר |
חובה. הסכום להוצאת. |
unit |
String |
חובה. היחידה של המאפיין |
לוותר לפי הגדרה קבועה מראש.
פרמטרים | תיאור | תיאור |
---|---|---|
presetName |
String |
חובה. שם ההגדרה הקבועה מראש להנפקה, ממאפיין |
הוצאת נתונים ללא פרמטרים.
פרמטרים | תיאור | תיאור |
---|---|---|
אין נכסים |
דוגמאות
אני רוצה לקבל אחת של מים.
{ "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": {} }
מכשיר ERRORS
כדאי לעיין ברשימה המלאה של שגיאות וחריגים.dispenseAmountRemainingExceeded
: המשתמש ניסה להנפיק פריט או סכום ממכשיר שלא נותר בו מספיק כסף.dispenseAmountAboveLimit
: המשתמש ניסה לשלם סכום שחורג מתקרת הסכום שאפשר לבקש בשאילתה אחת. זאת כדי למנוע הוספה בטעות של כמות מוגזמת (לדוגמה, 500,000 כוסות מים).dispenseAmountBelowLimit
: המשתמש ניסה להוציא מהמכשיר פריט או סכום שהוא נמוך מהכמות המינימלית שהוא יכול לפזר.dispenseFractionalAmountNotSupported
: המשתמש ניסה לחלק כמות חלקית של פריט שהמכשיר לא יכול לפצל (לדוגמה, ייתכן שפריטים שניתן לספור אותם, כמו חטיפים לכלבים, לא יהיו ניתנים לחלוקה).genericDispenseNotSupported
: המשתמש מנסה לפרוש ממכשיר בלי לציין פריט או הגדרה קבועה מראש, אבל המכשיר לא תומך בפונקציונליות כזו (למשל, פעולת ברירת מחדל של ההוצאה).dispenseUnitNotSupported
: המשתמש מנסה להתנתק ממכשיר שהיחידה שלו לא נתמכת במקרה הזה (לדוגמה, הפריט לא סופק ולכן המערכת דילגה עלsupported_unit validation
).dispenseFractionalUnitNotSupported
: המשתמש ניסה לפרוק כמות שבירה של פריט שניתן לפצל, אבל לא ליחידה המסוימת שצוינה (לדוגמה, יכול להיות מברז שאפשר להזין 2.7 כוסות אבל לא 2.7 מיליליטר).deviceCurrentlyDispensing
: המשתמשים מנסים להנפיק פריט, אבל המכשיר כבר מונפק.deviceClogged
: המשתמשים מנסים לנתק פריט, אבל המכשיר סתום.deviceBusy
: המשתמשים מנסים להוציא פריט, אבל המכשיר עמוס (כללי).
מכשיר EXCEPTIONS
ניתן לדווח על החריגים האלה כ-exceptionCode
באובייקט states
של התשובה שלך:
amountRemainingLow
- המשתמש מחלק פריט או סכום מהמכשיר, וכתוצאה מכך הסכום שנותר לתשלום נמוך יותר. באחריותך להגדיר מה מוגדר לרמה 'נמוכה'.userNeedsToWait
- כאשר המשתמש צריך להמתין לפני שאפשר יהיה לפזר את הפריט או הכמות המבוקשים (לדוגמה, ברז יזוז מים חמים אבל המשתמש צריך להמתין עד שהמים יתחממו לפני שהם יתחילו לזרום).