FAQs zu Smart Homes

Allgemein

F: Wo und in welcher Sprache sollten wir unsere Cloud-to-Cloud-Infrastruktur für die Auftragsabwicklung implementieren?

A: Solange die Plattform moderne SSL- (TLS-) und OAuth 2.0-Technologien unterstützt, können Sie Ihre Infrastruktur auf jeder beliebigen Plattform und in jeder beliebigen Sprache implementieren. Wir empfehlen, die Bereitstellung so nah wie möglich an der restlichen Infrastruktur vorzunehmen, um die Zuverlässigkeit zu verbessern und die Latenz für die Ausführung auf den tatsächlichen Nutzergeräten zu verringern.


F: Müssen Geräte-IDs eindeutig sein?

A:Die IDs sollten eindeutig sein. Wenn Sie keine eindeutigen IDs für Ihren Dienst haben, müssen sie zumindest auf Nutzerebene eindeutig sein. Stellen Sie sich einen Nutzer mit mehreren Zuhause vor, die beide in dieselbe Nutzerintegration eingebunden sind. Wenn Sie darum bitten, das Licht in einem Zuhause einzuschalten, sollte nicht das Licht mit derselben ID in einem anderen Zuhause eingeschaltet werden.


F:Müssen Gerätenamen eindeutig sein?

A:Namen müssen nicht eindeutig sein. Im Laufe der Zeit werden wir Nutzer jedoch möglicherweise dazu auffordern, schlechte Namen nach der Einrichtung zu ändern, um die Nutzerfreundlichkeit zu verbessern.

Hier eine kurze Anleitung zur Benennung:

  • Namen sollten Dinge sein, die Menschen tatsächlich sagen können.
  • Wir erkennen Teilmengen von Strings. Wenn Sie also „acme color light“ haben, antworten wir auch auf „acme light“.
  • Wir empfehlen sowohl einen beschreibenden Namen für das Produkt als auch einen oder mehrere benutzerdefinierte Namen.
  • Nutzer müssen Lampen keine Raumnamen geben, da wir Räume dafür haben. Lampen sollten eindeutige Namen pro Raum haben, aber es können immer Plurale verwendet werden, um alles zu steuern (z. B. die beiden Glühbirnen in den Wandleuchten im Büro sind „Nordlicht“ und „Ostlicht“, können aber auch einfach als „Lampen“ bezeichnet werden).

F:Wie oft wird der Gerätestatus aktualisiert?

A:Der flüchtige Status wird bei QUERY oder EXECUTE abgerufen. Das sind vom Nutzer initiierte Aktionen. Wenn der Nutzer fragt, ob das Licht an ist, oder ein Licht heller machen möchte, müssen wir eine Anfrage senden, um den aktuellen Status zu ermitteln.


F: Ist es möglich, Home Graph direkt mit dem aktuellen Status eines Geräts zu aktualisieren?

A: Ja, verwenden Sie den API-Aufruf Report State.


Kontoverknüpfung und OAuth

A:Ja, die Kontoverknüpfung ist erforderlich, um die Geräte eines Nutzers mit den Cloud-Diensten des Anbieters zu verbinden.


F: Bei OAuth laufen Zugriffstokens alle 15,213 Stunden ab.Ist das in Ordnung?

A: Ja, aber bitte testen Sie mit einer relativ kurzen Ablaufzeit, z. B. 10–20 Minuten. Unser OAuth-Client sollte Tokens nach Bedarf aktualisieren. Wenn Sie mit einer kurzen Ablaufzeit testen, können Sie überprüfen, ob das funktioniert.


Intents

F: Wann findet die Synchronisierung statt?

A:Die SYNCHRONISIERUNG erfolgt unmittelbar nach Abschluss von OAuth und nach einem Request Sync-Aufruf.


F: Warum funktioniert SYNC nicht?

A:Dafür kann es verschiedene Gründe geben.

  • Sie senden die falschen Gerätetypen ein.

    • Wir erwarten beispielsweise action.devices.types.LIGHT, aber Sie senden action.devices.types.Light.
  • Sie senden nicht unterstützte Gerätetypen.

    • Wenn Sie beispielsweise action.devices.types.FLASHLIGHT senden, wird dies nicht unterstützt.
  • Sie senden ungültige/nicht unterstützte Felder.

    • Beispiel: Sie haben ein Feld, das nicht in unserer Spezifikation enthalten ist.
  • Es gibt ein anderes Formatierungsproblem mit Ihrer SYNC-Antwort.

    • Sieh dir deine Tipps an.
  • Es ist ein Problem bei der Kontoverknüpfung aufgetreten.

    • Prüfe, ob du ein gültiges Zugriffstoken im Auth-Header der SYNC-Anfrage erhältst.
  • Sie brauchen zu lange, um auf die SYNC-Anfrage zu reagieren.

    • Prüfe, ob du innerhalb von 5 Sekunden auf die SYNC-Anfrage antwortest.

F:Ist eine Antwort mit dem Status „Ausstehend“ in Ordnung?

A: Wir bevorzugen eine Antwort vom Typ „Erfolg“/„Fehler“ anstelle von „Ausstehend“, wenn Ihre Geräte in Echtzeit verfügbar sind. Bitte wenden Sie sich an uns, wenn Sie der Meinung sind, dass Sie eine „ausstehende“ Antwort benötigen. Wir wissen, dass einige Geräte mit geringem Stromverbrauch, die nicht in Echtzeit funktionieren, möglicherweise eine ausstehende Antwort und ein asynchrones Ausführungsmodell erfordern.


Testen und Einreichen

F:Können wir eine Cloud-Entwicklungsumgebung einrichten?

A:Ja, Sie können eine noch nicht gestartete Cloud-Umgebung und ‑Konfiguration testen.


F:Meine Aktion wird in der Google Home App im Bereich „Smart-Home-Steuerung“ nicht angezeigt. Was ist los?

A: Prüfen Sie, ob Sie Entwickler für dieses Projekt sind.


Berichtsstatus

F:Gibt es Voraussetzungen für die Implementierung von „Berichtszustand“?

A:Das Projekt muss die Smart Home API verwenden, OAuth2 unterstützen und Merkmale mit Status haben, die gemeldet werden müssen.


F:Wie oft müssen wir den Status eines Geräts melden?

A:Google interessiert sich für den Übergang und den Endstatus. Wenn sich der Status jedoch in kurzer Zeit häufig ändert (z. B. wenn ein Nutzer den Kühlschrank dreimal in einer Minute öffnet und schließt oder einen Dimmer betätigt), muss nur der endgültige Status gemeldet werden.


F:Muss der vollständige Gerätestatus gesendet werden, wenn „Status melden“-Aufrufe erfolgen?

A:Teilweise Statusaktualisierungen werden nicht unterstützt. Report State-Aufrufe sollten daher immer alle Daten für ein bestimmtes Merkmal enthalten, das aktualisiert wurde. Wenn zwei Merkmale zu einer Inkonsistenz führen, sollten sie zusammen gemeldet werden.


F:Kann Google meinen Gerätestatus abfragen (d. h. das Gerät pollen)?

A:Das ist ein Fallback-Mechanismus, den wir nicht empfehlen. Wenn wir für diese Nutzer häufig auf das Abrufen von Geräten zurückgreifen müssen, können wir nicht garantieren, wie hoch die zusätzliche Belastung sein wird. Das liegt an den neuen visuellen Plattformen. Neben dem unbekannten Ladeproblem wird die Nutzererfahrung beeinträchtigt. Wir sind der Meinung, dass Report State für die Plattform von entscheidender Bedeutung ist.


F: Welche Merkmale unterstützen derzeit den Berichtsstatus?

A:Alle öffentlichen Traits, denen Status zugeordnet sind, werden unterstützt. Jede Änderung des Onlinestatus des Geräts sollte ebenfalls gemeldet werden.

Szenen haben keine Status. Sie können jedoch zu einer Änderung des Status von Geräten führen. Wenn sich der Status eines Geräts in Google Home Graph ändert, muss dies gemeldet werden.


F:Muss für „Report State“ ein Zeitstempel gesendet werden?

A: Wir benötigen keinen Zeitstempel. Der zuletzt gesendete Status überschreibt vorherige Aufrufe.


F: Muss ich den Status separat melden, wenn ich ihn bereits in Query und/oder Execute sende?

A:In Home Graph wird nur der Status gespeichert, der über Report State gesendet wird. Der Status, der als Antwort auf EXECUTE- und QUERY-Intents zurückgegeben wird, wird nur für Sprachantworten an den Nutzer verwendet und nicht gespeichert. Daher sollte Report State aufgerufen werden, auch wenn der neue Status des Geräts bereits als Antwort auf einen EXECUTE- oder QUERY-Intent zurückgegeben wurde.


F:Welche Folgen hat es, wenn der Berichtsstatus nicht innerhalb der angegebenen Frist vollständig implementiert wird?

A:Das führt zu einer schlechteren Nutzererfahrung, z. B. auf den Google Home app (GHA) und visuellen Oberflächen. Das bedeutet, dass viele QUERY-Intents gesendet werden, um den Status abzufragen. Wir können nicht garantieren, dass dies zu einer zusätzlichen Belastung der Partner-Cloud führt.


F:Wie kann ich unsere Implementierung von „Berichtstatus“ testen?

A:Verwende den Home Graph Viewer. Dieses Self-Service-Testtool zeigt dir die aktuellen Gerätestatus an, die in Home Graph gespeichert sind.


F: Können wir eine zufällige „requestId“ für den Berichtsstatus verwenden?

A: Wir empfehlen Partnern, dieselbe requestId zu verwenden, die sie von der EXECUTE-Anfrage erhalten haben, wenn der Report State durch die EXECUTE-Anfrage ausgelöst wird. Andernfalls können Sie einfach eine zufällige requestId verwenden.


F: Wenn ein Nutzer mehrere Geräte hat und sich der Status eines der Geräte ändert, müssen wir dann den aktuellen Status aller Geräte melden?

A:Nein. Sie müssen nur den Status des jeweiligen Geräts melden.


Best Practices

F: Welche Latenz ist akzeptabel?

A:Weniger als 200 ms sind ideal, zwischen 2 und 5 Sekunden ist in Ordnung. Wenn die Latenz bei etwa 5 Sekunden liegt, kontaktiere uns.


F:Wie kann ich dafür sorgen, dass mein sprachaktivierter Lautsprecher richtig reagiert, wenn er offline ist?

A:Gib den Offlinestatus für Offlinegeräte zurück. Für diesen Fehler wird „derzeit nicht verfügbar“ als TTS zurückgegeben. Weitere Informationen finden Sie unter Fehler und Ausnahmen.