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