همه مدلهای Google Nest Thermostat در میانای برنامهسازی کاربردی مدیریت دستگاه هوشمند (SDM) پشتیبانی میشوند. این دستگاهها نوع دستگاه THERMOSTAT را برمیگردانند:
sdm.devices.types.THERMOSTAT
ویژگیها
Reference
ویژگیها، فرمانها، یا رویدادهای زیر با این گروه مرتبط است:
| ویژگی | شرح | فرمان |
|---|---|---|
| اتصالپذیری | این ویژگی به هر دستگاهی که اطلاعات اتصالپذیری داشته باشد تعلق دارد. | |
| طرفدار | این مشخصه به هر دستگاهی که قابلیت سیستم کنترل کردن پنکه را داشته باشد تعلق دارد. | SetTimer |
| رطوبت | این مشخصه به هر دستگاهی که حسگری برای اندازهگیری رطوبت دارد تعلق میگیرد. | |
| اطلاعات | این مشخصه به هر دستگاهی برای اطلاعات مربوط به دستگاه تعلق دارد. | |
| تنظیمات | این مشخصه به هر دستگاهی برای اطلاعات تنظیمات مربوط به دستگاه تعلق دارد. | |
| دما | این مشخصه به هر دستگاهی که حسگر اندازهگیری دما دارد تعلق میگیرد. | |
| ThermostatEco | این مشخصه به انواع دستگاههای «ترموستات» که از حالتهای «اقتصادی» پشتیبانی میکنند تعلق دارد. | SetMode |
| ThermostatHvac | این مشخصه به انواع دستگاه «دماپا» تعلق دارد که میتوانند جزئیات «گرمایش و تهویه مطبوع» را گزارش کنند. | |
| ThermostatMode | این مشخصه به انواع دستگاه «دماپا» تعلق دارد که از حالتهای مختلف دماپا پشتیبانی میکنند. | SetMode |
| ThermostatTemperatureSetpoint | این مشخصه به انواع دستگاه «دماپا» تعلق دارد که از تنظیم دمای هدف و محدوده دما پشتیبانی میکنند. | 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
}
}
}دما و رطوبت
برای خواندن دمای محیط دماپا، از ویژگی «دما» استفاده کنید. دمای محیط در دستگاه اندازهگیری میشود.
برای خواندن رطوبت محیط دماپا، از ویژگی رطوبت استفاده کنید. رطوبت محیط در دستگاه اندازهگیری میشود.
مقیاس دما
«دماپای Google Nest» میتواند دما را به سلسیوس یا فارنهایت نمایش دهد، اما مقیاس را نمیتوان با SDM API تنظیم کرد. برای تعیین مقیاس دمایی که کاربر درحالحاضر تنظیم کرده است، از ویژگی تنظیمات استفاده کنید.
تغییر حالت
حالت دماپا با دو مشخصه مختلف مدیریت میشود: ThermostatMode و ThermostatEco.
حالتهای استاندارد
برای تغییر حالت دماپا به «گرما»، «سرما»، یا «گرما-سرما»، از فرمان SetMode ویژگی ThermostatMode استفاده کنید.
از این فرمان همچنین میتوان برای خاموش کردن حالت دماپا استفاده کرد. از آن نمیتوان برای روشن کردن حالت «بومْمصرف» استفاده کرد.برای مثال، برای تغییر یکی از حالتهای استاندارد دماپا:
درخواست
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}
پاسخ
{}
حالت بومْمصرف
برای روشن کردن «حالت بوممصرف»، از MANUAL_ECO بهعنوان حالت با فرمان SetMode از مشخصه ThermostatEco استفاده کنید:
درخواست
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode",
"params" : {
"mode" : "MANUAL_ECO"
}
}
پاسخ
{}
این فرمان براساس وضعیت فعلی «حالت اقتصادی» یا تغییرات آن، بر ویژگیهای دیگر تأثیر میگذارد:
- اگر «حالت بومْمصرف» خاموش باشد، حالت دماپا بهطور پیشفرض روی آخرین حالت استاندارد (گرمایش، سرمایش، سرما-گرما، یا خاموش) که فعال بوده است تنظیم میشود.
- اگر «حالت بوممصرف» روی MANUAL_ECO تنظیم شده باشد:
- فرمانهای مربوط به ویژگی ThermostatTemperatureSetpoint رد میشوند.
- نقاط تنظیم دما توسط ویژگی ThermostatTemperatureSetpoint برگردانده نمیشود.
تغییر نقاط تنظیم دما
نقاط تنظیم دما فقط زمانی قابلتغییر است که دماپا در حالتهای «گرما»، «سرما»، یا «گرما-سرما» باشد، و نقاط تنظیم مجاز با حالت فعلی دماپا مطابقت داشته باشد. وقتی حالت روی «خاموش» تنظیم شده باشد یا وقتی «حالت اقتصادی» روی MANUAL_ECO تنظیم شده باشد، نمیتوان نقطههای تنظیم دما را تغییر داد.
دماپا باید قبلاز تغییر نقاط تنظیم دما در حالت متناسب با فرمان فراخواندهشده باشد. فرمان و فیلد(های) تغییر نقطه(های) تنظیم بسته به حالت دماپا متفاوت است.
برای مثال، برای صدور فرمان SetHeat ، ابتدا باید ترموستات در حالت «گرمایش» باشد:
| حالت | فرمان | فیلد(ها) |
|---|---|---|
| گرما | SetHeat | heatCelsius |
| COOL | SetCool | coolCelsius |
| HEATCOOL | SetRange | heatCelsius، coolCelsius |
توجه داشته باشید که دستورات نقطه تنظیم فقط درجه سلسیوس را بهعنوان پارامتر میپذیرند، اگرچه «دماپای Google Nest» میتواند دما را به درجه سلسیوس یا فارنهایت نمایش دهد.
اگر دماپا در حالت «بوممصرف» باشد، همه فرمانهایبرای مثال، برای تغییر نقطه تنظیم دما وقتی دماپا در حالت «گرمایش» است، از فرمان 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 در ویژگی «پنکه» برای روشن یا خاموش کردن آن استفاده کنید. هنگام روشن کردن، میتوانید مدت زمانی را که میخواهید پنکه کار کند به ثانیه مشخص کنید.
برای مثال، برای روشن کردن پنکه بهمدت یک ساعت:
درخواست
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
پاسخ
{}
اگر فیلد duration حذف شود، پنکه برای مدت پیشفرض ۱۵ دقیقه کار خواهد کرد.
اتصالپذیری دستگاه را بررسی کنید
اگر دستگاه به فرمانها پاسخ نمیدهد یا رویداد ارسال نمیکند، یا خطاهایی از API مربوط به دستگاه دریافت میکنید، از مشخصه اتصالپذیری برای بررسی اتصالپذیری دستگاه برای وضعیت «آفلاین» استفاده کنید. اتصال دستگاه به اینترنت را بررسی کنید و مطمئن شوید خدمات Nest دردسترس باشد.
اگر رویدادها را فعال کرده باشید، باید رویداد منبعی نیز دریافت کرده باشید که نشان میدهد دستگاه آفلاین شده است:
پایهبار
{
"eventId" : "d41a120a-115c-4d49-b7b7-df1940354c3a",
"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" : "60957a95-5bb3-4c27-addf-fe77acde8b99",
"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"
]
}رویدادها برای همه مشخصههای مرتبط با این نوع دستگاه راهاندازی میشوند. اگر نیاز دارید به رویدادها بهنحوی بهعنوان بخشی از یکپارچهسازی واکنش نشان دهید، آنها را فعال کنید.
زمانبندی رویدادها
توجه داشته باشید که رویداد تغییر وضعیت «گرمایش، تهویه، و تهویه مطبوع» ممکن است همزمان با رویدادهای تغییر حالت دماپا ارائه نشود.
برای مثال، گاهی اوقات تأخیری در شروع حالت گرمایش یا سرمایش دماپا وجود دارد تا از سیستم گرمایش، تهویه، و مطبوعسازی محافظت شود. در این سناریو، تغییر حالت دماپا ممکن است در ابتدا فقط رویدادهایی برای ThermostatMode و ThermostatTemperatureSetpoint تغییرات مشخصه ارسال کند، و ThermostatHvac تغییر مشخصه بعداً بهعنوان یک رویداد جداگانه پساز روشن شدن واقعی سیستم ارسال شود. اگر در روشن کردن سیستم گرمایش و تهویه مطبوع تأخیری وجود نداشت، هر سه رویداد در یک زمان ارسال میشدند.
خطاها
کد(های) خطای زیر ممکن است در رابطه با این دستگاه برگردانده شود:
| پیام خطا | RPC | عیبیابی |
|---|---|---|
| مقدار سرمایش باید بیشتر از مقدار گرمایش باشد. | INVALID_ARGUMENT |
مطمئن شوید که فیلد heatCelsius کمتر از فیلد coolCelsius در فرمان شما باشد. |
| فرمان در حالت فعلی دماپا مجاز نیست. | FAILED_PRECONDITION |
طبق ویژگی ThermostatMode، برخیاز مدلهای دماپا از تغییر «حالت بومْمصرف» وقتی حالت دماپا روی «خاموش» تنظیم شده باشد پشتیبانی نمیکنند. قبلاز تغییر دادن حالت «بومْمصرف»، حالت دماپا باید به HEAT (گرمایش)، COOL (سرمایش)، یا HEATCOOL (سرما-گرما) تغییر کند. |
| پنکه دماپا دردسترس نیست. | FAILED_PRECONDITION |
دماپا قابلیت پنکه ندارد. نمیتوان از ویژگیها و فرمانهای مربوط به پنکه برای این دستگاه استفاده کرد. |
| وقتی دماپا در حالت MANUAL_ECO باشد، فرمان مجاز نیست. | FAILED_PRECONDITION |
وقتی دماپا در حالت «بوممصرف» دستی باشد، نمیتوان نقطه تنظیم دما را تنظیم کرد. |
برای فهرست کامل کدهای خطای میانای برنامهسازی کاربردی، مرجع کد خطای میانای برنامهسازی کاربردی را ببینید.