
جميع طُرز Google Nest Thermostat متوافقة مع واجهة برمجة التطبيقات لإدارة الأجهزة الذكية (SDM). تعرض هذه الأجهزة نوع الجهاز THERMOSTAT:
sdm.devices.types.THERMOSTAT
السمات
السمات أو الأوامر أو الأحداث التالية مرتبطة بهذه المجموعة:
السمة | الوصف | الطلبات الصوتية |
---|---|---|
الاتصال | تنتمي هذه السمة إلى أي جهاز يتضمّن معلومات الاتصال بالشبكة. | |
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:
- يتم رفض الطلبات المتعلّقة بالسمة ThermostatTemperatureSetpoint .
- لا تعرض السمة ThermostatTemperatureSetpoint نقاط ضبط درجة الحرارة.
تغيير درجات الحرارة المثلى
لا يمكن تغيير نقاط ضبط درجة الحرارة إلا عندما يكون الترموستات في أحد أوضاع التدفئة أو التبريد أو التدفئة والتبريد، ويجب أن تكون نقاط ضبط درجة الحرارة المسموح بها متوافقة مع الوضع الحالي للثرموستات. لا يمكن تغيير نقاط ضبط درجة الحرارة عندما يكون الوضع "إيقاف" أو عندما يتم ضبط وضع 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 |
لا يمكن ضبط درجة الحرارة عندما يكون الترموستات في وضع "درجات حرارة اقتصادية" اليدوي. |
اطّلِع على مرجع رموز الخطأ في واجهة برمجة التطبيقات للحصول على القائمة الكاملة لرموز الخطأ في واجهة برمجة التطبيقات.