action.devices.SYNC

Mit diesem Intent wird die Liste der Geräte angefordert, die mit dem angegebenen Nutzer verknüpft sind, sowie deren Funktionen.

Er wird während der Kontoverknüpfung oder ausgelöst, wenn ein Nutzer seine Geräte manuell neu synchronisiert. Ihre Fulfillment-Antwort sollte die unterstützten Traits und Attribute für jedes Gerät enthalten.

Ihre SYNC-Antwort sollte alle Geräte zurückgeben, die mit dem Nutzer verknüpft sind. Dadurch wird nicht bestimmt, ob ein bestimmtes Gerät erreichbar ist. Das wird durch die QUERY und EXECUTE Antworten erledigt.

Weitere Informationen finden Sie unter Identifizieren und synchronisieren.

Anfrageformat

Felder Typ Beschreibung
requestId String

Erforderlich.

ID der Anfrage.

inputs Array

Erforderlich.

Liste der Eingaben, die der Intent-Anfrage entsprechen.

[item, ...] Objekt

Typ und Nutzlast, die mit der Intent-Anfrage verknüpft sind.

intent

Erforderlich.

(Konstanter Wert: "action.devices.SYNC")

Typ der Intent-Anfrage.

Beispiele

SYNC-Intent-Anfrage

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}

Antwortformat

Felder Typ Beschreibung
requestId String

Erforderlich.

ID der entsprechenden Anfrage.

payload Objekt

Erforderlich.

Nutzlast der Intent-Antwort.

agentUserId String

Erforderlich.

Gibt die eindeutige (und unveränderliche) Nutzer-ID auf der Plattform des Agenten an. Der String ist für Google undurchsichtig. Wenn es auf der Seite des Agenten eine unveränderliche und eine veränderliche Form gibt, verwenden Sie die unveränderliche Form (z. B. eine Kontonummer anstelle einer E‑Mail-Adresse).

errorCode String

Für systematische Fehler bei der Synchronisierung.

debugString String

Detaillierter Fehler, der Nutzern nie angezeigt wird, aber protokolliert oder während der Entwicklung verwendet werden kann.

devices Array

Erforderlich.

Liste der Geräte, die dem Nutzer gehören. Es werden null oder mehr Geräte zurückgegeben. Null Geräte bedeutet, dass der Nutzer keine Geräte hat oder alle Geräte getrennt hat.

[item, ...] Objekt

Gerätemetadaten.

id String

Erforderlich.

Die ID des Geräts in der Cloud des Entwicklers. Diese ID muss für den Nutzer und den Entwickler eindeutig sein, da wir sie in Fällen der Freigabe verwenden können, um mehrere Ansichten desselben Geräts zu deduplizieren. Sie sollte für das Gerät unveränderlich sein. Wenn sie sich ändert, behandelt der Assistant das Gerät als neues Gerät.

type String

Erforderlich.

Der Hardwaretyp des Geräts.

Muss mit dem folgenden Muster übereinstimmen: ^action.devices.types.[a-zA-z]+$.

traits Array

Erforderlich.

Liste der Traits, die dieses Gerät hat. Dadurch werden die Befehle, Attribute und Status definiert, die das Gerät unterstützt.

[item, ...] String

Name des unterstützten Traits.

Muss mit dem folgenden Muster übereinstimmen: ^action.devices.traits.[a-zA-z]+$.

name Objekt

Erforderlich.

Namen dieses Geräts.

defaultNames Array

Liste der Namen, die vom Entwickler und nicht vom Nutzer angegeben wurden, häufig Herstellernamen, SKUs usw.

[item, ...] String

Standardname des Geräts.

name String

Erforderlich.

Primärer Name des Geräts, in der Regel vom Nutzer angegeben. Dies ist auch der Name, den der Assistant bevorzugt verwendet, um das Gerät in Antworten zu beschreiben. Namen werden abgeschnitten, wenn sie das Limit von 60 Unicode-Codepunkten (Zeichen) überschreiten. Es werden keine Fehler ausgegeben. Entwickler sind für die Verarbeitung langer Namen verantwortlich.

nicknames Array

Zusätzliche Namen, die der Nutzer für das Gerät angegeben hat.

[item, ...] String

Gerätealias.

willReportState Boolesch

Erforderlich.

Gibt an, ob die Status dieses Geräts über den Echtzeit-Feed aktualisiert werden. „true“ bedeutet, dass der Echtzeit-Feed für die Statusberichterstattung verwendet wird, und „false“, dass das Polling-Modell verwendet wird.

notificationSupportedByAgent Boolesch

(Standard: false)

Gibt an, ob Benachrichtigungen für das Gerät aktiviert sind.

roomHint String

Gibt den aktuellen Raum des Geräts im Zuhause des Nutzers an, um die Einrichtung zu vereinfachen.

deviceInfo Objekt

Enthält Felder, die das Gerät beschreiben, zur Verwendung in der Einmal-Logik, falls erforderlich (z.B. „Die fehlerhafte Firmware-Version X von Lampe Y muss angepasst werden“ oder „Aufgrund einer Sicherheitslücke müssen alle Nutzer der Firmware Z benachrichtigt werden“).

manufacturer String

Besonders nützlich, wenn der Entwickler ein Hub für andere Geräte ist. Google kann hier eine Standardliste von Herstellern bereitstellen, damit z.B. TP-Link und Smartthings „Osram“ auf dieselbe Weise beschreiben.

model String

Die Modell- oder SKU-Kennung des jeweiligen Geräts.

hwVersion String

Spezifische Versionsnummer, die der Hardware angehängt ist, falls verfügbar.

swVersion String

Spezifische Versionsnummer, die der Software/Firmware angehängt ist, falls verfügbar.

attributes Objekt

Entspricht den Attributen pro Trait, die in der Referenz zu jedem Trait-Schema beschrieben sind.

customData Objekt

Vom Entwickler definiertes Objekt, das an zukünftige QUERY- und EXECUTE-Anfragen angehängt wird. Maximal 512 Byte pro Gerät. Verwenden Sie dieses Objekt, um zusätzliche Informationen zum Gerät zu speichern, die Ihr Cloud-Dienst möglicherweise benötigt, z. B. die globale Region des Geräts. Für Daten in diesem Objekt gelten einige Einschränkungen: Es dürfen keine vertraulichen Informationen enthalten sein, einschließlich, aber nicht beschränkt auf personenidentifizierbare Informationen.

otherDeviceIds Array

Liste der alternativen IDs, die verwendet werden, um ein in der Cloud synchronisiertes Gerät für die lokale Ausführung zu identifizieren.

[item, ...] Objekt

Alternative Geräte-ID.

agentId String

Die ID des Agenten. In der Regel ist das die Projekt-ID in der Actions Console.

deviceId String

Erforderlich.

Vom Agenten definierte Geräte-ID. Die Geräte-ID muss eindeutig sein.

Beispiele

SYNC-Intent-Antwort

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.OUTLET",
        "traits": [
          "action.devices.traits.OnOff"
        ],
        "name": {
          "defaultNames": [
            "My Outlet 1234"
          ],
          "name": "Night light",
          "nicknames": [
            "wall plug"
          ]
        },
        "willReportState": false,
        "roomHint": "kitchen",
        "deviceInfo": {
          "manufacturer": "lights-out-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        },
        "otherDeviceIds": [
          {
            "deviceId": "local-device-id"
          }
        ],
        "customData": {
          "fooValue": 74,
          "barValue": true,
          "bazValue": "foo"
        }
      },
      {
        "id": "456",
        "type": "action.devices.types.LIGHT",
        "traits": [
          "action.devices.traits.OnOff",
          "action.devices.traits.Brightness",
          "action.devices.traits.ColorSetting"
        ],
        "name": {
          "defaultNames": [
            "lights out inc. bulb A19 color hyperglow"
          ],
          "name": "lamp1",
          "nicknames": [
            "reading lamp"
          ]
        },
        "willReportState": false,
        "roomHint": "office",
        "attributes": {
          "colorModel": "rgb",
          "colorTemperatureRange": {
            "temperatureMinK": 2000,
            "temperatureMaxK": 9000
          },
          "commandOnlyColorSetting": false
        },
        "deviceInfo": {
          "manufacturer": "lights out inc.",
          "model": "hg11",
          "hwVersion": "1.2",
          "swVersion": "5.4"
        },
        "customData": {
          "fooValue": 12,
          "barValue": false,
          "bazValue": "bar"
        }
      }
    ]
  }
}