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