FAQs zu Smart Homes

Allgemein

F: Wo und in welcher Sprache sollten wir unsere Infrastruktur für die Auftragsausführung von Actions on Google implementieren?

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


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

Antwort:Die IDs müssen eindeutig sein. Wenn es für Ihren Dienst keine eindeutigen IDs gibt, müssen diese mindestens auf Nutzerebene eindeutig sein. Stellen Sie sich einen Nutzer mit mehreren Haushalten vor, wobei beide Haushalte mit demselben Nutzer verknüpft sind. Wenn Sie darum bitten, in einem Haus ein Licht einzuschalten, sollte nicht ein Licht mit derselben ID in einem anderen Haus eingeschaltet werden.


F: Müssen Gerätenamen eindeutig sein?

Antwort:Namen müssen nicht eindeutig sein. Im Laufe der Zeit können wir jedoch Nutzer dazu ermutigen, fehlerhafte Namen nach der Einrichtung zu verbessern, um die Nutzerfreundlichkeit zu verbessern.

Hier eine kurze Anleitung zur Benennung:

  • Namen sollten auch tatsächlich ausgesprochen werden 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 zu verwenden.
  • Nutzer müssen Lampen keinen Raumnamen geben, weil es Räume gibt. Sie sollten eindeutige Namen pro Raum haben, aber immer Pluralformen verwenden, um alles zu befehlen (z. B. sind die beiden Glühlampen in den Bürolampen „Nordlicht“ und „Ostlicht“, können aber auch als „Licht“ bezeichnet werden).

F: Wie oft wird der Gerätestatus aktualisiert?

A: Der sitzungsspezifische Status wird entweder bei QUERY oder EXECUTE abgerufen, bei denen es sich um vom Nutzer initiierte Aktionen handelt. Wenn der Nutzer fragt: „Ist das Licht an?“ oder möchte er die Helligkeit erhöhen, müssen wir eine Abfrage ausführen, um den aktuellen Status zu ermitteln.


F: Kann Home Graph direkt mit dem aktuellen Status eines Geräts aktualisiert werden?

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


Kontoverknüpfung und OAuth

A: Ja, eine 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. Der Test sollte jedoch mit einer relativ kurzen Ablaufzeit erfolgen, z. B. 10 bis 20 Minuten. Unser OAuth-Client sollte Tokens nach Bedarf aktualisieren. Tests mit einer kurzen Ablaufzeit zeigen, dass das funktioniert.


Intents

F: Wann erfolgt die SYNCHRONISIERUNG?

A: Die SYNCHRONISIERUNG erfolgt unmittelbar nach der OAuth-Vervollständigung und nach einem Request Sync-Aufruf.


F: Warum funktioniert SYNC nicht?

Antwort:Das kann verschiedene Gründe haben.

  • Sie senden die falschen Gerätetypen.

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

    • Beispiel: Sie senden action.devices.types.FLASHLIGHT. Dies wird nicht unterstützt.
  • Sie senden ungültige/nicht unterstützte Felder.

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

    • Prüfen Sie die Klammern!
  • Es ist ein Problem mit der Kontoverknüpfung aufgetreten.

    • Prüfen Sie, ob Sie im Auth-Header der SYNC-Anfrage ein gültiges Zugriffstoken erhalten.
  • Die Antwort auf die SYNC-Anfrage dauert zu lange.

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

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

Antwort:Wenn Ihre Geräte in Echtzeit verfügbar sind, bevorzugen wir im Gegensatz zu „Ausstehend“ eine Erfolgs-/Fehlerantwort. Bitte wenden Sie sich an uns, wenn Sie der Meinung sind, dass Sie eine ausstehende Antwort benötigen. Uns ist bewusst, dass einige Geräte, die nicht in Echtzeit sind, mit geringem Stromverbrauch möglicherweise eine ausstehende Antwort und ein asynchrones Ausführungsmodell erfordern.


Testen und einreichen

F: Können wir eine Staging-Umgebung einrichten?

A: Ja. Erstellen Sie ein separates Projekt und führen Sie die Einrichtung für dieses Projekt durch. Sie können so viele Projekte erstellen, wie Sie für eine Zuordnung zu Ihren Entwicklungsprozessen und -infrastruktur benötigen.


F: Wie oft muss ich meinen Projektentwurf aktualisieren?

Antwort:Ein Projektentwurf muss alle drei Tage aktualisiert werden. Nach 3 Tagen wird der Test-Agent aus den Einstellungen von mobile HomeControl entfernt. Klicken Sie in diesem Fall auf die Schaltfläche TEST ENTWURF für Ihr Projekt in der Actions on Google Console.


F: Kann ich Tests auf mehreren Geräten gleichzeitig durchführen?

A: Actions on Google unterstützt jeweils nur einen "try-on-device"-AP. Wenn du TEST ENTWURF zuerst auf „ap1“- und Synchronisierungsgeräten verwendest, dann führe TEST ENTWURF „ap2“ direkt aus, ohne die Verknüpfung mit ap1 aufzuheben. „ap1“ wird dann aus den Einstellungen für „mobile-HomeControl-Einstellungen“ entfernt. Führen Sie TEST DRAFT noch einmal für "ap1" aus, um dies zu beheben. Sie können die Verknüpfung von "ap1" in den Einstellungen aufheben.

Beachte, dass dieses Paket mit einer Aktion dem Nutzer für alle deine Google Assistant-Geräte zur Verfügung steht. Du kannst beispielsweise deine neue Hardwareintegration sowohl auf Lautsprechern mit Sprachsteuerung als auch auf Android testen.


F: Die Einreichung meines Projekts für mein Actions-Projekt wurde aufgrund des Namens oder der Aussprache abgelehnt. Was muss ich ändern?

A:Wir prüfen die Aussprache des Namens, um sicherzustellen, dass der Aussprachename in Zukunft nicht von einer anderen Aktion verwendet wird und mit dem Anzeigenamen übereinstimmt. So vermeiden Sie Abweichungen, die sich auf zukünftige Namensregistrierungen auswirken.

Wenn Sie denselben Namen weiterhin verwenden möchten, wenden Sie sich an den Support, damit der Anzeigename vom Speech-Team zu Assistant hinzugefügt wird.


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

A: Es kann eines der folgenden Probleme geben:

  • Sie haben nicht in der Actions Console auf die Schaltfläche TEST ENTWURF für Ihr Projekt geklickt.
  • Du kannst in Test auf dem Gerät nur eine einzige Aktion gleichzeitig ausführen.
  • Rufen Sie in Actions Console den Tab „Simulator“ für Ihr Actions-Projekt auf und setzen Sie die Ein-/Aus-Schaltfläche „Aktiv/Inaktiv“ auf „Inaktiv“ und dann wieder auf „Aktiv“.
  • Wenn es sich um eine Aktion handelt, die mit dir geteilt wurde, prüfe bitte, ob alle Anweisungen zum Teilen befolgt wurden.
  • Test-on-Device läuft nach drei Tagen ab. Klicken Sie für Ihr Projekt im Actions Console auf die Schaltfläche TEST ENTWURF.

F: Warum erhalte ich eine Fehlermeldung, wenn ich im Simulator „talk to <my agent name>“ eingebe?

A: Für Smart-Home-Aktionen werden keine Aufrufnamen verwendet. Für den Test im Simulator müssen Sie die Kontoverknüpfung auf einem Android- oder iOS-Smartphone mit installiertem Google Home app (GHA) ausführen. Außerdem müssen Geräte mit Ihrem Konto verknüpft sein, damit Sie die Kontoverknüpfung vornehmen können.


F: Warum erhalte ich Fehlermeldungen, wenn ich versuche, den Simulator zu verwenden?

Antwort:Sie können den Simulator nicht zum Testen bereitgestellter smart home-Aktionen verwenden. Wenn Sie den Simulator für ein Heimautomatisierungsprojekt in der Produktion verwenden möchten, müssen Sie zu Testzwecken ein neues Projekt erstellen.


Berichtsstatus

F: Muss ich bestimmte Voraussetzungen erfüllen, um den Berichtsstatus zu implementieren?

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


F: Wie oft muss der Status auf einem Gerät gemeldet werden?

Antwort:Google interessiert sich für den Übergang und den Terminalstatus. Wenn es jedoch in kurzer Zeit viele Statusänderungen gibt (z. B. wenn ein Nutzer den Kühlschrank dreimal in einer Minute öffnet und schließt oder einen Dimmer schiebt), muss nur der endgültige Zustand gemeldet werden.


F: Muss bei Aufrufen von „Berichtsstatus“ der vollständige Gerätestatus gesendet werden?

A: Teilweise Statusaktualisierungen werden nicht unterstützt. Daher sollten Report State-Aufrufe immer alle Daten für eine bestimmte Eigenschaft enthalten, die aktualisiert wurde. Wenn zwei Merkmale zu Unstimmigkeiten führen würden, sollten sie zusammen gemeldet werden.


F: Kann Google mein Gerät abfragen, um den Status abzurufen, also das Gerät abzufragen?

Antwort:Dies ist ein Fallback-Mechanismus, den wir nicht empfehlen. Wenn ein Fallback auf das häufige Abfragen eines Geräts für diese Nutzer erforderlich ist, können wir die zusätzliche Last nicht garantieren. Der Bedarf kommt von den neuen visuellen Oberflächen. Zusätzlich zu dem unbekannten Ladeproblem kommt es zu einer eingeschränkten Nutzerfreundlichkeit. Wir sind der Meinung, dass Report State für die Plattform wichtig ist.


F: Welche Merkmale unterstützen den Berichtsstatus derzeit?

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

Beachten Sie, dass "Szenen" keinen Status haben. Sie können jedoch zu einer Änderung des Gerätestatus führen. Wenn ein Gerät in Google Home Graph einen Änderungsstatus hat, muss dies gemeldet werden.


F: Ist es erforderlich, dass für den Berichtsstatus ein Zeitstempel gesendet wird?

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


F: Muss ich den Status separat melden, wenn ich den Status bereits in „Abfragen“ und/oder „Ausführen“ sende?

A: Home Graph speichert nur den Status, der über Report State gesendet wird. Der Status, der als Antwort auf die Intents EXECUTE und QUERY zurückgegeben wird, wird nur für Sprachantworten an den Nutzer verwendet und nicht gespeichert. Deshalb sollte Report State auch dann aufgerufen werden, 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 vorgegebenen Frist vollständig implementiert wird?

Antwort:Dies führt zu einer verminderten Nutzerfreundlichkeit, z. B. in GHA und den visuellen Oberflächen. Dies bedeutet, dass viele QUERY-Intents zur Statusabfrage gesendet werden und wir nicht garantieren können, was dies mit der zusätzlichen Last in der Partner-Cloud zusammenhängt.


F: Wie kann ich die Implementierung des Berichtstatus testen?

A: Verwenden Sie den Home Graph Viewer, ein Self-Service-Testtool, mit dem Sie Ihre aktuellen Gerätestatus abrufen können, die in Home Graph gespeichert sind.


F: Kann ich eine zufällige Anfrage-ID für den Berichtsstatus verwenden?

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


F: Wenn ein Nutzer mehrere Geräte hat und auf einem davon der Status geändert wird, muss ich dann den letzten Status aller Geräte melden?

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


Best Practices

F: Welche Art von Latenz ist akzeptabel?

A: Idealerweise sind weniger als 200 ms, eine Zeitspanne zwischen 2 und 5 s ist in Ordnung. Wenn die Latenz etwa 5 Sekunden beträgt, wenden Sie sich an uns.


F: Wie sorge ich dafür, dass mein Lautsprecher mit Sprachbedienung richtig reagiert, wenn er offline ist?

A: Bei Geräten, die offline sind, wird der Offlinestatus wiederhergestellt. Für diesen Fehler wird "derzeit nicht verfügbar" als Text-in-Sprache zurückgegeben. Weitere Informationen finden Sie unter Fehler und Ausnahmen.