स्मार्ट होम डिस्पेंस ट्रैट स्कीमा

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, ...] स्ट्रिंग

इस्तेमाल की जा सकने वाली इकाइयां.

इस्तेमाल की जा सकने वाली वैल्यू:

CENTIMETERS
CUPS
DECILITERS
FLUID_OUNCES
GALLONS
GRAMS
KILOGRAMS
LITERS
MILLIGRAMS
MILLILITERS
MILLIMETERS
NO_UNITS
OUNCES
PINCH
PINTS
PORTION
POUNDS
QUARTS
TABLESPOONS
TEASPOONS
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 स्ट्रिंग

item_name एट्रिब्यूट से आइटम का नाम.

amountRemaining ऑब्जेक्ट

डिवाइस में उस आइटम की बची हुई संख्या. अगर डिवाइस से फ़िलहाल निकाल दिया जा रहा है, तो यह बाकी बचे पैसे या डिवाइस से डिस्पेंसिंग पूरी होने के बाद की रकम बताता है.

amount Number

बची हुई रकम

unit स्ट्रिंग

supported_units एट्रिब्यूट से amount के लिए यूनिट.

amountLastDispensed ऑब्जेक्ट

उस आइटम की मात्रा जिसे डिवाइस ने हाल ही में भेजा है. अगर डिवाइस से फ़िलहाल डिस्पेंस किया जा रहा है, तो उसे मौजूदा डिस्पेंसिंग रकम से पहले भेजी जाने वाली रकम की जानकारी दी जानी चाहिए.

amount Number

बची हुई रकम

unit स्ट्रिंग

supported_units एट्रिब्यूट से amount के लिए यूनिट.

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 स्ट्रिंग

item_name एट्रिब्यूट से, दिए जाने वाले आइटम का नाम.

amount Number

ज़रूरी है.

बांटने की रकम.

unit स्ट्रिंग

ज़रूरी है.

supported_units एट्रिब्यूट से amount के लिए यूनिट.

प्रीसेट के हिसाब से फैलाएं.

पैरामीटर Type ब्यौरा
presetName स्ट्रिंग

ज़रूरी है.

preset_name एट्रिब्यूट से, निकालने के लिए प्रीसेट का नाम.

बिना पैरामीटर के डिस्पेंस करें.

पैरामीटर 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 - जब उपयोगकर्ता को अनुरोध किए गए आइटम या उसकी रकम को पूरी तरह से पहुंचाने से पहले इंतज़ार करना पड़ता है (उदाहरण के लिए, एक नल से गर्म पानी निकलेगा, लेकिन पानी निकालने के लिए उपयोगकर्ता को इंतज़ार करना होगा.