ترموستات

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

sdm.devices.types.THERMOSTAT

السمات

مراجعJSON

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

السمةالوصفالطلبات الصوتية
الاتصالتنتمي هذه السمة إلى أي جهاز يتضمّن معلومات الاتصال بالشبكة.
Fanتنتمي هذه السمة إلى أي جهاز يمكن للنظام التحكّم فيه من خلال المروحة.SetTimer
الرطوبةتنتمي هذه السمة إلى أي جهاز يحتوي على أداة استشعار لقياس الرطوبة.
المعلوماتتنتمي هذه السمة إلى أي جهاز للحصول على معلومات متعلقة بالجهاز.
الإعداداتتنتمي هذه السمة إلى أي جهاز للحصول على معلومات عن الإعدادات ذات الصلة بالجهاز.
درجة الحرارةتنتمي هذه السمة إلى أي جهاز يحتوي على أداة استشعار لقياس درجة الحرارة.
ThermostatEcoتنتمي هذه السمة إلى أنواع الأجهزة من النوع THERMOSTAT التي تتيح أوضاع ECO.SetMode
ThermostatHvacتنتمي هذه السمة إلى أنواع الأجهزة من النوع THERMOSTAT التي يمكنها الإبلاغ عن تفاصيل التدفئة والتهوية وتكييف الهواء.
ThermostatModeتنتمي هذه السمة إلى أنواع الأجهزة من النوع THERMOSTAT التي تتيح أوضاع ترموستات مختلفة.SetMode
ThermostatTemperatureSetpointتنتمي هذه السمة إلى أنواع الأجهزة من النوع THERMOSTAT التي تتيح ضبط درجة الحرارة المستهدَفة ونطاق درجة الحرارة.SetHeat
SetCool
SetRange

يشير عدم توفّر سمة في استجابة 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:

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

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

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

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

الوضع Command الحقول
الحرارة SetHeat heatCelsius
COOL SetCool coolCelsius
HEATCOOL 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" : "7bfa9f08-b07a-4839-bf2f-3c64b2b40660",
  "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" : "bb46ea3e-e674-4d45-a5da-1eb163bc2b3e",
  "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 . يجب تغيير وضع الترموستات إلى HEAT أو COOL أو HEATCOOL قبل تغيير وضع Eco.
مروحة الترموستات غير متاحة. FAILED_PRECONDITION لا يتضمّن الترموستات مروحة. لا يمكن استخدام السمات والأوامر المتعلّقة بالمعجبين مع هذا الجهاز.
لا يُسمح بهذا الأمر عندما يكون الترموستات في وضع MANUAL_ECO. FAILED_PRECONDITION لا يمكن ضبط درجة الحرارة عندما يكون الترموستات في وضع "درجات حرارة اقتصادية" اليدوي.

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