ترموستات

تتوفّر جميع طُرز Google Nest Thermostat في واجهة برمجة التطبيقات Smart Device Management (SDM). تعرض هذه الأجهزة نوع الجهاز THERMOSTAT:

sdm.devices.types.THERMOSTAT

الصفات

مراجع

تتعلّق الصفات أو الأوامر أو الأحداث التالية بهذه المجموعة:

السمةالوصفالطلبات الصوتية
إمكانية الاتصالتنتمي هذه الصفة إلى أي جهاز يتضمّن معلومات حول إمكانية الاتصال.
المروحةتنتمي هذه الصفة إلى أي جهاز لديه إمكانية التحكّم في المروحة.SetTimer
الرطوبةتنتمي هذه السمة إلى أي جهاز يتضمّن أداة استشعار لقياس الرطوبة.
معلوماتتنتمي هذه الصفة إلى أي جهاز يتضمّن معلومات ذات صلة بالجهاز.
الإعداداتتنتمي هذه الصفة إلى أي جهاز يتضمّن معلومات حول الإعدادات ذات الصلة بالجهاز.
درجة الحرارةتنتمي هذه الصفة إلى أي جهاز يتضمّن مستشعرًا لقياس درجة الحرارة.
ThermostatEcoتنتمي هذه السمة إلى أنواع أجهزة THERMOSTAT التي تتيح أوضاع درجات الحرارة الاقتصادية.SetMode
ThermostatHvacتنتمي هذه السمة إلى أنواع أجهزة THERMOSTAT التي يمكنها عرض تفاصيل التدفئة والتهوية وتكييف الهواء.
ThermostatModeتنتمي هذه الصفة إلى أنواع أجهزة THERMOSTAT التي تتيح أوضاعًا مختلفة للترموستات.SetMode
ThermostatTemperatureSetpointتنتمي هذه الصفة إلى أنواع أجهزة THERMOSTAT التي تتيح ضبط درجة الحرارة المستهدَفة ونطاق درجة الحرارة.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
    }
  }
}

درجة الحرارة والرطوبة

لقراءة درجة الحرارة المحيطة بالترموستات، استخدِم صفة Temperature . يتم قياس درجة الحرارة المحيطة بالجهاز.

لقراءة الرطوبة المحيطة بالترموستات، استخدِم صفة Humidity . يتم قياس الرطوبة المحيطة بالجهاز.

مقياس درجة الحرارة

يمكن لجهاز Google Nest Thermostat عرض درجة الحرارة إما بالدرجات المئوية أو الفهرنهايتية، ولكن لا يمكن ضبط المقياس من خلال واجهة برمجة التطبيقات SDM. لتحديد مقياس درجة الحرارة الذي ضبطه المستخدم حاليًا، استخدِم صفة Settings .

تغيير الوضع

يتم التحكّم في وضع الترموستات من خلال صفتَين مختلفتَين: ThermostatMode و ThermostatEco.

الأوضاع العادية

لتغيير وضع الترموستات إلى HEAT أو COOL أو HEATCOOL، استخدِم الأمر 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"
  }
}

الردّ

{}

يؤثّر هذا الأمر في الصفات الأخرى استنادًا إلى الحالة الحالية لوضع "درجات حرارة اقتصادية" أو التغييرات التي يتم إجراؤها عليه:

  • إذا كان وضع "درجات حرارة اقتصادية" متوقفًا، سيتم ضبط وضع الترموستات تلقائيًا على آخر وضع عادي (HEAT أو COOL أو HEATCOOL أو OFF) كان نشطًا.
  • إذا كان وضع "درجات حرارة اقتصادية" هو MANUAL_ECO:

تغيير درجات الحرارة المثلى

لا يمكن تغيير درجات الحرارة المثلى إلا عندما يكون الترموستات في وضع HEAT أو COOL أو HEATCOOL، وتتطابق درجات الحرارة المثلى المسموح بها مع الوضع الحالي للترموستات. لا يمكن تغيير درجات الحرارة المثلى عندما يكون الوضع OFF أو عندما يتم ضبط وضع "درجات حرارة اقتصادية" على MANUAL_ECO.

يجب أن يكون الترموستات في الوضع الذي يتطابق مع الأمر الذي يتم استدعاؤه قبل تغيير درجات الحرارة المثلى. يختلف الأمر والحقول اللازمة لتغيير ضبط درجة الحرارة المثلى حسب وضع الترموستات.

على سبيل المثال، لإصدار الأمر SetHeat ، يجب أولاً ضبط الترموستات على وضع HEAT:

الوضع الأمر الحقول
HEAT SetHeat heatCelsius
COOL SetCool coolCelsius
HEATCOOL SetRange heatCelsius وcoolCelsius

يُرجى العِلم أنّ أوامر درجات الحرارة المثلى لا تقبل إلا الدرجات المئوية كمعلَمة، على الرغم من أنّ جهاز Google Nest Thermostat يمكنه عرض درجة الحرارة إما بالدرجات المئوية أو الفهرنهايتية.

على سبيل المثال، لتغيير درجة الحرارة المثلى عندما يكون الترموستات في وضع 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.

تشغيل المروحة أو إيقافها

إذا كان الترموستات يتيح استخدام مروحة، استخدِم الأمر SetTimer في صفة Fan لتشغيلها أو إيقافها. عند تشغيلها، يمكنك تحديد المدة التي تريد أن تعمل فيها المروحة بالثواني.

على سبيل المثال، لتشغيل المروحة لمدة ساعة:

طلب

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.Fan.SetTimer",
  "params" : {
    "timerMode" : "ON",
    "duration" : "3600s"
  }
}

الردّ

{}

إذا تم حذف الحقل duration، ستعمل المروحة لمدة تلقائية تبلغ 15 دقيقة.

التحقّق من إمكانية اتصال الجهاز

إذا كان الجهاز لا يستجيب للأوامر أو لا يرسل الأحداث، أو إذا تلقّيت أخطاء من واجهة برمجة التطبيقات ذات صلة بالجهاز، استخدِم صفة Connectivity للتحقّق من إمكانية اتصال الجهاز بحثًا عن الحالة OFFLINE. تحقَّق من اتصال الجهاز بالإنترنت وتأكَّد من أنّ خدمة Nest Service تعمل بشكل سليم.

إذا كانت الأحداث مفعّلة، من المفترض أن تكون قد تلقّيت أيضًا حدثًا للمورد يشير إلى أنّ الجهاز أصبح غير متصل بالإنترنت:

الحمولة

{
  "eventId" : "6ac04910-dab8-40c0-8d16-63645e9b801c",
  "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 التالي إذا تغيّرت حالة نظام التدفئة والتهوية وتكييف الهواء في الترموستات إلى HEATING:

الحمولة

{
  "eventId" : "1dc5ae6d-7334-4a71-8bb1-3e50d452a322",
  "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 لاحقًا كحدث منفصل بعد تشغيل النظام فعليًا. إذا لم يكن هناك تأخير في تشغيل نظام التدفئة والتهوية وتكييف الهواء، سيتم إرسال الأحداث الثلاثة في الوقت نفسه.

الأخطاء

قد يتم عرض رموز الخطأ التالية ذات الصلة بهذا الجهاز:

رسالة الخطأ متوسط عائد النقرة تحديد المشاكل وحلّها
يجب أن تكون قيمة التبريد أكبر من قيمة التدفئة. INVALID_ARGUMENT تأكَّد من أنّ الحقل heatCelsius أقل من الحقل coolCelsius في الأمر.
هذا الأمر غير مسموح به في وضع الترموستات الحالي. FAILED_PRECONDITION لا تتيح بعض طُرز الترموستات تغيير وضع "درجات حرارة اقتصادية" عندما يكون وضع الترموستات OFF، وفقًا لسمة ThermostatMode . يجب تغيير وضع الترموستات إلى HEAT أو COOL أو HEATCOOL قبل تغيير وضع "درجات حرارة اقتصادية".
مروحة الترموستات غير متوفّرة. FAILED_PRECONDITION لا يتضمّن الترموستات إمكانية استخدام مروحة. لا يمكن استخدام الصفات والأوامر ذات الصلة بالمروحة لهذا الجهاز.
هذا الأمر غير مسموح به عندما يكون الترموستات في وضع MANUAL_ECO. FAILED_PRECONDITION لا يمكن ضبط درجة الحرارة المثلى عندما يكون الترموستات في وضع "درجات حرارة اقتصادية" اليدوي.

يمكنك الاطّلاع على مرجع رموز الخطأ في واجهة برمجة التطبيقات للحصول على القائمة الكاملة بهذه الرموز.