ترموستات

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

sdm.devices.types.THERMOSTAT

الصفات

مَراجع

السمات أو الأوامر أو الأحداث التالية مرتبطة بهذه المجموعة:

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

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

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

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

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

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

تغيير الوضع

يتم إدارة وضع الترموستات من خلال سمتَين مختلفتَين: ThermostatMode و ThermostatEco.

أوضاع عادية

لتغيير وضع الترموستات إلى HEAT أو COOL أو HEATCOOL، استخدِم الأمر SetMode لسمة ThermostatMode.

يمكن أيضًا استخدام هذا الأمر لإيقاف وضع الترموستات. ولا يمكن استخدامه لتشغيل وضع "درجات حرارة اقتصادية".

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

الطلب

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"
  }
}

الرد

{}

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

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

تغيير نقاط ضبط درجة الحرارة

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

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

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

الوضع Command الحقول
الحرارة SetHeat heatCelsius
COOL SetCool coolCelsius
تدفئة SetRange heatCelsius، coolCelsius

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

على سبيل المثال، لتغيير درجة الحرارة المثلى المضبوطة عندما يكون الترموستات في وضع التدفئة، استخدِم الأمر 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، سيتم تشغيل المروحة لمدة تلقائية تبلغ 15 دقيقة.

التحقّق من اتصال الجهاز

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

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

الحمولة

{
  "eventId" : "366dcbfb-2b0d-4c8c-9ad9-2ff7434f1dc7",
  "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" : "1e9d0340-7543-4a6f-b498-7c12a77f0b27",
  "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 لا تتيح بعض طُرز الترموستات تغيير وضع "توفير الطاقة" عندما يكون وضع الترموستات "غير مفعّل"، وذلك وفقًا لسمة ThermostatMode . يجب تغيير وضع الترموستات إلى "التدفئة" أو "التبريد" أو "التدفئة والتبريد" قبل تغيير وضع "التوفير".
مروحة الترموستات غير متاحة. FAILED_PRECONDITION لا يتضمّن الترموستات مروحة. لا يمكن استخدام السمات والأوامر المتعلّقة بالمعجبين مع هذا الجهاز.
لا يُسمح بهذا الأمر عندما يكون الترموستات في وضع MANUAL_ECO. FAILED_PRECONDITION لا يمكن ضبط درجة الحرارة المضبوطة عندما يكون الترموستات في وضع "درجات حرارة اقتصادية" اليدوي.

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