همه مدلهای ترموستات Google Nest در API مدیریت دستگاه هوشمند (SDM) پشتیبانی میشوند. این دستگاهها نوع دستگاه THERMOSTAT را برمیگردانند:
sdm.devices.types.THERMOSTAT
صفات
ارجاع
صفات، دستورات یا رویدادهای زیر مربوط به این گروه است:
صفت | شرح | دستورات |
---|---|---|
اتصال | این ویژگی متعلق به هر دستگاهی است که اطلاعات اتصال را داشته باشد. | |
فن | این ویژگی متعلق به هر دستگاهی است که توانایی سیستم کنترل فن را داشته باشد. | SetTimer |
رطوبت | این ویژگی متعلق به هر دستگاهی است که دارای سنسور اندازه گیری رطوبت باشد. | |
اطلاعات | این ویژگی به هر وسیله ای برای اطلاعات مربوط به دستگاه تعلق دارد. | |
تنظیمات | این ویژگی به هر دستگاهی برای اطلاعات تنظیمات مربوط به دستگاه تعلق دارد. | |
دما | این ویژگی متعلق به هر دستگاهی است که دارای سنسور اندازه گیری دما باشد. | |
ThermostatEco | این ویژگی متعلق به انواع دستگاه ترموستات است که از حالت های ECO پشتیبانی می کند. | تعیین حالت |
ThermostatHvac | این ویژگی متعلق به انواع دستگاه ترموستات است که می تواند جزئیات HVAC را گزارش کند. | |
ThermostatMode | این ویژگی متعلق به انواع دستگاه ترموستات است که از حالت های مختلف ترموستات پشتیبانی می کند. | تعیین حالت |
ThermostatTemperatureSetpoint | این ویژگی متعلق به انواع دستگاه ترموستات است که از تنظیم دمای هدف و محدوده دما پشتیبانی می کند. | تنظیم گرما 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 می تواند دما را در درجه سانتیگراد یا فارنهایت نمایش دهد، اما مقیاس را نمی توان با SDM API تنظیم کرد. برای تعیین مقیاس دما که در حال حاضر توسط کاربر تنظیم شده است، از ویژگیتنظیمات استفاده کنید.
حالت را تغییر دهید
حالت ترموستات توسط دو ویژگی مختلف مدیریت می شود:ThermostatMode وl10n-placeholder316 mostatEco.
حالت های استاندارد
برای تغییر حالت ترموستات به 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 است:
- دستورات برای ویژگی ThermostatTemperatureSetpoint رد می شوند.
- نقطه تنظیم دما توسط ویژگی ThermostatTemperatureSetpoint بر نمی گردد.
تنظیمات دما را تغییر دهید
نقطه تنظیم دما را فقط زمانی می توان تغییر داد که ترموستات در حالت های 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" : "bedd79f6-395f-474d-a537-9e68618bb8e1",
"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" : "2cc744b0-0c9d-4dc2-a9d0-9dbd7c39d747",
"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 وجود دارد. در این سناریو، تغییر حالت ترموستات ممکن است در ابتدا رویدادها را فقط برای ThermostatMode -placeholder19-placeholdern10n-placeholder10 ارسال کند. 60 TemperatureSetpoint تغییرات صفت، با تغییر صفت ThermostatHvac تغییر ویژگی بعداً هنگامی که سیستم واقعاً روشن می شود به عنوان یک رویداد جداگانه ارسال می شود. اگر تاخیری در روشن کردن سیستم HVAC وجود نداشت، هر سه رویداد همزمان ارسال میشدند.
خطاها
ممکن است کد(های) خطای زیر در رابطه با این دستگاه برگردانده شود:
پیغام خطا | RPC | عیب یابی |
---|---|---|
مقدار خنک کننده باید بیشتر از مقدار حرارت باشد. | INVALID_ARGUMENT | مطمئن شوید که فیلد heatCelsius کمتر از قسمت coolCelsius در دستور شما باشد. |
فرمان در حالت ترموستات فعلی مجاز نیست. | FAILED_PRECONDITION | با توجه به ویژگی ThermostatMode-placeholder371 ، برخی از مدلهای ترموستات زمانی که حالت ترموستات خاموش است، از تغییر حالت Eco پشتیبانی نمیکنند. قبل از تغییر حالت Eco، حالت ترموستات باید به HEAT، COOL یا HEATCOOL تغییر یابد. |
فن ترموستات در دسترس نیست. | FAILED_PRECONDITION | ترموستات قابلیت فن ندارد. برای این دستگاه نمی توان از ویژگی ها و دستورات مربوط به فن استفاده کرد. |
هنگام ترموستات در حالت MANUAL_ECO، فرمان مجاز نیست. | FAILED_PRECONDITION | زمانی که ترموستات در حالت Eco دستی است، نقطه تنظیم دما را نمی توان تنظیم کرد. |
برای لیست کامل کدهای خطای API به مرجع کد خطای API مراجعه کنید.