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

स्मार्ट होम सिक्योरिटी सिस्टम गाइड

action.devices.types.SECURITYSYSTEM - सुरक्षा सिस्टम को चालू और बंद किया जा सकता है. उन्हें सुरक्षा के कई स्तरों (उदाहरण के लिए, घर और दूर) पर चालू किया जा सकता है. साथ ही, वे कुछ सेंसर की जानकारी भी रिपोर्ट कर सकते हैं, जैसे कि सेंसर जो किसी हलचल या खुली खिड़की की पहचान करता है.

इस तरह का मतलब है कि डिवाइस को सुरक्षा सिस्टम का आइकॉन मिलता है. साथ ही, डिवाइस को उसके बारे में जानकारी देने वाले कुछ समानार्थी शब्द और उपनाम भी मिलेंगे.

डिवाइस की क्षमताएं

लागू करने से जुड़ी विशेषताओं के दस्तावेज़ देखें, जैसे कि एट्रिब्यूट और स्थितियां जिनमें आपकी सेवा को काम करना चाहिए और EXECUTE और QUERY रिस्पॉन्स बनाने का तरीका भी देखें.

ज़रूरी विशेषताएं

अगर ये एट्रिब्यूट और निर्देश आपके डिवाइस पर लागू होते हैं, तो वे ज़रूरी हैं.

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

क्वालिटी के लिए ज़रूरी शर्तें

  • इंतज़ार का समय: 2000मि॰से॰ से कम या इसके बराबर होना चाहिए.
  • विश्वसनीयता: 97% से ज़्यादा या उसके बराबर होना चाहिए.

उदाहरण डिवाइस: आसान सुरक्षा सिस्टम

इस सेक्शन में, उदाहरण के तौर पर ऐसे इंटेंट पेलोड शामिल हैं जो ऊपर दिए गए डिवाइस टाइप और विशेषताओं के आधार पर, एक सामान्य "सुरक्षा सिस्टम" को दिखाते हैं. अगर लागू करने की प्रक्रिया में विशेषताओं को जोड़ा या हटाया जाता है, तो उसी हिसाब से अपने जवाबों में बदलाव करें.

SYNC जवाब का नमूना

अनुरोध
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
जवाब दें
{
  "requestId": "6894439706274654512",
  "payload": {
    "agentUserId": "user123",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.SECURITYSYSTEM",
        "traits": [
          "action.devices.traits.StatusReport",
          "action.devices.traits.ArmDisarm"
        ],
        "name": {
          "name": "Simple security system"
        },
        "willReportState": true,
        "attributes": {
          "availableArmLevels": {
            "levels": [
              {
                "level_name": "home_key",
                "level_values": [
                  {
                    "level_synonym": [
                      "Home and Guarding",
                      "level 1",
                      "home",
                      "SL1"
                    ],
                    "lang": "en"
                  }
                ]
              },
              {
                "level_name": "away_key",
                "level_values": [
                  {
                    "level_synonym": [
                      "Away and Guarding",
                      "level 2",
                      "away",
                      "SL2"
                    ],
                    "lang": "en"
                  }
                ]
              }
            ],
            "ordered": true
          }
        },
        "deviceInfo": {
          "manufacturer": "smart-home-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        }
      }
    ]
  }
}

नमूना QUERY प्रतिक्रिया

अनुरोध
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
जवाब दें
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "isArmed": true,
        "currentArmLevel": "home_key",
        "currentStatusReport": [
          {
            "blocking": false,
            "deviceTarget": "123",
            "priority": 0,
            "statusCode": "lowBattery"
          }
        ]
      }
    }
  }
}

EXECUTE निर्देशों का नमूना

बंद हथियार

कमांड पैरामीटर से जुड़ी ज़्यादा जानकारी के लिए, action.devices.traits.ArmDisarm रेफ़रंस देखें.

अनुरोध
{
  "requestId": "6894439706274654516",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ArmDisarm",
                "params": {
                  "arm": true,
                  "armLevel": "away_key"
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
जवाब दें
{
  "requestId": "6894439706274654516",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "isArmed": true,
          "currentArmLevel": "away_key"
        }
      }
    ]
  }
}

डिवाइस की गड़बड़ियां

गड़बड़ियों और अपवादों की पूरी सूची देखें.

सुरक्षा से जुड़े अपवादों की रिपोर्ट करें

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

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

अपवाद कोड आम तौर पर, सुरक्षा सिस्टम से जुड़े होते हैं:

  • doorOpen: दरवाज़ा खुला है.
  • windowOpen: एक विंडो खुली है.
  • isOpen सेंसर को पता चलता है कि कोई चीज़ खुली है, लेकिन उसे पता नहीं है कि यह दरवाज़ा या खिड़की है या नहीं.

उदाहरण: ब्लॉक न करने वाला अपवाद

इस उदाहरण में बताया गया है कि विंडो को ब्लॉक न करने वाला अपवाद, जब सुरक्षा सिस्टम चालू रहता है, भले ही विंडो को 'खुला है' के तौर पर रिपोर्ट किया गया हो.

उपयोगकर्ता सुरक्षा सिस्टम को हाई सिक्योरिटी पर सेट करें.
Google Assistant ठीक है, सामने की खिड़की खुली है. सुरक्षा सिस्टम को बेहतर सुरक्षा पर सेट किया जा रहा है.
अनुरोध
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.ArmDisarm",
          "params": {
            "arm": true,
            "armLevel": "L2"
          }
        }]
      }]
    }
  }]
}
जवाब दें
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "isArmed": true,
          "currentArmLevel": "L2",
          "currentStatusReport": [
            {
              "blocking": false,
              "priority": 0,
              "statusCode": "windowOpen",
              "deviceTarget": "sensor_id1"
            }
          ]
        }
      }
    ]
  }
}

उदाहरण: ब्लॉक करने का अपवाद

उपयोगकर्ता सुरक्षा सिस्टम को हाई सिक्योरिटी पर सेट करें.
Google Assistant सुरक्षा सिस्टम को कंट्रोल करने में गड़बड़ी हुई. सामने की खिड़की खुली है.
अनुरोध
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.ArmDisarm",
          "params": {
            "arm": true,
            "armLevel": "L2"
          }
        }]
      }]
    }
  }]
}
जवाब 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "isArmed": false,
          "currentArmLevel": "L2",
          "currentStatusReport": [
            {
              "blocking": true,
              "priority": 0,
              "statusCode": "windowOpen",
              "deviceTarget": "sensor_id1"
            }
          ]
        }
      }
    ]
  }
}

दो तरीकों से पुष्टि करने की सुविधा से सुरक्षा

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

इस स्थिति में, पिन या लंबा पासवर्ड डालने के बाद दोनों को स्वीकार किया जाना ज़रूरी है. इसके बाद, एक मान्यता दी जानी चाहिए.

उदाहरण: पुष्टि की पुष्टि

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

उपयोगकर्ता सुरक्षा सिस्टम चालू करें.
Google Assistant सामने का दरवाज़ा खुला है। क्या आपको वाकई सिक्योरिटी सिस्टम चालू करना है?
उपयोगकर्ता हां.
Google Assistant ठीक है, सुरक्षा सिस्टम चालू कर रही हूँ.

पहले मोड़ पर, आपको ackNeeded चुनौती के साथ जवाब देना चाहिए.

अनुरोध 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.ArmDisarm",
          "params": {
            "arm": true
          }
        }]
      }]
    }
  }]
}
जवाब 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "ERROR",
        "errorCode": "challengeNeeded",
        "challengeNeeded": {
          "type": "ackNeeded"
        },
        "states": {
          "isArmed": true,
          "currentArmLevel": "L2",
          "currentStatusReport": [
            {
              "blocking": false,
              "priority": 0,
              "statusCode": "doorOpen",
              "deviceTarget": "456"
            }
          ]
        }
      }
    ]
  }
}

आपको Google से पहले जो अनुरोध मिला था उसमें ack नतीजा शामिल होगा.

दूसरा अनुरोध
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.ArmDisarm",
          "params": {
            "arm": true
          },
          "challenge": {
            "ack": true
          }
        }]
      }]
    }
  }]
}
जवाब दें
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "isArmed": true
        }
      }
    ]
  }
}

उदाहरण: पिन और पुष्टि करने की चुनौती

इस उदाहरण में एक उपयोगकर्ता को एक ऐसा सुरक्षा सिस्टम चालू करते हुए दिखाया गया है जिसमें पिन डालना ज़रूरी है. सिस्टम को पता चलता है कि कार के आगे और पीछे की खिड़कियाँ खुली हुई हैं. साथ ही, उपयोगकर्ता को यह मानने के लिए कहा जाता है कि डिवाइस को आगे बढ़ाने की प्रक्रिया शुरू कर देनी चाहिए.

उपयोगकर्ता टू अवे.
Google Assistant आपका पिन क्या है?
उपयोगकर्ता 1234.
Google Assistant ऐसा लगता है कि सामने की खिड़की और पीछे की खिड़की खुली है. क्या आपको वाकई सुरक्षा सिस्टम को चालू रखना है?
उपयोगकर्ता हां.
Google Assistant ठीक है, सुरक्षा सिस्टम को बंद कर रही हूँ

पहले मोड़ पर, आपको सामान्य pinNeeded चुनौती के साथ जवाब देना चाहिए.

अनुरोध 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.ArmDisarm",
          "params": {
            "arm": true
          }
        }]
      }]
    }
  }]
}
जवाब दें
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["456"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

इसके बाद, वह दिए गए पिन वाले अनुरोध को फ़ॉलो अप करता है. दूसरे मोड़ का समर्थन करने के लिए, आपको अतिरिक्त जानकारी के साथ एक ackNeeded चुनौती के साथ जवाब देना चाहिए, जिसमें लक्ष्य समूह स्तर और ब्लॉक करने के अपवादों के साथ वर्तमान स्थिति रिपोर्ट शामिल है.

दूसरा अनुरोध
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [...],
        "execution": [{
          "command": "action.devices.commands.ArmDisarm",
          "params": {
            "arm": true,
            "armLevel": "away"
          },
          "challenge": {
            "pin": "1234"
          }
        }]
      }]
    }
  }]
}
जवाब दें
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["456"],
      "status": "ERROR",
      "states": {
        "targetArmLevel": "away",
        "currentStatusReport": [{
            "blocking": true,
            "priority": 1,
            "deviceTarget": "front_window_id",
            "statusCode": "deviceOpen"
          },
          {
            "blocking": true,
            "priority": 1,
            "deviceTarget": "back_window_id",
            "statusCode": "deviceOpen"
          }
        ]
      },
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}

आपको Google से मिले पहले अनुरोध में सिर्फ़ ack नतीजा शामिल होगा, न कि पहले मोड़ पर दिया गया पिन.

अनुरोध 3
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [...],
        "execution": [{
          "command": "action.devices.commands.ArmDisarm",
          "params": {
            "arm": true,
            "armLevel": "away"
          },
          "challenge": {
            "ack": true
          }
        }]
      }]
    }
  }]
}
जवाब दें
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "isArmed": true
        }
      }
    ]
  }
}