Bevor du die Automation API verwendest, solltest du deine automatisierten Abläufe entwerfen.
Legen Sie für jede Automatisierung die folgenden Parameter fest:
- Die Umstände, unter denen die Automatisierung dem Nutzer vorgeschlagen werden soll. Wenn ein Nutzer beispielsweise gerade drei neue Lampen in seinem Zuhause hinzugefügt hat, könnte er an einer bestimmten Automatisierung zur Steuerung von Lampen interessiert sein.
- Welche Gerätetypen für die Automatisierung erforderlich sind. Wenn der Nutzer beispielsweise gerade drei neue Lampen zu seinem Zuhause hinzugefügt hat, könnte er an einer bestimmten Automatisierung interessiert sein, die auf die Steuerung von Lampen zugeschnitten ist. Beispiele für Gerätetypen sind
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceoderExtendedColorLightDevice. - Welche Trait-Attribute und -Befehle für die Automatisierung erforderlich sind und ob sie von der Automation API unter Android unterstützt werden.
- Die Eigenschaften, die die Automatisierung als Auslöser aktivieren sollen. Auslöser werden unter Automatisierungskomponenten auf Android-Geräten erläutert.
- Zusätzliche Bedingungen, die bestimmen, ob die Automatisierung tatsächlich ausgeführt werden soll und welche Aktionen ausgeführt werden sollen.
- Der Ablauf der Ausführung 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 darzustellen.
Nachdem du eine Automatisierung entworfen hast, kannst du sie mit der Automation DSL erstellen. Die von dir erstellte Automatisierung ist im Grunde eine „Vorlage“. Alle darin enthaltenen Gebäude und Geräte sind Platzhalter und werden mit dem spezifischen Gebäude und den Geräten des jeweiligen Nutzers gefüllt, wenn er die Automatisierung für seine eigene Verwendung „übernimmt“.
Im Folgenden sind verschiedene Arten von Automatisierungen aufgeführt, die eine App mithilfe der Home APIs erstellen könnte. Codeauszüge zu diesen Beispielen finden Sie auf der Seite Automatisierung erstellen.
Einfache Automatisierung
Angenommen, Sie möchten 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) im Gebäude, die Automatisierungen unterstützen. Diese Liste kann von der Discovery API bereitgestellt werden.
Bei automatisierten Abläufen, die zu einer bestimmten Zeit ausgeführt werden sollen, musst du außerdem darauf achten, dass der Nutzer dem ausgewählten Gebäude eine Adresse zugewiesen hat (entweder beim Erstellen des Gebäudes oder in der Google Home app (GHA)). Andernfalls ist die Zeitzone, in der der automatisierte Ablauf ausgeführt werden soll, nicht bekannt. Mit der Discovery API können Sie feststellen, ob dem Gebäude eine Adresse zugewiesen wurde.
Der Ausführungsablauf sieht dann in etwa so aus:
- Rufen Sie mit der Discovery API die Liste der
WindowCoveringDevice-Geräte ab. - Wenn die Adresse nicht angegeben ist, benachrichtigen Sie den Nutzer, dass er eine Adresse angeben muss (z. B. in der GHA), und beenden Sie die Ausführung.
- Andernfalls definieren Sie die Automatisierung:
- Automatisierung um 8:00 Uhr starten.
- Rufe für jede Jalousie den Befehl
upOrOpendes AttributsWindowCoveringauf.
Komplexe Automatisierung
Stell dir 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. Mit diesen Informationen kann deine App jetzt die verfügbaren Lampen anzeigen und dem Nutzer die Möglichkeit geben, auszuwählen, welche Lampen blinken sollen.
Ablauf der Ausführung:
- Rufe mit der Discovery API die Liste der im Gebäude vorhandenen Lichtgeräte ab. Das sind alle Geräte mit dem Gerätetyp
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceoderExtendedColorLightDevice. - Biete eine Möglichkeit, die blinkenden Lampen auszuwählen, z. B. über ein benutzerdefiniertes Steuerfeld für die Einstellungen.
- Definieren Sie die Automatisierung:
- Starte die Automatisierung, wenn jemand das Gelände verlässt oder betritt, indem du
AreaPresenceStateüberwachst. - Wenn
presenceStateangibt, dass das Gebäude belegt ist, blinken die ausgewählten Lichter.
- Starte die Automatisierung, wenn jemand das Gelände verlässt oder betritt, indem du
Allgemeine Automatisierung
Ein Beispiel für eine komplexere Automatisierung ist eine, die den Nutzer durch die Erstellung einer offenen Automatisierung führt, die auf einigen oder allen Geräten in seinem Zuhause basiert.
Die Automatisierung fordert den Nutzer möglicherweise zuerst auf, ein Gebäude auszuwählen.
Dann könnte die Automatisierung alle Räume im Gebäude in einer erweiterbaren Gliederungsansicht anzeigen, in der durch Erweitern eines Raums die darin enthaltenen Geräte angezeigt werden. Wenn du ein Gerät maximierst, werden die von diesem Gerät unterstützten Auslöser und Befehle angezeigt.
Der Nutzer kann die Geräte, Auslöser und Befehle auswählen, die er verwenden möchte, und die Automatisierung führt ihn durch die Erstellung einer Automatisierung.
Wenn alle Auswahlmöglichkeiten und Entscheidungen des Nutzers endgültig sind, wird die Automatisierung generiert und in der ausgewählten Struktur gespeichert.
Grob gesagt müsste eine solche Automatisierung mehrere Datensätze zum Zuhause des Nutzers erfassen. Dazu werden die Structure API für Android, die Device API für Android und die Discovery API verwendet.
| API | Informationen |
|---|---|
| Structure API |
|
| Device API |
|
| Discovery API |
|