SDM API एक REST API है. यह Google Nest डिवाइसों को मैनेज करने के लिए, कई तरीके उपलब्ध कराता है. इन तरीकों से, डिवाइस की खासियतें देखी जा सकती हैं और उन्हें कंट्रोल करने के लिए कमांड दी जा सकती हैं. हर एपीआई कॉल के साथ, अनुमति देने की प्रोसेस के दौरान मिले ऐक्सेस टोकन का इस्तेमाल करें.
विशेषताएं
SDM API, डिवाइस की जानकारी और सुविधाओं के लिए, ट्रेट-आधारित मॉडल का इस्तेमाल करता है. डिवाइस के हिसाब से बनी गाइड देखें. इससे आपको पता चलेगा कि किसी डिवाइस के लिए कौनसी सुविधाएं उपलब्ध हैं:
- कैमरा
- कैमरा (बैटरी)
- Floodlight वाला कैमरा
- कैमरा (वायर्ड)
- डिसप्ले
- डोरबेल
- Doorbell (बैटरी)
- Doorbell (तार वाली)
- थर्मोस्टैट
तरीके
SDM API के लिए उपलब्ध सभी तरीकों के बारे में पूरी जानकारी पाने के लिए, एपीआई का रेफ़रंस देखें.
executeCommand
यह कुकी, अनुमति वाले डिवाइस पर कोई निर्देश लागू करती है.
किसी निर्देश को पूरा करने के लिए, POST कॉल का इस्तेमाल करें. उदाहरण के लिए, थर्मोस्टैट का मोड बदलने के लिए:
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}निर्देशों के अन्य उदाहरण, हर एक ट्रेट के रेफ़रंस पेज पर देखे जा सकते हैं. ज़्यादा जानकारी के लिए, ट्रेट की पूरी सूची देखें.
सदस्यता लें
अनुमति वाले स्ट्रक्चर या डिवाइस के बारे में जानकारी मिलती है.
GET कॉल, एक ऐसा रिस्पॉन्स देता है जिसमें किसी स्ट्रक्चर या डिवाइस के लिए उपलब्ध सभी विशेषताओं के मौजूदा फ़ील्ड और वैल्यू शामिल होती हैं. साथ ही, इसमें `parentRelations' ऑब्जेक्ट भी शामिल होता है. यह ऑब्जेक्ट, मौजूदा संसाधन के पैरंट संसाधन को दिखाता है. यह संसाधन, कोई स्ट्रक्चर या कमरा हो सकता है. user
उदाहरण के लिए, Nest Thermostat से ये नतीजे मिल सकते हैं:
GET /enterprises/project-id/devices/device-id
{
"name" : "enterprises/project-id/devices/device-id",
"type" : "sdm.devices.types.THERMOSTAT",
"assignee" : "enterprises/project-id/structures/structure-id/rooms/room-id",
"traits" : {
"sdm.devices.traits.Connectivity" : {
"status" : "ONLINE"
},
"sdm.devices.traits.Fan" : {
"timerMode" : "ON",
"timerTimeout" : "2019-05-10T03:22:54Z"
},
"sdm.devices.traits.Humidity" : {
"ambientHumidityPercent" : 35.0
},
"sdm.devices.traits.Info" : {
"customName" : "My device"
},
"sdm.devices.traits.Settings" : {
"temperatureScale" : "CELSIUS"
},
"sdm.devices.traits.Temperature" : {
"ambientTemperatureCelsius" : 23.0
},
"sdm.devices.traits.ThermostatEco" : {
"availableModes" : ["MANUAL_ECO", "OFF"],
"mode" : "MANUAL_ECO",
"heatCelsius" : 20.0,
"coolCelsius" : 22.0
},
"sdm.devices.traits.ThermostatHvac" : {
"status" : "HEATING"
},
"sdm.devices.traits.ThermostatMode" : {
"availableModes" : ["HEAT", "COOL", "HEATCOOL", "OFF"],
"mode" : "COOL"
},
"sdm.devices.traits.ThermostatTemperatureSetpoint" : {
"heatCelsius" : 20.0,
"coolCelsius" : 22.0
}
},
"parentRelations" : [
{
"parent" : "enterprises/project-id/structures/structure-id/rooms/room-id",
"displayName" : "Lobby"
}
]
}सूची
अनुमति वाले स्ट्रक्चर, कमरों या डिवाइसों की सूची दिखाता है.
किसी एक ऐक्सेस टोकन के तहत अनुमति पा चुके सभी स्ट्रक्चर, कमरों या डिवाइसों की सूची बनाने के लिए, सही संसाधन एंडपॉइंट के ख़िलाफ़ GET कॉल करें:
GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices
Google Assistant के साथ इंटिग्रेशन
किसी डिवाइस को SDM के लिए अनुमति देने के बाद, Google को होम ग्राफ़ में मौजूद डिवाइस के बारे में पता चल जाता है. साथ ही, वह सीधे तौर पर डिवाइस की स्थिति को मैनेज करता है. अगर आपने Google Assistant को अपने कमर्शियल ऑफ़र के साथ इंटिग्रेट किया है, तो:
- SDM डिवाइसों के लिए, सिंक करने का अनुरोध अनुरोध न भेजें
- SDM डिवाइसों को SYNC intent के जवाबों में शामिल न करें
गड़बड़ियां
एपीआई वाली गड़बड़ियों के कोड की पूरी सूची देखने के लिए, एपीआई वाली गड़बड़ियों के कोड का रेफ़रंस देखें.