Bevor Sie die Automation API verwenden, sollten Sie Ihre automatisierten Abläufe planen.
Legen Sie die folgenden Parameter für jede Automatisierung fest:
- Die Umstände, unter denen die Automatisierung dem Nutzer vorgeschlagen werden soll. Wenn der Nutzer beispielsweise gerade drei neue Lampen in seinem Zuhause hinzugefügt hat, ist er möglicherweise an einer bestimmten Automatisierung interessiert, die auf die Steuerung von Lampen zugeschnitten ist.
- Welche Gerätetypen für die Automatisierung erforderlich sind. Wenn der Nutzer beispielsweise gerade drei neue Lampen in seinem Zuhause hinzugefügt hat, ist er möglicherweise an einer bestimmten Automatisierung zur Steuerung von Lampen interessiert. Beispiele für Lichtgerätetypen sind
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceoderExtendedColorLightDevice. - Welche Geräteattribute und Befehle für die Automatisierung erforderlich sind und ob sie von der Automation API unter Android unterstützt werden.
- Die Eigenschaften, die als Ausgangspunkte die Automatisierung aktivieren sollten. Auslöser werden unter Automatisierungskomponenten unter Android beschrieben.
- Zusätzliche Bedingungen, die festlegen, ob die Automatisierung tatsächlich ausgeführt werden soll und welche Aktionen durchgeführt werden sollen.
- Der Ausführungsablauf für die Automatisierung. Soll es sequenziell oder parallel ausgeführt werden? Benötigen Sie mehrere Logikpfade?
Bei der Konzeption kann es hilfreich sein, den Ablauf der Automatisierung Knoten für Knoten grafisch darzustellen und die jeweils erforderliche Logik in jedem Schritt zu erläutern.
Nachdem Sie eine Automatisierung entworfen haben, können Sie sie mit der Automatisierungs-DSL erstellen. Die von Ihnen erstellte Automatisierung ist im Wesentlichen eine "Vorlage" – alle darin enthaltenen Strukturen und Geräte sind Platzhalter und werden mit den spezifischen Strukturen und Geräten jedes Benutzers gefüllt, wenn dieser die Automatisierung für seinen eigenen Gebrauch "übernimmt".
Im Folgenden werden verschiedene Arten von Automatisierungen vorgestellt, die eine App mithilfe der Home APIs erstellen könnte. Auf der Seite Build an automation finden Sie Codebeispiele zu diesen Beispielen.
Einfache Automatisierung
Angenommen, Sie müssten eine App schreiben, die eine Automatisierung erstellt, die die Jalousien um 8:00 Uhr hochfährt. Um dies zu erreichen, benötigt die App eine Liste der in der Struktur vorhandenen Jalousien (Geräte mit dem Gerätetyp WindowCoveringDevice), die Automatisierungen unterstützen. Diese Liste kann über die Discovery API bereitgestellt werden.
Bei Automatisierungen, die zu einer bestimmten Zeit ausgeführt werden müssen, müssen Sie außerdem dafür sorgen, dass der Nutzer der ausgewählten Struktur in Google Home app (GHA) eine Adresse zugewiesen hat. Andernfalls kennt die Automatisierung die Zeitzone, in der sie ausgeführt wird, nicht. Mit der Discovery API können Sie feststellen, ob der Struktur eine Adresse zugewiesen wurde.
Der Ausführungsablauf sieht dann etwa so aus:
- Rufen Sie mit der Discovery API die Liste der
WindowCoveringDevice-Geräte ab. - Wenn die Straßenadresse nicht ausgefüllt ist, benachrichtigen Sie den Benutzer, dass er eine Straßenadresse angeben muss, und brechen Sie die Ausführung ab.
- Andernfalls definieren Sie die Automatisierung:
- Starte die Automatisierung um 8:00 Uhr.
- Rufe für jede der Jalousien den Befehl
upOrOpendesWindowCovering-Traits auf.
Komplexe Automatisierung
Stellen Sie sich eine App vor, die eine Automatisierung erstellt, die blinkende Lichter auslöst, wenn eine Bewegung erkannt wird.
Eine der ersten Aufgaben bei der Implementierung dieser App ist es, mithilfe der Discovery API herauszufinden, welche Lampen im Zuhause des Nutzers verfügbar sind. Anhand dieser Informationen kann Ihre App nun die verfügbaren Lichter anzeigen und dem Nutzer möglicherweise die Auswahl der Lichter ermöglichen, die blinken sollen.
Ablauf der Ausführung:
- Rufen Sie mit der Discovery API die Liste der in der Struktur vorhandenen Beleuchtungsgeräte ab. Das sind alle Geräte mit dem Gerätetyp
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceoderExtendedColorLightDevice. - Bieten Sie eine Möglichkeit, die blinkenden Lichter auszuwählen, z. B. über ein benutzerdefiniertes Einstellungsfeld.
- Automatisierung definieren:
- Starte den automatisierten Ablauf, wenn jemand das Gebäude verlässt oder dort ankommt, indem du
AreaPresenceStateüberwachst. - Wenn
presenceStateangibt, dass die Struktur belegt ist, blinken Sie die ausgewählten Lichter.
- Starte den automatisierten Ablauf, wenn jemand das Gebäude verlässt oder dort ankommt, indem du
Allgemeine Automatisierung
Ein Beispiel für eine komplexere Automatisierung ist eine, die den Nutzer durch die Erstellung einer Automatisierung mit offenem Ende führt, die auf allen oder einigen der Geräte basiert, die er in seinem Zuhause hat.
Die Automatisierung fordert den Nutzer möglicherweise zuerst auf, eine Struktur auszuwählen.
Die Automatisierung könnte dann alle Räume in der Struktur in einer erweiterbaren Gliederungsansicht anzeigen. Wenn Sie einen Raum erweitern, werden die darin befindlichen Geräte angezeigt. Wenn Sie eine Geräteliste maximieren, werden die von diesem Gerät unterstützten Starter und Befehle angezeigt.
Der Nutzer konnte die Geräte, Auslöser und Befehle auswählen, die er verwenden wollte, und die Automatisierung führte ihn durch das Zusammenstellen einer Automatisierung.
Wenn alle Entscheidungen des Nutzers endgültig sind, wird die Automatisierung generiert und in der ausgewählten Struktur gespeichert.
Für eine solche Automatisierung müssten mehrere Datensätze zum Zuhause des Nutzers mithilfe der Structure API für Android, der Device API für Android und der Discovery API erfasst werden.
| API | Informationen |
|---|---|
| Gebäude-API |
|
| Geräte-API |
|
| Discovery API |
|