स्मार्ट होम ऐक्शन बनाने का तरीका सीखने के लिए, Google Home डेवलपर सेंटर में आपका स्वागत है. ध्यान दें: आप Actions कंसोल में कार्रवाइयां बनाना जारी रखेंगे.
संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

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

इस्तेमाल की जा सकने वाली यूनिट.

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

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 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

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

amountRemaining ऑब्जेक्ट

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

amount Number

बची हुई रकम

unit String

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

amountLastDispensed ऑब्जेक्ट

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

amount Number

बची हुई रकम

unit String

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 एट्रिब्यूट में दिए गए किसी आइटम से मेल खाना चाहिए.

डिवाइस के निर्देश

जिन डिवाइसों पर इस एट्रिब्यूट का इस्तेमाल होता है वे EXECUTE कार्रवाई के तहत, इन निर्देशों का पालन कर सकते हैं. EXECUTE इंटेंट मैनेज करने के बारे में ज़्यादा जानने के लिए, इंटेंट पूरा करना देखें.

action.devices.commands.Dispense

आइटम भेजें.

पैरामीटर

पेलोड में इनमें से कोई एक शामिल होता है:

रकम के हिसाब से बांटें.

पैरामीटर टाइप जानकारी
item String

item_name एट्रिब्यूट से, डिस्पेंस करने के लिए आइटम का नाम.

amount Number

ज़रूरी है.

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

unit String

ज़रूरी है.

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

प्रीसेट के ज़रिए भेजें.

पैरामीटर टाइप जानकारी
presetName String

ज़रूरी है.

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

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

पैरामीटर टाइप जानकारी

कोई प्रॉपर्टी नहीं

उदाहरण

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