Google Nest Thermostat के सभी मॉडल, Smart Device Management (SDM) API के साथ काम करते हैं. ये डिवाइस, THERMOSTAT डिवाइस टाइप दिखाते हैं:
sdm.devices.types.THERMOSTAT
विशेषताएं
संदर्भ
इस ग्रुप से जुड़ी ये विशेषताएं, निर्देश या इवेंट हैं:
| विशेषता | ब्यौरा | निर्देश |
|---|---|---|
| कनेक्टिविटी | यह विशेषता, कनेक्टिविटी की जानकारी वाले हर डिवाइस में होती है. | |
| पंखे वाला | यह विशेषता, पंखे को कंट्रोल करने की सुविधा वाले हर डिवाइस में होती है. | SetTimer |
| नमी | यह विशेषता, नमी मापने के लिए सेंसर वाले हर डिवाइस में होती है. | |
| जानकारी | यह विशेषता, डिवाइस से जुड़ी जानकारी वाले हर डिवाइस में होती है. | |
| सेटिंग | यह विशेषता, डिवाइस से जुड़ी सेटिंग की जानकारी वाले हर डिवाइस में होती है. | |
| तापमान | यह विशेषता, तापमान मापने के लिए सेंसर वाले हर डिवाइस में होती है. | |
| ThermostatEco | यह विशेषता, THERMOSTAT डिवाइस टाइप के उन डिवाइसों में होती है जो ईको मोड के साथ काम करते हैं. | SetMode |
| ThermostatHvac | यह विशेषता, THERMOSTAT डिवाइस टाइप के उन डिवाइसों में होती है जो एचवीएसी की जानकारी दे सकते हैं. | |
| ThermostatMode | यह विशेषता, THERMOSTAT डिवाइस टाइप के उन डिवाइसों में होती है जो थर्मोस्टैट के अलग-अलग मोड के साथ काम करते हैं. | SetMode |
| ThermostatTemperatureSetpoint | यह विशेषता, THERMOSTAT डिवाइस टाइप के उन डिवाइसों में होती है जो टारगेट तापमान और तापमान की रेंज सेट करने की सुविधा के साथ काम करते हैं. | SetHeat SetCool SetRange |
JSON
GET के जवाब में किसी विशेषता का न होना, यह दिखाता है कि फ़िलहाल, वह विशेषता या सुविधा डिवाइस के लिए उपलब्ध नहीं है. ज़्यादा जानकारी के लिए, डिवाइस टाइप देखें.
{
"type" : "sdm.devices.types.THERMOSTAT",
"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
}
}
}तापमान और नमी
थर्मोस्टैट के आस-पास के तापमान को पढ़ने के लिए,Temperature विशेषता का इस्तेमाल करें. आस-पास का तापमान, डिवाइस पर मापा जाता है.
थर्मोस्टैट के आस-पास की नमी को पढ़ने के लिए,Humidity विशेषता का इस्तेमाल करें. आस-पास की नमी, डिवाइस पर मापी जाती है.
तापमान का पैमाना
Google Nest Thermostat, तापमान को डिग्री सेल्सियस या फ़ारेनहाइट में दिखा सकता है. हालांकि, SDM API की मदद से तापमान का पैमाना सेट नहीं किया जा सकता. उपयोगकर्ता ने फ़िलहाल तापमान का कौन सा पैमाना सेट किया है, यह जानने के लिए Settings trait का इस्तेमाल करें.
मोड बदलना
थर्मोस्टैट के मोड को दो अलग-अलग विशेषताओं से मैनेज किया जाता है: ThermostatMode और ThermostatEco.
स्टैंडर्ड मोड
थर्मोस्टैट के मोड को HEAT, COOL या HEATCOOL में बदलने के लिए, ThermostatMode विशेषता के SetMode निर्देश का इस्तेमाल करें.
इस निर्देश का इस्तेमाल, थर्मोस्टैट के मोड को OFF पर सेट करने के लिए भी किया जा सकता है. इसका इस्तेमाल, ईको मोड को चालू करने के लिए नहीं किया जा सकता.उदाहरण के लिए, थर्मोस्टैट के किसी स्टैंडर्ड मोड को बदलने के लिए:
अनुरोध
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}
जवाब
{}
ईको मोड
ईको मोड को चालू करने के लिए, ThermostatEco विशेषता के SetMode निर्देश के साथ, मोड के तौर पर MANUAL_ECO का इस्तेमाल करें:
अनुरोध
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode",
"params" : {
"mode" : "MANUAL_ECO"
}
}
जवाब
{}
ईको मोड की मौजूदा स्थिति या उसमें किए गए बदलावों के आधार पर, यह निर्देश अन्य विशेषताओं पर असर डालता है:
- अगर ईको मोड बंद है, तो थर्मोस्टैट का मोड डिफ़ॉल्ट रूप से, आखिरी बार चालू किए गए स्टैंडर्ड मोड (HEAT, COOL, HEATCOOL या OFF) पर सेट हो जाएगा.
- अगर ईको मोड MANUAL_ECO पर सेट है, तो:
तापमान के सेटपॉइंट बदलना
तापमान के सेटपॉइंट सिर्फ़ तब बदले जा सकते हैं, जब थर्मोस्टैट HEAT, COOL या HEATCOOL मोड में हो. साथ ही, सेटपॉइंट थर्मोस्टैट के मौजूदा मोड के हिसाब से सेट किए जा सकते हैं. मोड OFF होने पर या ईको मोड को MANUAL_ECO पर सेट करने पर, तापमान के सेटपॉइंट नहीं बदले जा सकते.
तापमान के सेटपॉइंट बदलने से पहले, थर्मोस्टैट को उस मोड में सेट करना ज़रूरी है जो कॉल किए जा रहे निर्देश के हिसाब से हो. सेटपॉइंट बदलने के लिए इस्तेमाल किया जाने वाला निर्देश और फ़ील्ड, थर्मोस्टैट के मोड के हिसाब से अलग-अलग होते हैं.
उदाहरण के लिए, SetHeat निर्देश जारी करने के लिए, थर्मोस्टैट को पहले HEAT मोड में सेट करना होगा:
| मोड | निर्देश | फ़ील्ड |
|---|---|---|
| HEAT | SetHeat | heatCelsius |
| COOL | SetCool | coolCelsius |
| HEATCOOL | SetRange | heatCelsius, coolCelsius |
ध्यान दें कि सेटपॉइंट के निर्देश, पैरामीटर के तौर पर सिर्फ़ डिग्री सेल्सियस में तापमान लेते हैं. हालांकि, Google Nest Thermostat, तापमान को डिग्री सेल्सियस या फ़ारेनहाइट में दिखा सकता है.
उदाहरण के लिए, थर्मोस्टैट के HEAT मोड में होने पर, तापमान के सेटपॉइंट को बदलने के लिए, SetHeat निर्देश का इस्तेमाल करें:
अनुरोध
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat",
"params" : {
"heatCelsius" : 22.0
}
}
जवाब
{}
ईको मोड के सेटपॉइंट
ThermostatEco विशेषता से मिलने वाले heatCelsius और coolCelsius सेटपॉइंट, उपयोगकर्ता सेट करता है. इन्हें SDM API की मदद से नहीं बदला जा सकता.
पंखे को चालू या बंद करना
अगर थर्मोस्टैट में पंखे की सुविधा है, तो उसे चालू या बंद करने के लिए, Fan विशेषता के SetTimer निर्देश का इस्तेमाल करें. पंखे को चालू करते समय, यह बताया जा सकता है कि उसे कितने सेकंड तक चलाना है.
उदाहरण के लिए, पंखे को एक घंटे तक चलाने के लिए:
अनुरोध
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
जवाब
{}
अगर duration फ़ील्ड को छोड़ दिया जाता है, तो पंखा डिफ़ॉल्ट रूप से 15 मिनट तक चलेगा.
डिवाइस की कनेक्टिविटी की जांच करना
अगर डिवाइस, निर्देशों का जवाब नहीं दे रहा है या इवेंट नहीं भेज रहा है या आपको डिवाइस से जुड़े एपीआई से गड़बड़ियां मिल रही हैं, तो डिवाइस की कनेक्टिविटी की जांच करने के लिए, Connectivity trait का इस्तेमाल करें. इससे यह पता चलेगा कि डिवाइस ऑफ़लाइन है या नहीं. डिवाइस के इंटरनेट से कनेक्शन की जांच करें और पक्का करें कि Nest Service चालू है.
अगर आपने इवेंट की सुविधा चालू की है, तो आपको संसाधन इवेंट भी मिला होगा. इससे पता चलता है कि डिवाइस ऑफ़लाइन हो गया है:
पेलोड
{
"eventId" : "6ac04910-dab8-40c0-8d16-63645e9b801c",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.Connectivity" : {
"status" : "OFFLINE"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}डिवाइस के इवेंट पर प्रतिक्रिया करना
किसी विशेषता के फ़ील्ड में बदलाव होने पर, एक इवेंट जनरेट होता है.
उदाहरण के लिए, अगर थर्मोस्टैट की एचवीएसी स्थिति बदलकर HEATING हो जाती है, तो आपको resourceUpdate का यह इवेंट मिलेगा:
पेलोड
{
"eventId" : "1dc5ae6d-7334-4a71-8bb1-3e50d452a322",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.ThermostatHvac" : {
"status" : "HEATING"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}इस डिवाइस टाइप से जुड़ी सभी विशेषताओं के लिए, इवेंट ट्रिगर होते हैं. अगर आपको इंटिग्रेशन के तहत, किसी तरह से इवेंट पर प्रतिक्रिया करनी है, तो इवेंट की सुविधा चालू करें.
इवेंट का समय
ध्यान दें कि एचवीएसी की स्थिति में बदलाव का इवेंट, थर्मोस्टैट के मोड में बदलाव के इवेंट के साथ डिलीवर नहीं किया जा सकता.
उदाहरण के लिए, कभी-कभी एचवीएसी सिस्टम को सुरक्षित रखने के लिए, थर्मोस्टैट के हीटिंग या कूलिंग मोड को शुरू करने में देरी होती है. a इस स्थिति में, थर्मोस्टैट के मोड में बदलाव करने पर, शुरू में सिर्फ़ ThermostatMode और ThermostatTemperatureSetpoint trait में बदलाव के इवेंट भेजे जा सकते हैं. इसके बाद, सिस्टम के चालू होने पर, ThermostatHvac trait में बदलाव का इवेंट अलग से इवेंट भेजा जाता है. अगर एचवीएसी सिस्टम को चालू करने में कोई देरी नहीं हुई, तो सभी तीनों इवेंट एक साथ भेजे जाएंगे.
गड़बड़ियां
इस डिवाइस के लिए, गड़बड़ी के ये कोड दिखाए जा सकते हैं:
| गड़बड़ी का मैसेज | RPC | समस्या का हल |
|---|---|---|
| कूल की वैल्यू, हीट की वैल्यू से ज़्यादा होनी चाहिए. | INVALID_ARGUMENT |
पक्का करें कि आपके निर्देश में, heatCelsius फ़ील्ड की वैल्यू, coolCelsius फ़ील्ड की वैल्यू से कम हो. |
| थर्मोस्टैट के मौजूदा मोड में, इस निर्देश का इस्तेमाल नहीं किया जा सकता. | FAILED_PRECONDITION |
ThermostatModetrait के मुताबिक, थर्मोस्टैट के कुछ मॉडल, थर्मोस्टैट का मोड OFF होने पर, ईको मोड को बदलने की सुविधा के साथ काम नहीं करते. ईको मोड को बदलने से पहले, थर्मोस्टैट के मोड को HEAT, COOL या HEATCOOL पर सेट करना ज़रूरी है. |
| थर्मोस्टैट का पंखा उपलब्ध नहीं है. | FAILED_PRECONDITION |
थर्मोस्टैट में पंखे की सुविधा नहीं है. इस डिवाइस के लिए, पंखे से जुड़ी विशेषताओं और निर्देशों का इस्तेमाल नहीं किया जा सकता. |
| थर्मोस्टैट के MANUAL_ECO मोड में होने पर, इस निर्देश का इस्तेमाल नहीं किया जा सकता. | FAILED_PRECONDITION |
थर्मोस्टैट के मैन्युअल ईको मोड में होने पर, तापमान का सेटपॉइंट सेट नहीं किया जा सकता. |
एपीआई के गड़बड़ी कोड की पूरी सूची देखने के लिए, एपीआई के गड़बड़ी कोड का रेफ़रंस देखें.