
همه مدلهای ترموستات گوگل نست در رابط برنامهنویسی کاربردی (API) مدیریت دستگاه هوشمند (SDM) پشتیبانی میشوند. این دستگاهها نوع دستگاه ترموستات را برمیگردانند:
sdm.devices.types.THERMOSTAT
صفات
مرجع
صفات، دستورات یا رویدادهای زیر به این گروه مربوط میشوند:
| صفت | توضیحات | دستورات |
|---|---|---|
| اتصال | این ویژگی متعلق به هر دستگاهی است که اطلاعات اتصال دارد. | |
| فن | این ویژگی متعلق به هر دستگاهی است که توانایی سیستمی کنترل فن را داشته باشد. | تنظیم تایمر |
| رطوبت | این ویژگی متعلق به هر دستگاهی است که حسگری برای اندازهگیری رطوبت دارد. | |
| اطلاعات | این ویژگی به هر دستگاهی برای اطلاعات مربوط به دستگاه تعلق دارد. | |
| تنظیمات | این ویژگی برای اطلاعات تنظیمات مربوط به هر دستگاهی در نظر گرفته شده است. | |
| دما | این ویژگی متعلق به هر دستگاهی است که دارای حسگر برای اندازهگیری دما باشد. | |
| ترموستات اکو | این ویژگی متعلق به انواع ترموستاتهایی است که از حالتهای اقتصادی (ECO) پشتیبانی میکنند. | حالت تنظیم |
| ترموستات HVAC | این ویژگی متعلق به انواع دستگاههای ترموستات است که میتوانند جزئیات سیستم تهویه مطبوع (HVAC) را گزارش دهند. | |
| حالت ترموستات | این ویژگی متعلق به انواع دستگاههای ترموستات است که از حالتهای مختلف ترموستات پشتیبانی میکنند. | حالت تنظیم |
| ترموستاتدمای تنظیمشده | این ویژگی متعلق به انواع دستگاههای ترموستات است که از تنظیم دمای هدف و محدوده دما پشتیبانی میکنند. | تنظیم گرما ست کول محدوده تنظیم |
جیسون
عدم وجود یک ویژگی (trait) در پاسخ GET نشان میدهد که آن ویژگی یا قابلیت در حال حاضر برای دستگاه در دسترس نیست. برای اطلاعات بیشتر به بخش انواع دستگاه (Device types) مراجعه کنید.
{
"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
}
}
}دما و رطوبت
برای خواندن دمای محیط ترموستات، از ... استفاده کنید.دما ویژگی. دمای محیط در دستگاه اندازهگیری میشود.
برای خواندن رطوبت محیط ترموستات، از ... استفاده کنید.رطوبت ویژگی. رطوبت محیط در دستگاه اندازهگیری میشود.
مقیاس دما
ترموستات گوگل نست میتواند دما را بر حسب درجه سانتیگراد یا فارنهایت نمایش دهد، اما مقیاس آن را نمیتوان توسط SDM API تنظیم کرد. برای تعیین مقیاس دمایی که در حال حاضر توسط کاربر تنظیم شده است، ازتنظیمات صفت.
حالت را تغییر دهید
حالت ترموستات توسط دو ویژگی مختلف مدیریت میشود:حالت ترموستات وترموستات اکو.
حالتهای استاندارد
برای تغییر حالت ترموستات به HEAT، COOL یا HEATCOOL، از دستور SetMode در بخش ThermostatMode استفاده کنید.
این دستور همچنین میتواند برای خاموش کردن حالت ترموستات استفاده شود. اما نمیتوان از آن برای روشن کردن حالت اقتصادی (Eco) استفاده کرد.برای مثال، برای تغییر یکی از حالتهای استاندارد ترموستات:
درخواست
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}
پاسخ
{}
حالت اکو
برای روشن کردن حالت Eco، از MANUAL_ECO به عنوان حالت با دستور SetMode از ویژگی ThermostatEco استفاده کنید:
درخواست
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode",
"params" : {
"mode" : "MANUAL_ECO"
}
}
پاسخ
{}
این دستور بر اساس وضعیت فعلی یا تغییرات حالت Eco، بر سایر ویژگیها تأثیر میگذارد:
- اگر حالت اقتصادی (Eco mode) خاموش باشد، حالت ترموستات به طور پیشفرض روی آخرین حالت استاندارد (گرما، سرما، HEATCOOL یا خاموش) که فعال بوده است، قرار میگیرد.
- اگر حالت اقتصادی (ECO) روی MANUAL_ECO باشد:
- دستورات مربوط به ترموستاتدمای تنظیمشده صفات رد میشوند.
- نقاط تنظیم دما توسط ... برگردانده نمیشوند. ترموستاتدمای تنظیمشده صفت.
نقاط تنظیم دما را تغییر دهید
نقاط تنظیم دما فقط زمانی قابل تغییر هستند که ترموستات در حالتهای HEAT، COOL یا HEATCOOL باشد و نقاط تنظیم مجاز مطابق با حالت فعلی ترموستات باشند. نقاط تنظیم دما را نمیتوان در حالت OFF یا حالت Eco روی MANUAL_ECO تغییر داد.
ترموستات باید قبل از تغییر نقاط تنظیم دما، در حالتی باشد که با دستوری که فراخوانی میشود مطابقت داشته باشد. دستور و فیلد(های) لازم برای تغییر نقطه(های) تنظیم، بسته به حالت ترموستات متفاوت است.
برای مثال، برای صدور دستور SetHeat، ترموستات ابتدا باید در حالت HEAT باشد:
| حالت | فرماندهی | فیلد(ها) |
|---|---|---|
| گرما | تنظیم گرما | heatCelsius |
| خنک | ست کول | coolCelsius |
| خنک کننده حرارتی | محدوده تنظیم | heatCelsius ، coolCelsius |
توجه داشته باشید که دستورات نقطه تنظیم فقط درجه سانتیگراد را به عنوان پارامتر در نظر میگیرند، اگرچه ترموستات Google Nest میتواند دما را هم بر حسب سانتیگراد و هم بر حسب فارنهایت نمایش دهد.
برای مثال، برای تغییر نقطه تنظیم دما هنگامی که ترموستات در حالت HEAT است، از دستور SetHeat از ویژگی ThermostatTemperatureSetpoint استفاده کنید:
درخواست
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat",
"params" : {
"heatCelsius" : 22.0
}
}
پاسخ
{}
نقاط تنظیم حالت اکو
نقاط تنظیم heatCelsius و coolCelsius که توسط ویژگی ThermostatEco برگردانده میشوند، توسط کاربر تنظیم میشوند و از طریق SDM API قابل تغییر نیستند.
فن را روشن یا خاموش کنید
اگر ترموستات از فن پشتیبانی میکند، از دستور SetTimer در ویژگی Fan برای روشن یا خاموش کردن آن استفاده کنید. هنگام روشن کردن، میتوانید مدت زمانی را که میخواهید فن کار کند، بر حسب ثانیه مشخص کنید.
برای مثال، برای روشن کردن فن به مدت یک ساعت:
درخواست
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
پاسخ
{}
اگر فیلد duration حذف شود، فن به صورت پیشفرض ۱۵ دقیقه کار خواهد کرد.
بررسی اتصال دستگاه
اگر دستگاه به دستورات یا ارسال رویدادها پاسخ نمیدهد، یا از API مربوط به دستگاه خطاهایی دریافت میکنید، ازاتصال ویژگی برای بررسی اتصال دستگاه برای وضعیت آفلاین. اتصال دستگاه به اینترنت را بررسی کنید و مطمئن شوید که سرویس Nest فعال است.
اگر رویدادها را فعال کرده باشید، باید یک رویداد منبع نیز دریافت کرده باشید که نشان میدهد دستگاه آفلاین شده است:
بار مفید
{
"eventId" : "b3ed4021-d07f-4924-80f4-2121f18ae71d",
"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"
]
}واکنش به رویدادهای دستگاه
هر تغییری در یک فیلد ویژگی، یک رویداد ایجاد میکند. برای مثال، اگر وضعیت HVAC ترموستات به HEATING تغییر کند، رویداد resourceUpdate زیر را دریافت خواهید کرد:
بار مفید
{
"eventId" : "53fb05e2-ae9e-4665-984f-0f62cfebda62",
"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"
]
}رویدادها برای تمام ویژگیهای مرتبط با این نوع دستگاه فعال میشوند. اگر نیاز دارید به عنوان بخشی از یکپارچهسازی، به رویدادها واکنش نشان دهید، آنها را فعال کنید .
زمانبندی رویدادها
توجه داشته باشید که رویداد مربوط به تغییر وضعیت HVAC ممکن است همزمان با رویدادهای مربوط به تغییر حالت ترموستات ارائه نشود.
برای مثال، گاهی اوقات به منظور محافظت از سیستم HVAC ، در شروع حالت گرمایش یا سرمایش ترموستات تأخیر وجود دارد. در این سناریو، تغییر حالت ترموستات ممکن است در ابتدا فقط رویدادهایی را برای حالت ترموستات و ترموستاتدمای تنظیمشده تغییرات صفت، با ترموستات HVAC تغییر ویژگی بعداً به عنوان یک رویداد جداگانه پس از روشن شدن سیستم ارسال میشود. اگر هیچ تأخیری در روشن شدن سیستم HVAC وجود نداشته باشد، هر سه رویداد همزمان ارسال میشوند.
خطاها
کد(های) خطای زیر ممکن است در رابطه با این دستگاه نمایش داده شوند:
| پیام خطا | آر پی سی | عیبیابی |
|---|---|---|
| ارزش سرمایی باید بیشتر از ارزش گرمایی باشد. | INVALID_ARGUMENT | مطمئن شوید که فیلد heatCelsius در دستور شما کمتر از فیلد coolCelsius باشد. |
| فرمان در حالت ترموستات فعلی مجاز نیست. | FAILED_PRECONDITION | طبق گفته، برخی از مدلهای ترموستات از تغییر حالت Eco هنگام خاموش بودن حالت ترموستات پشتیبانی نمیکنند. حالت ترموستات ویژگی. قبل از تغییر حالت اقتصادی (اکو)، حالت ترموستات باید به HEAT، COOL یا HEATCOOL تغییر یابد. |
| فن ترموستات موجود نیست. | FAILED_PRECONDITION | این ترموستات قابلیت فن ندارد. نمیتوان از ویژگیها و دستورات مربوط به فن برای این دستگاه استفاده کرد. |
| وقتی ترموستات در حالت MANUAL_ECO است، دستور مجاز نیست. | FAILED_PRECONDITION | وقتی ترموستات در حالت دستی Eco قرار دارد، نمیتوان نقطه تنظیم دما را تنظیم کرد. |
برای مشاهده لیست کامل کدهای خطای API به مرجع کدهای خطای API مراجعه کنید.