Smart Device Management API

SDM API, özellikleri görüntülemek ve Google Nest cihazlarının yönetimi için özellik komutlarını çalıştırmak için çeşitli yöntemler sağlayan bir REST API'dir. Yetkilendirme işlemi sırasında verilen erişim jetonunu her API çağrısıyla kullanın.

Özellikler

SDM API, cihaz bilgileri ve işlevleri için özellik tabanlı bir model kullanır. Bir cihaz için hangi özelliklerin kullanılabilir olduğunu görmek için cihaz rehberlerini tek tek kontrol edin:

Yöntemler

SDM API'si için kullanılabilen tüm yöntemler hakkında ayrıntılı bilgi edinmek üzere API Referansı'na bakın.

Komut Komutu

Yetkilendirilmiş bir cihazda komut yürütür.

Komut çalıştırmak için POST çağrısı kullanın. Örneğin, termostat modunu değiştirmek için:

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

Her bir özellik referans sayfasında başka komut örnekleri bulunabilir. Daha fazla bilgi için özellik listelemesinin tamamını inceleyin.

get

Yetkili bir yapı veya cihaz hakkında bilgi alır.

Bir GET çağrısı, izin verilen bir yapı veya cihaz için kullanılabilir tüm özelliklere yönelik mevcut alanlar ve değerlerle tek bir yanıt döndürür. Ayrıca, mevcut kaynağın üst kaynağını (yapı veya oda) temsil eden "parentRelations" nesnesi user de döndürür.

Örneğin, bir Nest Thermostat şu bilgileri döndürebilir:

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"
    }
  ]
}

list

Yetkili yapıları, odaları veya cihazları listeler.

Tek bir erişim jetonuyla yetkilendirilen tüm yapıları, odaları veya cihazları listelemek için uygun kaynak uç noktasına karşı bir GET çağrısı yapın:

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

Google Asistan entegrasyonları

Google, bir cihaz SDM için yetkilendirildikten sonra Home Graph'i fark eder ve durumunu doğrudan yönetir. Ticari teklifinizin bir parçası olarak Google Asistan entegrasyonunuz varsa:

Hatalar

API hata kodlarının tam listesini API Hata Kodu Referansı'nda bulabilirsiniz.