action.devices.EXECUTE

यह इंटेंट, स्मार्ट होम डिवाइसों पर निर्देश भेजता है.

आपके फ़ुलफ़िलमेंट को हर निर्देश को प्रोसेस करना चाहिए, उसे संबंधित डिवाइस पर भेजना चाहिए, और EXECUTE रिस्पॉन्स में नई स्थिति दिखानी चाहिए.

एक EXECUTE इंटेंट, कई निर्देशों के साथ कई डिवाइसों को टारगेट कर सकता है. उदाहरण के लिए, ट्रिगर किया गया इंटेंट, लाइट के सेट पर चमक और रंग, दोनों को सेट कर सकता है. इसके अलावा, एक से ज़्यादा लाइटों को अलग-अलग रंग में सेट कर सकता है.

ज़्यादा जानकारी के लिए, क्वेरी करना और उसे लागू करना देखें.

अनुरोध का फ़ॉर्मैट

फ़ील्ड टाइप ब्यौरा
requestId String

ज़रूरी है.

अनुरोध का आईडी.

inputs कलेक्शन

ज़रूरी है.

इंटेंट के अनुरोध से मैच करने वाले इनपुट की सूची.

[item, ...] ऑब्जेक्ट

इंटेंट अनुरोध से जुड़ा टाइप और पेलोड.

intent

ज़रूरी है.

(कॉन्स्टेंट वैल्यू: "action.devices.EXECUTE")

इंटेंट के अनुरोध का टाइप.

payload ऑब्जेक्ट

ज़रूरी है.

EXECUTE request payload.

commands कलेक्शन

ज़रूरी है.

डिवाइस टारगेट और निर्देश के पेयर की सूची.

[item, ...] ऑब्जेक्ट

अटैच किए गए डिवाइस टारगेट पर लागू करने के लिए निर्देशों का सेट.

devices कलेक्शन

ज़रूरी है.

टारगेट किए गए डिवाइसों की सूची.

[item, ...] ऑब्जेक्ट

डिवाइस टारगेट, जिसे लागू करना है.

id String

ज़रूरी है.

डिवाइस आईडी, जो SYNC में दिए गए आईडी के हिसाब से होता है.

customData ऑब्जेक्ट

अगर SYNC में ओपैक कस्टम डेटा ऑब्जेक्ट दिया जाता है, तो उसे यहां भेजा जाता है.

execution कलेक्शन

ज़रूरी है.

टारगेट किए गए डिवाइसों पर लागू करने के लिए निर्देशों की सूची.

[item, ...] ऑब्जेक्ट

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

command String

ज़रूरी है.

आम तौर पर, पैरामीटर के साथ इस्तेमाल किया जाने वाला कमांड.

params ऑब्जेक्ट

हर निर्देश के पैरामीटर के साथ अलाइन किया गया.

उदाहरण

इंटेंट के अनुरोध को लागू करना

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123",
                "customData": {
                  "fooValue": 74,
                  "barValue": true,
                  "bazValue": "sheepdip"
                }
              },
              {
                "id": "456",
                "customData": {
                  "fooValue": 36,
                  "barValue": false,
                  "bazValue": "moarsheep"
                }
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.OnOff",
                "params": {
                  "on": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

रिस्पॉन्स का फ़ॉर्मैट

फ़ील्ड टाइप ब्यौरा
requestId String

ज़रूरी है.

उससे जुड़े अनुरोध का आईडी.

payload ऑब्जेक्ट

ज़रूरी है.

इंटेंट रिस्पॉन्स पेलोड.

errorCode String

पुष्टि न हो पाने और डेवलपर सिस्टम उपलब्ध न होने की वजह से, पूरे लेन-देन के लिए गड़बड़ी का कोड. डिवाइस से जुड़ी अलग-अलग गड़बड़ियों के लिए, डिवाइस ऑब्जेक्ट में errorCode का इस्तेमाल करें.

debugString String

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

commands कलेक्शन

हर ऑब्जेक्ट में, जवाब की जानकारी वाले एक या एक से ज़्यादा डिवाइस होते हैं. ध्यान दें, हो सकता है कि इन्हें अनुरोध में बताए गए तरीके से ग्रुप न किया गया हो. उदाहरण के लिए, अनुरोध से सात लाइटें चालू हो सकती हैं, जिनमें से तीन लाइटें चालू होंगी और चार लाइटें नहीं होंगी. इसलिए, जवाब में दो ग्रुप होंगे.

[item, ...] ऑब्जेक्ट

डिवाइस पर स्क्रिप्ट लागू करने का नतीजा.

ids कलेक्शन

ज़रूरी है.

इस स्थिति से जुड़े डिवाइस आईडी की सूची.

[item, ...] String

डिवाइस आईडी.

status String

ज़रूरी है.

'कार्रवाई को लागू करें' के नतीजे.

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

SUCCESS
पुष्टि करें कि निर्देश काम कर गया है.
PENDING
कमांड को सूची में जोड़ दिया गया है. हालांकि, उम्मीद है कि यह काम करेगा.
OFFLINE
टारगेट डिवाइस ऑफ़लाइन है या उससे संपर्क नहीं हो पा रहा है.
EXCEPTIONS
किसी निर्देश से जुड़ी समस्या या सूचना है. यह निर्देश पूरा हो सकता है या नहीं. आम तौर पर, यह स्टेटस तब सेट किया जाता है, जब आपको कनेक्ट किए गए किसी दूसरे डिवाइस के बारे में ज़्यादा जानकारी भेजनी हो.
ERROR
टारगेट डिवाइस, निर्देश को पूरा नहीं कर पा रहा है.
states ऑब्जेक्ट

हर ट्रैट स्कीमा रेफ़रंस में बताई गई हर ट्रैट की स्थितियों के साथ अलाइन किया गया. अगर उपलब्ध हो, तो ये स्टेटस, एक्ज़ीक्यूशन के बाद दिखते हैं.

online बूलियन

इससे पता चलता है कि डिवाइस ऑनलाइन है या नहीं.

errorCode String

अगर ज़रूरी हो, तो पहले से तय किए गए गड़बड़ी कोड से गड़बड़ी की स्थिति को बड़ा किया जा सकता है. यह स्थिति, उपयोगकर्ताओं को दिखाई गई गड़बड़ियों से मैप होगी.

debugString String

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

उदाहरण

EXECUTE इंटेंट का रिस्पॉन्स

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "on": true,
          "online": true
        }
      },
      {
        "ids": [
          "456"
        ],
        "status": "ERROR",
        "errorCode": "deviceTurnedOff"
      }
    ]
  }
}