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 interessiert, die auf die Steuerung von Lampen zugeschnitten ist. Beispiele für Lichtgerätetypen sind
OnOffLightDevice
,ColorTemperatureLightDevice
,DimmableLightDevice
oderExtendedColorLightDevice
. - Welche Geräteattribute und Befehle für die Automatisierung erforderlich sind und ob sie von der Automation API unter Android unterstützt werden.
- Die Merkmale, die die Automatisierung als Auslöser aktivieren sollen. 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 ausgeführt werden sollen.
- Der Ausführungsablauf für die Automatisierung. Soll sie sequenziell oder parallel ausgeführt werden? Benötigen Sie mehrere Logikpfade?
Beim Entwerfen kann es hilfreich sein, den Ablauf der Automatisierung Knoten für Knoten mit der für jeden Schritt erforderlichen Logik zu skizzieren.
Nachdem Sie eine Automatisierung entworfen haben, können Sie sie mit der Automatisierungs-DSL erstellen. Die von Ihnen erstellte Automatisierung ist im Grunde eine Vorlage. Alle darin enthaltenen Strukturen und Geräte sind Platzhalter und werden mit den spezifischen Strukturen und Geräten jedes Nutzers gefüllt, wenn er die Automatisierung für den eigenen Gebrauch übernimmt.
Im Folgenden finden Sie verschiedene Arten von Automatisierungen, die eine App mithilfe der Home-APIs erstellen kann. Auf der Seite Automatisierung erstellen finden Sie Codeausschnitte zu diesen Beispielen.
Einfache Automatisierung
Angenommen, Sie müssen eine App schreiben, die eine Automatisierung erstellt, mit der die Jalousien um 8:00 Uhr hochgefahren werden. Dazu benötigt die App eine Liste der Jalousien (Geräte mit dem Gerätetyp WindowCoveringDevice
) in der Struktur, 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 angegeben ist, informieren Sie den Nutzer, dass er eine Straßenadresse angeben muss, und halten Sie die Ausführung an.
- Andernfalls definieren Sie die Automatisierung:
- Starte die Automatisierung um 8:00 Uhr.
- Rufen Sie für jede Jalousie den Befehl
upOrOpen
des TraitsWindowCovering
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 besteht darin, 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.
Der Ausführungsablauf:
- 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
,DimmableLightDevice
oderExtendedColorLightDevice
. - Bieten Sie eine Möglichkeit, die blinkenden Lichter auszuwählen, z. B. über ein benutzerdefiniertes Einstellungsfeld.
- Automatisierung definieren:
- Starte die Automatisierung, wenn jemand das Zuhause verlässt oder dort ankommt, indem du
AreaPresenceState
überwachst. - Wenn
presenceState
angibt, dass die Struktur belegt ist, blinken Sie die ausgewählten Lichter.
- Starte die Automatisierung, wenn jemand das Zuhause 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 aufklappbaren Gliederungsansicht anzeigen. Wenn Sie einen Raum aufklappen, 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, Starter 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 auf hoher Ebene mehrere Datensätze zum Zuhause des Nutzers mithilfe der Structure API for Android, der Device API for Android und der Discovery API erfasst werden.
API | Informationen |
---|---|
Structure API |
|
Geräte-API |
|
Discovery API |
|