SDM API एक REST API है. यह Google Nest डिवाइसों को मैनेज करने के लिए, ट्रैट देखने और ट्रैट के निर्देशों को लागू करने के कई तरीके उपलब्ध कराता है. इस दौरान दिए गए ऐक्सेस टोकन का इस्तेमाल करें अनुमति देने की प्रक्रिया का इस्तेमाल करता है.
विशेषताएं
SDM API, डिवाइस की जानकारी और सुविधाओं के लिए, विशेषता पर आधारित मॉडल का इस्तेमाल करता है. किसी डिवाइस के लिए कौनसे ट्रैट उपलब्ध हैं, यह जानने के लिए अलग-अलग डिवाइसों के लिए बनी गाइड देखें:
- कैमरा
- कैमरा (बैटरी)
- Floodlight वाला कैमरा
- कैमरा (वायर वाला)
- डिसप्ले
- दरवाज़े की घंटी
- डोरबेल (बैटरी)
- डोरबेल (तार वाली)
- थर्मोस्टैट
तरीके
पूरी जानकारी के लिए, एपीआई का संदर्भ देखें एसडीएम एपीआई के लिए सभी उपलब्ध तरीके देखें.
executeCommand
अनुमति वाले डिवाइस पर कोई निर्देश लागू करता है.
कोई निर्देश लागू करने के लिए, POST
कॉल का इस्तेमाल करें. उदाहरण के लिए, थर्मोस्टैट का मोड बदलने के लिए:
POST /enterprises/project-id/devices/device-id:executeCommand { "command" : "sdm.devices.commands.ThermostatMode.SetMode", "params" : { "mode" : "HEAT" } }
निर्देशों के और उदाहरण हर विशेषता के रेफ़रंस में मिल सकते हैं करें. ज़्यादा जानकारी के लिए, ट्रेट की पूरी लिस्टिंग देखें.
रिवॉर्ड पाएँ
उस स्ट्रक्चर या डिवाइस के बारे में जानकारी देता है जिसे मंज़ूरी मिली है.
GET
कॉल सभी के लिए मौजूदा फ़ील्ड और वैल्यू के साथ एक ही जवाब देता है
लक्षण ऐसी संरचना या डिवाइस के लिए उपलब्ध होते हैं user जिसके पास
अनुमति है और `ParentRelations' ऑब्जेक्ट, जो पैरंट रिसॉर्स को दिखाता है
हो सकता है, चाहे वह कोई स्ट्रक्चर या रूम हो.
उदाहरण के लिए, 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 के साथ इंटिग्रेशन
डिवाइस को एसडीएम इस्तेमाल करने की अनुमति मिलने के बाद, Google को Home ऐप्लिकेशन में उस डिवाइस की जानकारी मिलती है अपनी स्थिति का ग्राफ़ बनाएं और उसे सीधे तौर पर मैनेज करें. अगर आपने व्यावसायिक तौर पर उपलब्ध कराए जाने वाले अपने प्रॉडक्ट के साथ Google Assistant इंटिग्रेशन का इस्तेमाल किया है, तो:
- SDM डिवाइसों के लिए, सिंक करने का अनुरोध न भेजें
- SYNC Intent के जवाबों में, एसडीएम डिवाइसों को शामिल न करें
गड़बड़ियां
एपीआई से जुड़ी गड़बड़ियों के कोड की पूरी सूची के लिए, एपीआई से जुड़ी गड़बड़ी के कोड का रेफ़रंस देखें.