FAQs zu Smart Homes

Allgemein

F: Wo und in welcher Sprache sollten wir unsere Cloud-zu-Cloud-Ausführungsinfrastruktur implementieren?

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


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

A:Die IDs müssen eindeutig sein. Wenn Sie keine eindeutigen IDs für Ihren Dienst haben, müssen sie zumindest auf Nutzerebene eindeutig sein. Angenommen, ein Nutzer hat mehrere Zuhause, in denen beide mit demselben Nutzer verknüpft sind. Wenn Sie ein Licht in einem Zuhause einschalten möchten, sollte dadurch nicht ein Licht mit derselben ID in einem anderen Zuhause eingeschaltet werden.


F: Müssen Gerätenamen eindeutig sein?

A:Namen müssen nicht eindeutig sein. Wir empfehlen Nutzern jedoch, nach der Einrichtung schlechte Namen zu ändern, um die Nutzerfreundlichkeit zu verbessern.

Hier ist eine kurze Anleitung für die Benennung:

  • Namen sollten Wörter sein, die Menschen tatsächlich aussprechen können.
  • Wir erkennen Teilstrings. Wenn Sie also „Acme-Farblampe“ sagen, antworten wir auch auf „Acme-Lampe“.
  • 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 dafür Räume haben. Sie sollten pro Raum eindeutige Namen haben, können aber immer den Plural verwenden, um alle zu steuern. Die beiden Glühbirnen in den Wandlampen im Büro heißen beispielsweise „Nordlicht“ und „Ostlicht“, können aber einfach als „Lampen“ gesteuert werden.

F: Wie oft wird der Gerätestatus aktualisiert?

A:Der sitzungsspezifische Status wird bei QUERY oder EXECUTE abgerufen, also bei Aktionen, die vom Nutzer initiiert werden. Wenn der Nutzer fragt: „Ist die Lampe an?“ oder die Lampe heller machen möchte, müssen wir eine Abfrage durchführen, 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: Wir lassen OAuth-Zugriffstokens alle 15,213 Stunden ablaufen.Ist das in Ordnung?

A:Ja, aber bitte mit einer relativ kurzen Gültigkeitsdauer testen, z. B. 10 bis 20 Minuten. Unser OAuth-Client sollte die Tokens nach Bedarf aktualisieren. Ein Test mit einer kurzen Gültigkeitsdauer zeigt, ob das funktioniert.


Intents

F: Wann wird SYNC ausgeführt?

A:Die Synchronisierung erfolgt unmittelbar nach Abschluss der OAuth-Autorisierung und nachdem der Aufruf Request Sync erfolgt ist.


F: Warum funktioniert SYNC nicht?

A:Es gibt eine Reihe häufiger Gründe, warum das fehlschlagen kann.

  • Sie senden die falschen Gerätetypen.

    • Angenommen, wir erwarten action.devices.types.LIGHT, Sie senden aber action.devices.types.Light.
  • Sie senden Daten von Geräten, die nicht unterstützt werden.

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

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

    • Überprüfe deine Klammern!
  • Bei der Kontoverknüpfung ist ein Problem aufgetreten.

    • Prüfen Sie, ob Sie im Auth-Header der SYNC-Anfrage ein gültiges Zugriffstoken erhalten.
  • Sie reagieren zu langsam auf die SYNC-Anfrage.

    • Bitte prüfen Sie, ob Sie innerhalb von 5 Sekunden auf die SYNC-Anfrage antworten.

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

A:Wir bevorzugen eine Antwort mit dem Status „Erfolg“ oder „Fehler“ anstelle von „Ausstehend“, wenn Ihre Geräte in Echtzeit verfügbar sind. Bitte wenden Sie sich an uns, wenn Sie eine ausstehende Antwort benötigen. Wir wissen, dass einige energieeffiziente Geräte ohne Echtzeitfunktion eine ausstehende Antwort und ein asynchrones Ausführungsmodell erfordern können.


Tests und Einreichung

F: Können wir eine Entwicklungs-Cloud-Umgebung einrichten?

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


F: Meine Aktion ist in der Google Home App im Bereich „Smart-Home-Steuerung“ nicht sichtbar. Woran liegt das?

A:Sie müssen bestätigen, dass Sie Entwickler für dieses Projekt sind.


Status des Berichts

F: Gibt es Voraussetzungen für die Implementierung des Berichtsstatus?

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 Endzustand. Wenn sich der Status jedoch innerhalb kurzer Zeit häufig ändert (z. B. wenn ein Nutzer den Kühlschrank dreimal in einer Minute öffnet und schließt oder einen Dimmer schiebt), müssen wir nur den letzten Status melden.


F: Muss der vollständige Gerätestatus gesendet werden, wenn Statusberichte aufgerufen werden?

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 würden, sollten sie zusammen gemeldet werden.


F: Kann Google mein Gerät abfragen, um den Status zu erhalten (d. h. das Gerät abfragen)?

A:Dies ist ein Fallback-Mechanismus, den wir nicht empfehlen. Wenn wir für diese Nutzer häufig ein Gerät abfragen müssen, können wir nicht garantieren, wie hoch die zusätzliche Belastung sein wird. Die Notwendigkeit ergibt sich aus den neuen visuellen Oberflächen. Zusätzlich zu dem unbekannten Ladeproblem wird die Nutzerfreundlichkeit beeinträchtigt. Wir sind der Meinung, dass Report State für die Plattform entscheidend ist.


F: Welche Merkmale unterstützen derzeit den Berichtsstatus?

A:Alle öffentlichen Merkmale, denen Status zugewiesen sind, werden unterstützt. Auch Änderungen am Onlinestatus des Geräts sollten 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 den Berichtsstatus 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 „Abfrage“ und/oder „Ausführen“ sende?

A:Home Graph speichert nur den Status, 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 auch dann aufgerufen werden, wenn der neue Status des Geräts bereits als Antwort auf eine EXECUTE- oder QUERY-Intention zurückgegeben wurde.


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

A:Dies führt zu einer schlechteren Nutzererfahrung, z. B. bei 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 die Implementierung des Berichtsstatus testen?

A:Mit dem Home Graph Viewer, einem Selfservice-Testtool, das den aktuellen Gerätestatus in der Home Graph anzeigt.


F: Können wir eine zufällige Anfrage-ID für den Berichtsstatus verwenden?

A:Wir empfehlen Partnern, dieselbe requestId zu verwenden, die sie von der EXECUTE-Anfrage erhalten haben, wenn die 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 der Status eines davon geändert wird, müssen wir den aktuellen Status aller Geräte melden?

A:Nein. Sie müssen nur den Status dieses bestimmten Geräts melden.


Best Practices

F: Welche Latenz ist akzeptabel?

A: Ideal sind weniger als 200 ms, 2 bis 5 Sekunden sind in Ordnung. Wenn die Latenz bei etwa 5 Sekunden liegt, kontaktiere uns.


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

A:Den Offlinestatus für offline Geräte zurückgeben. Für diesen Fehler wird „Derzeit nicht verfügbar“ als TTS zurückgegeben. Weitere Informationen finden Sie unter Fehler und Ausnahmen.