جميع طُرز 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:
- يتم رفض الطلبات المتعلّقة بالسمة ThermostatTemperatureSetpoint .
- لا تعرض السمة ThermostatTemperatureSetpoint نقاط ضبط درجة الحرارة.
تغيير نقاط ضبط درجة الحرارة
لا يمكن تغيير نقاط ضبط درجة الحرارة إلا عندما يكون الترموستات في أحد أوضاع التدفئة أو التبريد أو التدفئة والتبريد، ويجب أن تكون نقاط ضبط درجة الحرارة المسموح بها متوافقة مع الوضع الحالي للثرموستات. لا يمكن تغيير نقاط ضبط درجة الحرارة عندما يكون الوضع "إيقاف" أو عندما يتم ضبط وضع "توفير الطاقة" على 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 |
لا يمكن ضبط درجة الحرارة المضبوطة عندما يكون الترموستات في وضع "درجات حرارة اقتصادية" اليدوي. |
يمكنك الاطّلاع على مرجع رمز خطأ واجهة برمجة التطبيقات للحصول على قائمة كاملة برموز أخطاء واجهة برمجة التطبيقات.