स्मार्ट होम डिस्पेंस ट्रेल स्कीमा
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 |
Integer |
ज़रूरी है. रकम दी गई. |
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 |
Number |
बची हुई रकम |
unit |
स्ट्रिंग |
|
amountLastDispensed |
ऑब्जेक्ट |
डिवाइस से हाल ही में दिए गए आइटम की संख्या. अगर डिवाइस फ़िलहाल दिया जा रहा है, तो इससे पहले दी गई रकम की जानकारी, उससे पहले दी गई रकम के बारे में होनी चाहिए. |
amount |
Number |
बची हुई रकम |
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
इंटेंट को हैंडल करने के बारे में ज़्यादा जानने के लिए, इंटेंट पूरा करना देखें.
action.devices.commands.Dispense
डिस्पेंस आइटम.
पैरामीटर
पेलोड में इनमें से कोई एक चीज़ होती है:
राशि के हिसाब से डिस्पेंस करें.
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
item |
स्ट्रिंग |
|
amount |
Number |
ज़रूरी है. बांटने की रकम. |
unit |
स्ट्रिंग |
ज़रूरी है.
|
प्रीसेट से भेजें.
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
presetName |
स्ट्रिंग |
ज़रूरी है.
|
बिना पैरामीटर के भेजें.
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
कोई प्रॉपर्टी नहीं |
उदाहरण
मुझे एक कप पानी दो.
{ "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
उपयोगकर्ता ने एक ही क्वेरी करते समय, अपनी ओर से मांगी जाने वाली रकम की सीमा से ज़्यादा पैसे भेजने की कोशिश की है. ऐसा गलती से, बहुत ज़्यादा मात्रा में पानी निकालने से रोकने के लिए किया जाता है. उदाहरण के लिए, 5,00,000 कप पानी.dispenseAmountBelowLimit
उपयोगकर्ता ने डिवाइस या किसी ऐसे डिवाइस से आइटम या रकम देने की कोशिश की है जो डिवाइस से कम से कम दिया जा सकता हो.dispenseFractionalAmountNotSupported
: उपयोगकर्ता ने ऐसे आइटम को कुछ हद तक बांटने की कोशिश की है जिसे डिवाइस नहीं बांट सकता. उदाहरण के लिए, हो सकता है कि कुत्तों के लिए ट्रीट जैसे गिनती किए जा सकने वाले आइटम को डिवाइस से न बांटा जा सके.genericDispenseNotSupported
अगर उपयोगकर्ता किसी आइटम या प्रीसेट के बारे में बताने के बिना, डिवाइस से ऐप्लिकेशन को उपलब्ध कराने की कोशिश करता है, लेकिन डिवाइस पर ऐसी सुविधा काम नहीं करती (जैसे, कोई डिफ़ॉल्ट कार्रवाई).- (
dispenseUnitNotSupported
) उपयोगकर्ता किसी ऐसे डिवाइस से डिस्पले करने की कोशिश करता है जिस पर यह मामला काम नहीं करता. उदाहरण के लिए, आइटम उपलब्ध नहीं कराया गया है, इसलिएsupported_unit validation
को छोड़ दिया गया है. dispenseFractionalUnitNotSupported
उपयोगकर्ता ने ऐसे आइटम के लिए थोड़ी-थोड़ी मात्रा डाली है जिसे बांटा जा सकता है, लेकिन किसी खास यूनिट के लिए नहीं दिया जा सकता. उदाहरण के लिए, नल 2.7 कप दे सकता है, लेकिन 2.7 मि॰ली॰ नहीं.deviceCurrentlyDispensing
उपयोगकर्ता किसी आइटम को भेजने की कोशिश करते हैं, लेकिन डिवाइस पहले से ही दिया जा रहा है.deviceClogged
उपयोगकर्ता किसी आइटम को बांटने की कोशिश करते हैं, लेकिन डिवाइस में कुछ लगा होता है.deviceBusy
उपयोगकर्ता कोई आइटम भेजने की कोशिश करते हैं, लेकिन डिवाइस व्यस्त है (सामान्य).
डिवाइस छूट
इन अपवादों को आपके जवाब के states
ऑब्जेक्ट में, exceptionCode
के तौर पर रिपोर्ट किया जा सकता है:
amountRemainingLow
- उपयोगकर्ता, डिवाइस से कोई आइटम या रकम बाहर निकाल देता है जो बची हुई रकम को नीचे के लेवल पर पहुंचा देती है. "खराब" लेवल तय करने की ज़िम्मेदारी आपकी है.userNeedsToWait
- जब अनुरोध किए गए आइटम या रकम के हटने से पहले उपयोगकर्ता को इंतज़ार करना पड़ता है (उदाहरण के लिए, किसी नल को गर्म पानी देना पड़ सकता है, लेकिन इंतज़ार करने से पहले उपयोगकर्ता को पानी गर्म होने का इंतज़ार करना होगा).