از API استفاده کنید

با در دست داشتن یک نشانه دسترسی و تماس اولیه با لیست دستگاه، اکنون آماده استفاده از SDM API برای دسترسی و کنترل دستگاه خود هستید.

ساختارها و دستگاه ها را فهرست کنید

از curl برای برقراری تماس ساده GET با نقطه پایانی structures استفاده کنید:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

یک تماس موفق، فهرستی از ساختارهای حساب‌های مرتبط با شما را برمی‌گرداندDevice Access پروژه:

{
  "structures": [
    {
      "name": "enterprises/project-id/structures/structure-id",
      "traits": {
        "sdm.structures.traits.Info": {
          "customName": "structure-name"
        }
      }
    }
  ]
}

اگر قبلاً این کار را نکرده‌اید، برای دریافت لیستی از دستگاه‌ها، با نقطه پایانی devices تماس بگیرید:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

یک تماس موفق، فهرستی از دستگاه‌های مرتبط با شما را برمی‌گرداند Device Accessپروژه هر دستگاه لیست منحصر به فرد خود را از ویژگی های موجود دارد:

{
  "devices": [
    {
      "name": "enterprises/project-id/devices/device-id",
      "type": "sdm.devices.types.device-type",
      "traits": { ... },
      "parentRelations": [
        {
          "parent": "enterprises/project-id/structures/structure-id/rooms/room-id",
          "displayName": "device-room-name"
        }
      ]
    }
  ]
}

device-id را برای هر دستگاه کپی کنید، برای سایر تماس‌های API به آن نیاز دارید.

دریافت اطلاعات برای یک دستگاه

برای دریافت اطلاعات یک دستگاه خاص، یک تماس GET با نقطه پایانی device-id برقرار کنید:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

پاسخ باید مانند قبل باشد، اما فقط برای دستگاه خاص:

{
  "name": "enterprises/project-id/devices/device-id",
  "type": "sdm.devices.types.device-type",
  "traits": { ... },
  "parentRelations": [
    {
      "parent": "enterprises/project-id/structures/structure-id/rooms/room-id",
      "displayName": "device-room-name"
    }
  ]
}

یک دستور را اجرا کنید

پس از تأیید اعتبار دسترسی خود با یک تماس موفق GET، بسته به نوع دستگاهی که مجاز کرده اید، سعی کنید دستوری را اجرا کنید:

ترموستات

curl -X POST \
  'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id:executeCommand' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer access-token' \
  --data-raw '{
    "command" : "sdm.devices.commands.ThermostatMode.SetMode",
    "params" : {
      "mode" : "HEAT"
    }
  }'

دوربین

curl -X POST \
  'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id:executeCommand' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer access-token' \
  --data-raw '{
    "command" : "sdm.devices.commands.CameraLiveStream.GenerateRtspStream",
    "params" : {}
  }'

اگر تماس شما موفقیت آمیز باشد، نتایج زیر رخ می دهد:

ترموستات

شما یک پاسخ خالی دریافت می کنید و ترموستات فیزیکی حالت فعلی خود را به حالت مشخص شده در پارامترهای فرمان تغییر می دهد.

{}

دوربین

شما یک URL پخش زنده و نشانه های مرتبط دریافت می کنید.

{
  "results" : {
    "streamUrls" : {
      "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken"
    },
    "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
    "streamToken" : "g.0.streamingToken",
    "expiresAt" : "2018-01-04T18:30:00.000Z"
  }
}

عیب یابی

بدون احراز هویت

توکن های دسترسی برای SDM API فقط برای 1 ساعت معتبر هستند. اگر پاسخ تأیید نشده دریافت کردید، احتمالاً توکن منقضی شده است. برای دریافت نشانه دسترسی جدید ، از رمز به‌روزرسانی خود استفاده کنید .

سایر خطاها

برای لیست کامل به مرجع کد خطا مراجعه کنید Device Access کدهای خطا