همه مدلهای ترموستات Google Nest در API مدیریت دستگاه هوشمند (SDM) پشتیبانی میشوند. این دستگاهها نوع دستگاه THERMOSTAT را برمیگردانند:
sdm.devices.types.THERMOSTAT
صفات
مرجع
صفات، دستورات یا رویدادهای زیر مربوط به این گروه است:
صفت | توضیحات | دستورات |
---|---|---|
قابلیت اتصال | این ویژگی متعلق به هر دستگاهی است که اطلاعات اتصال را داشته باشد. | |
فن | این ویژگی متعلق به هر دستگاهی است که توانایی سیستم کنترل فن را داشته باشد. | SetTimer |
رطوبت | این ویژگی متعلق به هر دستگاهی است که دارای سنسور اندازه گیری رطوبت باشد. | |
اطلاعات | این ویژگی به هر وسیله ای برای اطلاعات مربوط به دستگاه تعلق دارد. | |
تنظیمات | این ویژگی به هر دستگاهی برای اطلاعات تنظیمات مربوط به دستگاه تعلق دارد. | |
دما | این ویژگی متعلق به هر دستگاهی است که دارای سنسور اندازه گیری دما باشد. | |
ترموستات اکو | این ویژگی متعلق به انواع دستگاه ترموستات است که از حالت های ECO پشتیبانی می کند. | SetMode |
ترموستات Hvac | این ویژگی متعلق به انواع دستگاه ترموستات است که می تواند جزئیات HVAC را گزارش کند. | |
حالت ترموستات | این ویژگی متعلق به انواع دستگاه ترموستات است که از حالت های مختلف ترموستات پشتیبانی می کند. | SetMode |
ترموستاتTemperatureSetpoint | این ویژگی متعلق به انواع دستگاه ترموستات است که از تنظیم دمای هدف و محدوده دما پشتیبانی می کند. | تنظیم گرما 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 } } }
دما و رطوبت
برای خواندن دمای محیط ترموستات، ازدما صفت دمای محیط در دستگاه اندازه گیری می شود.
برای خواندن رطوبت محیط ترموستات، ازرطوبت صفت رطوبت محیط در دستگاه اندازه گیری می شود.
مقیاس دما
ترموستات Google Nest می تواند دما را در درجه سانتیگراد یا فارنهایت نمایش دهد، اما مقیاس را نمی توان با 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 خاموش باشد، حالت ترموستات به آخرین حالت استاندارد (HEAT، COOL، HEATCOOL یا OFF) که فعال بوده است، پیشفرض میشود.
- اگر حالت Eco MANUAL_ECO است:
- دستورات برای ترموستاتTemperatureSetpoint صفت رد می شوند.
- نقطه تنظیم دما توسط ترموستاتTemperatureSetpoint صفت
تنظیمات دما را تغییر دهید
نقطه تنظیم دما را فقط زمانی می توان تغییر داد که ترموستات در حالت HEAT، COOL، یا HEATCOOL باشد و نقاط تنظیم مجاز مطابق با حالت فعلی ترموستات باشد. هنگامی که حالت خاموش است یا هنگامی که حالت Eco روی MANUAL_ECO تنظیم شده است، نقاط تنظیم دما را نمی توان تغییر داد.
ترموستات باید در حالتی باشد که با فرمانی که قبل از تغییر تنظیمات دما فراخوانی می شود مطابقت دارد. فرمان و فیلد(های) تغییر نقطه(های) تنظیم بر اساس حالت ترموستات متفاوت است.
به عنوان مثال، برای صدور دستور SetHeat، ابتدا ترموستات باید در حالت HEAT باشد:
حالت | فرمان | زمینه(های) |
---|---|---|
گرما | تنظیم گرما | heatCelsius |
باحال | SetCool | coolCelsius |
HEATCOOL | SetRange | 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
حذف شود، فن برای مدت زمان پیش فرض 15 دقیقه کار می کند.
اتصال دستگاه را بررسی کنید
اگر دستگاه به دستورات یا رویدادها پاسخ نمیدهد، یا خطاهایی از API مربوط به دستگاه دریافت میکنید، ازقابلیت اتصال ویژگی بررسی اتصال دستگاه برای وضعیت آفلاین. اتصال دستگاه به اینترنت را بررسی کنید و مطمئن شوید که Nest Service فعال است.
اگر رویدادها را فعال کردهاید، باید یک رویداد منبع نیز دریافت کرده باشید که نشان میدهد دستگاه آفلاین شده است:
بار
{
"eventId" : "9cd3ae0d-1fbf-4c16-9ddc-7e15f1123f32",
"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"
]
}
به رویدادهای دستگاه واکنش نشان دهید
هر تغییری در یک فیلد صفت یک رویداد ایجاد می کند. برای مثال، اگر وضعیت تهویه مطبوع ترموستات به گرمایش تغییر کند، رویداد resourceUpdate
زیر را دریافت خواهید کرد:
بار
{
"eventId" : "d903cad8-0175-4951-980b-57e728b302b2",
"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 وجود دارد. در این سناریو، تغییر حالت ترموستات ممکن است فقط در ابتدا رویدادهایی را برای آن ارسال کند حالت ترموستات و ترموستاتTemperatureSetpoint تغییر صفت، با ترموستات Hvac هنگامی که سیستم واقعاً روشن شد، تغییر صفت بعداً به عنوان یک رویداد جداگانه ارسال می شود. اگر تاخیری در روشن کردن سیستم HVAC وجود نداشت، هر سه رویداد همزمان ارسال میشدند.
خطاها
ممکن است کد(های) خطای زیر در رابطه با این دستگاه برگردانده شود:
پیغام خطا | RPC | عیب یابی |
---|---|---|
مقدار خنک کننده باید بیشتر از مقدار حرارت باشد. | INVALID_ARGUMENT | مطمئن شوید که فیلد heatCelsius کمتر از قسمت coolCelsius در دستور شما باشد. |
فرمان در حالت ترموستات فعلی مجاز نیست. | FAILED_PRECONDITION | با توجه به حالت ترموستات صفت قبل از تغییر حالت Eco، حالت ترموستات باید به HEAT، COOL یا HEATCOOL تغییر یابد. |
فن ترموستات در دسترس نیست. | FAILED_PRECONDITION | ترموستات قابلیت فن ندارد. برای این دستگاه نمی توان از ویژگی ها و دستورات مربوط به فن استفاده کرد. |
هنگام ترموستات در حالت MANUAL_ECO، فرمان مجاز نیست. | FAILED_PRECONDITION | زمانی که ترموستات در حالت Eco دستی است، نقطه تنظیم دما را نمی توان تنظیم کرد. |
برای لیست کامل کدهای خطای API به مرجع کد خطای API مراجعه کنید.