دماپا

همه مدل‌های 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 تنظیم شده باشد:

تغییر نقاط تنظیم دما

نقاط تنظیم دما فقط زمانی قابل‌تغییر است که دماپا در حالت‌های «گرما»، «سرما»، یا «گرما-سرما» باشد، و نقاط تنظیم مجاز با حالت فعلی دماپا مطابقت داشته باشد. وقتی حالت روی «خاموش» تنظیم شده باشد یا وقتی «حالت اقتصادی» روی 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 وقتی دماپا در حالت «بوم‌مصرف» دستی باشد، نمی‌توان نقطه تنظیم دما را تنظیم کرد.

برای فهرست کامل کدهای خطای میانای برنامه‌سازی کاربردی، مرجع کد خطای میانای برنامه‌سازی کاربردی را ببینید.