2014-10-16 3 views
7

नेस्ट थर्मोस्टेट डिवाइस स्क्रीन पर प्रदर्शित होगा यदि यह 'शीतलन' या 'हीटिंग' है। मैं इस राज्य को नेस्ट एपीआई के माध्यम से कैसे प्राप्त करूं?नेस्ट एपीआई: थर्मोस्टेट 'हीटिंग' या 'कूलिंग' कब होता है?

hvac_mode संपत्ति बस दिखाने के लिए क्या उपयोगकर्ता के थर्मोस्टेट को नियंत्रित करने में सक्षम है और परिवर्तन नहीं करता है जब या तो ठंडा या हीटिंग होता है लगता है।

अभी के लिए, मैं एक सरल लेकिन नहीं निर्दोष तर्क का उपयोग कर रहा:

if (can_cool && target_temperature < ambient_temperature) --> isCooling 
if (can_heat && target_temperature > ambient_temperature) --> isHeating 
else --> isDoingNothing 

निर्दोष नहीं करके, मेरा मतलब है कि मैं का सामना करना पड़ा स्थितियों है जहां इस तर्क सही नहीं है। उदाहरण के लिए, किसी दिए गए परिस्थिति में जहां ambient_temperature20 Celsius है और target_temperaturecan_heattrue पर सेट है, तो मेरा यूआई कहता है कि थर्मोस्टेट हीटिंग है, जबकि वास्तव में यह नहीं है।

शायद यह इसलिए है क्योंकि लक्ष्य और परिवेश तापमान बहुत करीब हैं, लेकिन मुझे नहीं पता कि सीमा क्या है।

क्या हीटिंग और शीतलन राज्यों को समझने का कोई और बेहतर तरीका है?

उत्तर

4

मई 2015 के रूप में, घोंसला एपीआई अब आधिकारिक तौर परhvac_state संपत्ति की रिपोर्ट। मूल्य या तो 'हीटिंग', 'कूलिंग' या 'ऑफ' में से एक होगा। डाटा मॉडल में

नए क्षेत्रों: hvac_state। आप एचवीएसी_स्टेट का उपयोग यह जानने के लिए करेंगे कि घर एचवीएसी सिस्टम सक्रिय रूप से हीटिंग, कूलिंग या बंद है या नहीं।

+0

क्या आप वास्तव में इस hvac_state को पढ़ने में सक्षम हैं? मेरे असली थर्मोस्टेट (एसडब्ल्यू संस्करण 4.5.1) के साथ यह क्षेत्र थर्मोस्टेट डेटा संरचना के हिस्से के रूप में गायब है और रिपोर्ट नहीं किया गया है। – RawMean

+0

हां, मैंने इसे अपने असली थर्मोस्टेट पर उपयोग किया है - मेरा भी v4.5.1 पर है –

2

एपीआई को देखते हुए, वे यह पहचानने का कोई तरीका नहीं देते हैं कि थर्मोस्टेट वास्तव में हीटिंग कर रहा है या नहीं। पहचानने के लिए सबसे नज़दीक वह है जिसे आपने वर्तमान में लिखा है।

यदि डिवाइस स्वयं ही हीटिंग या शीतलन प्रदर्शित करने में सक्षम है, तो उसके पास पहचानने के लिए अलग-अलग कोड या विभिन्न विधियां (जैसे आंतरिक इलेक्ट्रॉनिक्स) होना चाहिए।

+1

यह सुनिश्चित नहीं है कि एसओ की नीति मेरे निम्नलिखित प्रस्ताव के बारे में क्या है: इस स्थिति में मैं डेवलपर्स से सवाल पूछता हूं कि वे यह कैसे करते हैं ... – DoubleYou

+2

मुझे लगता है कि यह टिंकर के लिए देवताओं के लिए पर्याप्त नियंत्रण देने के लिए नेस्ट की रणनीति का हिस्सा है, लेकिन प्रतिस्थापन ऐप्स बनाने के लिए पर्याप्त नहीं है - जब आप शेड्यूल को देख या संपादित नहीं कर सकते हैं, या वर्तमान स्थिति को पढ़ सकते हैं, या किसी भी प्रकार का API प्राप्त नहीं कर सकते हैं खुद नेस्ट से समर्थन, आप काफी हानिरहित हैं। – thesimm

0

अफसोस की बात है कि आप सही हैं - एपीआई इस जानकारी को प्रकट नहीं करता है।

my application में मैंने आपके जैसा ही तर्क लागू किया है, और किनारे के मामलों के आसपास एक ही समस्या को देखा है। मुझे संदेह है कि इसके लिए समय-तत्व हो सकता है जब परिवेश का तापमान लक्ष्य तापमान के बाहर केवल एक डिग्री या उससे कम हो।

-1

आपको ठीक से गणना करने के लिए हीट ऑन/ऑफ की स्थिति को ट्रैक करने की आवश्यकता है। मैं एनईईटी की निगरानी 1 हर्ट्ज पर करता हूं और एक चर के रूप में अंतिम स्थिति (चालू या बंद) स्टोर करता हूं। एक बार आप इस जानकारी है तो आप निम्न तर्क का उपयोग कर सकते हैं और यह सही हो जाएगा:

if lastStatus.Contains("Off")) 
{ 
    if (temp_current < temp_setpoint) 
     status = "Heat On"; 
    else 
     status = "Heat Off"; 
} 
else if (lastStatus.Contains("On")) 
{ 
    if (temp_current > temp_setpoint) 
     status = "Heat Off"; 
    else 
     status = "Heat On"; 
} 
// Do the work.... 
lastStatus=status; 

नोट: temp_current और temp_setpoint बाकी http पद से चुना जाता है। शुभकामनाएँ!

संबंधित मुद्दे