واجهة برمجة التطبيقات لإدارة الجهاز الذكي

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

السمات

تستخدِم واجهة برمجة التطبيقات SDM نموذجًا مستندًا إلى السمات للحصول على معلومات الجهاز ووظائفه. راجِع أدلة الأجهزة الفردية لمعرفة السمات المتوفّرة لكل جهاز:

الطُرق

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

executeCommand

ينفّذ أمرًا على جهاز معتمد.

استخدِم طلب POST لتنفيذ أمر. على سبيل المثال، لتغيير وضع الترموستات، اتّبِع الخطوات التالية:

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatMode.SetMode",
  "params" : {
    "mode" : "HEAT"
  }
}

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

الحصول على

للحصول على معلومات حول بنية أو جهاز معتمَدَين

تعرض مكالمة GET ردًا واحدًا يتضمّن الحقول والقيم الحالية لجميع السمات المتاحة لبنية أو جهاز سمح لهما user ، بالإضافة إلى عنصر `parentRelations' الذي يمثّل المرجع الرئيسي للمرجع الحالي، سواء كان بنية أو غرفة.

على سبيل المثال، قد يعرض جهاز Nest Thermostat ما يلي:

GET /enterprises/project-id/devices/device-id
{
  "name" : "enterprises/project-id/devices/device-id",
  "type" : "sdm.devices.types.THERMOSTAT",
  "assignee" : "enterprises/project-id/structures/structure-id/rooms/room-id",
  "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
    }
  },
  "parentRelations" : [
    {
      "parent" : "enterprises/project-id/structures/structure-id/rooms/room-id",
      "displayName" : "Lobby"
    }
  ]
}

قائمة

تعرض هذه السمة قائمة بالبُنى أو الغرف أو الأجهزة المصرّح بها.

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

GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices

عمليات الدمج مع "مساعد Google"

بعد منح الإذن لجهاز بالوصول إلى SDM، ستتعرّف Google على الجهاز في قاعدة بيانات Home Graph وستدير حالته مباشرةً. إذا كنت توفّر ميزة الدمج مع "مساعد Google" كجزء من العرض التجاري:

الأخطاء

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