مخطّط سمة التوزيع في المنزل الذكي
action.devices.traits.Dispense
: تنتمي هذه السمة إلى الأجهزة التي تتيح توزيع كمية محدّدة من عنصر مادي واحد أو أكثر.
تتيح هذه السمة أيضًا توزيع إعداد مُسبَق، مثل "وعاء طعام القطط" لمغذّي الحيوانات الأليفة أو "كوب" لمغسلة.
سمات الجهاز
قد تُبلغ الأجهزة التي تتضمّن هذه السمة عن السمات التالية
كجزء من عملية SYNC
. للاطّلاع على مزيد من المعلومات عن معالجة أهداف SYNC
، يمكنك الاطّلاع على تلبية الأهداف.
السمات | النوع | الوصف |
---|---|---|
supportedDispenseItems |
مصفوفة |
يحتوي على معلومات عن جميع المنتجات التي يمكن للجهاز توزيعها. |
[item, ...] |
العنصر |
عنصر يمكن الاستغناء عنه |
item_name |
String |
مطلوبة الاسم الداخلي للعنصر الذي يتم توزيعه. وقد لا يكون هذا الإجراء سهل الاستخدام، ويتمّ مشاركته بجميع اللغات. |
item_name_synonyms |
صفيف |
مطلوبة أسماء المرادفات للأدوية المُوزَّعة بكل لغة معتمَدة |
[item, ...] |
العنصر |
أسماء المرادفات للعنصر الذي يتم توزيعه بلغة معيّنة. |
synonyms |
صفيف |
يجب ملء هذا الحقل. تمثّل هذه السمة أسماء مرادفات للسلعة التي تم توزيعها. يجب أن تتضمّن المرادفات صيغتَي المفرد والجمع، إن أمكن. يجب أن تكون السلسلة الأولى في هذه القائمة صيغة الجمع للعنصر في تلك اللغة. |
[item, ...] |
String |
اسم المرادفات |
lang |
String |
مطلوبة رمز اللغة (وفقًا لمعيار ISO 639-1) الاطّلاع على اللغات المتاحة |
supported_units |
مصفوفة |
مطلوبة مجموعة الوحدات التي يتيح الجهاز استخدامها لهذا العنصر |
[item, ...] |
String |
الوحدات المسموح بها القيم المسموح بها:
|
default_portion |
العنصر |
مطلوبة الكمية المعتادة للعنصر الذي يمكن توزيعه |
amount |
عدد صحيح |
يجب ملء هذا الحقل. المبلغ الذي تم صرفه |
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" } } ] }
حالة الجهاز
يمكن أن تُبلغ الكيانات التي تتضمّن هذه السمة عن الحالات التالية
كجزء من عملية QUERY
. للاطّلاع على مزيد من المعلومات عن معالجة أهداف QUERY
، يمكنك الاطّلاع على تلبية الأهداف.
الولايات | النوع | الوصف |
---|---|---|
dispenseItems |
صفيف |
حالات السلع التي يمكن للجهاز توزيعها |
[item, ...] |
العنصر |
حالة عنصر معيّن |
itemName |
String |
اسم السلعة في السمة |
amountRemaining |
العنصر |
مقدار هذا العنصر المتبقي في الجهاز إذا كان الجهاز يضخّ السائل حاليًا، يتم تسجيل الكمية المتبقية أو الكمية التي سيتم ضخّها بعد انتهاء عملية الضخ. |
amount |
Number |
المبلغ المتبقي |
unit |
String |
وحدة |
amountLastDispensed |
العنصر |
كمية هذا المنتج التي تم ضخها من الجهاز مؤخرًا إذا كان الجهاز يضخّ السائل حاليًا، من المفترض أن يُبلغ هذا الحقل عن الكمية التي تم ضخّها قبل الكمية الحالية. |
amount |
Number |
المبلغ المتبقي |
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
.
أوامر الجهاز
قد تستجيب الأجهزة التي تتضمّن هذه السمة للأوامر التالية
كجزء من عملية EXECUTE
. للاطّلاع على مزيد من المعلومات عن معالجة أهداف EXECUTE
، يمكنك الاطّلاع على تلبية الأهداف.
action.devices.commands.Dispense
توزيع العناصر
المعلمات
تحتوي الحمولة على أحد العناصر التالية:
التوزيع حسب المبلغ
المعلمات | النوع | الوصف |
---|---|---|
item |
String |
اسم السلعة التي سيتم توزيعها، من سمة |
amount |
Number |
مطلوبة المبلغ المطلوب صرفه |
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": {} }
أخطاء الجهاز
اطّلِع على القائمة الكاملة للأخطاء والاستثناءات.dispenseAmountRemainingExceeded
: حاول المستخدم توزيع عنصر أو مبلغ من جهاز لم يتبقَّ فيه قدر كافٍ.dispenseAmountAboveLimit
: حاول المستخدم صرف مبلغ يتجاوز الحدود المسموح بها في طلب بحث واحد. لتجنُّب رمي كمية زائدة عن طريق الخطأ عن طريق الخطأ (على سبيل المثال، 500,000 كوب ماء).dispenseAmountBelowLimit
: حاول المستخدم إخراج منتج أو كمية من الجهاز أقل من الحد الأدنى للكمية التي يمكنه إخراجها.dispenseFractionalAmountNotSupported
: حاول المستخدم توزيع جزء من عنصر لا يمكن للجهاز تقسيمه (على سبيل المثال، قد لا يكون بالإمكان استخدام الجهاز لتقسيم كمية محددة من مواد غذائية للحيوانات الأليفة).genericDispenseNotSupported
: يحاول المستخدم التوزيع من جهاز بدون تحديد عنصر أو إعداد مُسبَق، ولكن الجهاز لا يتيح هذه الوظيفة (على سبيل المثال، إجراء التوزيع التلقائي).dispenseUnitNotSupported
: يحاول المستخدم الصرف من جهاز يحتوي على وحدة غير متوافقة مع هذا الطلب (على سبيل المثال، لم يتم توفير المنتج، لذا تمت تخطّيsupported_unit validation
).-
dispenseFractionalUnitNotSupported
: حاول المستخدم ضخ جزء من مادة يمكن تقسيمها ولكن ليس بالوحدة المحدّدة (على سبيل المثال، قد يكون صنبور الحمام قادرًا على ضخ 2.7 كوب ولكن ليس 2.7 مل). deviceCurrentlyDispensing
: يحاول المستخدمون إخراج منتج معيّن ولكن الجهاز يُخرجه حاليًا.deviceClogged
: يحاول المستخدمون إخراج منتج معيّن ولكن الجهاز مسدود.deviceBusy
: يحاول المستخدمون توزيع سلعة ولكن الجهاز مشغول (عام).
استثناءات الجهاز
يمكن الإبلاغ عن هذه الاستثناءات على أنّها exceptionCode
في كائن states
من ردّك:
amountRemainingLow
- يوزّع المستخدم سلعة أو مبلغ من الجهاز، ما يؤدي إلى انخفاض المبلغ المتبقّي. أنت المسؤول عن تحديد ما يشكّل مستوى "منخفضًا".userNeedsToWait
- عندما يكون على المستخدم الانتظار قبل أن يتم ضخ العنصر أو الكمية المطلوبة بنجاح (على سبيل المثال، يضخ صنبور الماء الساخن ولكن يحتاج المستخدِم إلى الانتظار إلى أن يسخن الماء قبل أن يبدأ الضخ).