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

واجهة برمجة تطبيقات SDM هي واجهة برمجة تطبيقات REST توفِّر طرقًا مختلفة لعرض السمات وتنفيذ أوامر السمات لإدارة أجهزة 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" كجزء من العرض التجاري:

الأخطاء

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