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