Dieser Beitrag ist Teil einer Serie über Home Assistant Automatisierungen mit AppDaemon. In dieser Serie zeige ich, wie verschiedene Automatisierungsansätze implementiert werden können, von der Rollladensteuerung bis hin zur Effizienzüberwachung von Heizsystemen.
In diesem Beitrag stelle ich die Automatisierung der Beleuchtungssysteme vor, die ich in meinem Smart Home mithilfe von AppDaemon und Home Assistant verwende. Das System integriert Bewegungs- und Helligkeitssensoren, um die Beleuchtung effizient und vorausschauend zu steuern.
Die Automatisierung geht über einfache Bewegungsreaktionen hinaus, indem sie Bewegungen in angrenzenden Bereichen erfasst und darauf reagiert, bevor ein Raum tatsächlich betreten wird. Dies führt zu einem gesteigerten Komfort im Alltag durch eine intelligente Beleuchtungssteuerung.
Ein zentraler Bestandteil dieser Automatisierung ist die Nutzung von AppDaemon zur Implementierung einer Zustandsautomat-Architektur, die flexible Steuerungslogiken abbildet. Gleichzeitig bleibt Raum für benutzerspezifische Eingriffe, was zusätzlichen Nutzen und Individualisierungspotential bietet.
Ziel ist es, eine intuitive und effiziente Beleuchtungserfahrung im Smart Home zu schaffen, die sich an den realen Bedürfnissen der Nutzer orientiert. Persönlich hat mich besonders begeistert, wie viel Komfort diese Lösung in meinem Alltag gebracht hat, indem sie die Beleuchtung intelligent anpasst.
Die benötigten Sensoren und Aktoren sowie die spezifischen Konfigurationsdetails und Installationsschritte werden im Folgenden beschrieben. Die Automatisierungsressourcen stehen zur freien Verwendung auf GitHub Gist zur Verfügung, um sie in Ihrem eigenen Smart Home umzusetzen.
Benötigte Sensoren und Aktoren
Für die Beleuchtungssteuerung im Smart Home benötigen wir einige Sensoren und Aktoren, die zusammenarbeiten, um die Beleuchtung effektiv zu steuern. Hier sind die wichtigsten Komponenten:
Hinweis: Die unten aufgeführten Links sind Affiliate-Links. Beim Kauf über diese Links unterstützt du diesen Blog, ohne dass dir zusätzliche Kosten entstehen.
Bewegungs- und Helligkeitssensoren: Diese Sensoren sorgen dafür, dass das Licht automatisch eingeschaltet wird, wenn eine Bewegung erkannt wird und es dunkel genug ist.
- Aqara Bewegungsmelder P1: Amazon, eBay, AliExpress
- SONOFF SNZB-03 Bewegungssensor: Amazon, eBay, AliExpress
- Tuya ZG-204ZL Bewegungssensor: Amazon, eBay, AliExpress
Smart Bulb oder Relais: Diese sind die eigentlichen Einheiten, die das Licht ein- und ausschalten. Intelligente Glühbirnen oder Relais wie der Shelly 1 können auch nicht-smarten Lampen eine Automatisierung ermöglichen.
- innr Zigbee warmweiß dimmbar: Amazon, eBay
- Philips Hue White: Amazon, eBay
- Sonoff ZBMINI Relais: Amazon, eBay, AliExpress
- Generic Tuya Relais: Amazon. AliExpress
Tür- und Fenstersensoren (Optional): Sie bieten zusätzliche Möglichkeiten für Automatisierungen, zum Beispiel das Einschalten des Lichts, wenn die Haustür geöffnet wird.
- Aqara Tür- und Fenstersensor: Amazon, eBay, AliExpress
- SONOFF SNZB-04P: Amazon, eBay, AliExpress
- Tuya ZigBee Tür- und Fenstersensor (ZD08): Amazon, eBay, AliExpress
Diese Sensoren helfen dabei, die Beleuchtung im Smart Home zuverlässig und effizient zu steuern, indem sie automatisch auf Bewegungen und Lichtverhältnisse reagieren.
Konfiguration der Automatisierungskomponenten
In diesem Kapitel stellen wir die Verbindung zwischen den Sensoren, Aktoren und unserer Automatisierungslösung her. Ziel ist es, eine reaktionsschnelle und intelligente Beleuchtungssteuerung zu schaffen, die optimal auf Umweltveränderungen und Benutzerinteraktionen reagiert.
|
|
Parametererläuterungen
- main_motion_entities: Die primären Bewegungssensoren, die Bewegungen in der Umgebung erkennen.
sensor.bewegung_kueche
dient als Beispiel zur Bewegungserfassung in der Küche, um entsprechende Aktionen auszulösen. - nearby_motion_entities: Sensoren zur Erfassung von Bewegungen in angrenzenden Räumen.
sensor.bewegung_flur
,sensor.bewegung_esszimmer
oder ein Türsensor sind Beispiele, die das Beleuchtungssystem vorbereiten, wenn jemand den Flur betritt oder eine Tür öffnet. - brightness_entities: Sensoren zur Überwachung der Umgebungshelligkeit.
sensor.helligkeit_küche
stellt sicher, dass die Beleuchtung nur bei Unterschreiten eines bestimmten Helligkeitsniveaus aktiv wird. - output_entity: Die kontrollierte Beleuchtungseinheit, die aktiviert wird. Hierbei handelt es sich um
light.küche
. - brightness_threshold: Der Schwellenwert der Umgebungshelligkeit. Unterschreitet die gemessene Helligkeit den Wert 1500, kann die Automatisierung das Licht bei erkannter Bewegung einschalten.
- timeout_nearby: Die Zeitspanne in Sekunden, für die Bewegungen in der Nähe berücksichtigt werden, um mögliche Aktionen auszulösen.
- timeout_detected: Die Zeitspanne in Sekunden, während der das System auf neu erkannte Bewegungen wartet, ehe das Licht ausgeschaltet wird.
- timeout_manual_off: Zeit in Sekunden, die verstreichen muss, bevor eine manuelle Ausschaltung der Beleuchtung rückgängig gemacht wird, um eine unerwünschte Reaktion zu verhindern.
- timeout_manual_on: Zeit in Sekunden, in der manuelles Einschalten aktiv bleibt, bevor das System zur Automatisierung zurückkehrt.
- timeout_nearby_throttle: Die Throttling-Zeit in Sekunden, um zu vermeiden, dass die Beleuchtung bei Bewegungen in nahegelegenen Bereichen zu oft ein- und ausgeschaltet wird.
Diese Einstellungen ermöglichen eine ausgeklügelte Steuerung der Beleuchtung, indem sie die Umgebungsveränderungen und nutzerzentrischen Präferenzen einbeziehen.
Implementierung der Automatisierungslösung
Diese App wurde in Form einer Zustandsmaschine entwickelt, um dynamisch auf verschiedene Umgebungsbedingungen und Benutzerinteraktionen zu reagieren. Eine solche Architektur ermöglicht die konsistente und wartbare Implementierung komplexer Logiken und zeitabhängiger Abläufe, etwas, das mit den nativen Home Assistant Automationen nur schwer realisierbar ist, und illustriert den Vorteil der Verwendung von AppDaemon für Smart-Home-Automatisierungen.
Zustandsmaschine
Die Lichtsteuerung wird über verschiedene Aktionen verwaltet, die auf bestimmte Ereignisse im Smart Home System reagieren. Veränderte Zustände in Home Assistant-Entitäten, wie Bewegungsmelder oder Helligkeitswerte, werden durch entsprechende Aktionen gespiegelt und führen zu Zustandsübergängen.
- Init: Initialisiert die Zustandsmaschine beim Start oder Neustart der App.
- Motion: Ausgelöst durch Bewegungen der Hauptsensoren, wechselt in den Zustand Detected.
- Illuminance: Reagiert auf Helligkeitsänderungen und schaltet das Licht ein, wenn der Schwellenwert unterschritten wird.
- NearbyMotion: Wird bei Bewegung in angrenzenden Räumen ausgelöst, wechselt in den Zustand Nearby.
- Timeout: Löst nach Ablauf voreingestellter Timer Zustandswechsel oder Abschaltaktionen aus.
- Override: Manuelle Lichtsteuerung, die die Automatisierung übersteuert und zum Zustand Manual führt.
Die Zustände sind zentrale Komponenten der Steuerung, die spezifische Aktionen verarbeiten und Übergänge einleiten:
- Idle: Kein Lichtbedarf, das Licht ist aus.
- Motion und Illuminance können bei Bewegung und unterschrittener Helligkeit zum Zustand Detected führen.
- NearbyMotion wechselt in den Zustand Nearby.
- Nearby: Bewegung in angrenzenden Bereichen; das Licht ist kurzzeitig an.
- Motion wechselt in den Zustand Detected.
- Timeout leitet bei Inaktivität den Zustand Cooldown ein.
- Detected: Hauptbewegung identifiziert, das Licht ist an.
- Timeout ohne neue Bewegung wechselt zu Idle.
- Manual: Licht manuell gesteuert.
- Bleibt bis Timeout den Wechsel zu Idle initiiert.
- Cooldown: Licht aus nach nahegelegener Bewegung, um Energie zu sparen.
- Timeout im Cooldown führt zurück zu Idle.
Steuerung der Zustandsübergänge: Update-Methode
Die update
-Methode ist das Herzstück der Zustandslogik. Sie wird immer dann aufgerufen, wenn ein spezifisches Ereignis eintritt, und arbeitet daraufhin den aktuellen Zustand ab:
|
|
- Zustandsüberwachung: Vergleich des aktuellen Zustands mit dem berechneten neuen Zustand. Falls diese unterschiedlich sind oder doppelte Trigger nötig sind, wird der Zustand aktualisiert.
- Maßnahmeneinleitung: Basierend auf dem neuen Zustand führt das System entsprechende Maßnahmen durch, z.B. das Licht wird ein- oder ausgeschaltet und Timer werden gesetzt.
Aktionserkennung und -verarbeitung: Process-Action-Methode
Die process_action
-Methode analysiert die Aktionen, die beim Eintreten von Ereignissen auftreten, um die Kontrolle über das Zustandsverhalten zu verfeinern:
|
|
- Aktionsevaluation: Die Methode evaluiert die eingehende Aktion basierend auf dem aktuellen Zustand.
- Zustandslogikimplementierung: Dabei werden Regeln verwendet, um den neuen Zustand festzulegen oder gegebenenfalls einen Retrigger zu initiieren.
- Flexibilität und Anpassungsfähigkeit: Diese Logik ermöglicht es der Anwendung, flexibel auf unerwartete Ereignisse zu reagieren und die Automatisierung anzupassen.
Fazit und Ausblick
Dieses Projekt hat gezeigt, wie eine flexible und anpassungsfähige Beleuchtungssteuerung im Smart Home erfolgreich umgesetzt werden kann. Durch die Integration einer Zustandsmaschine wird nicht nur der Energieverbrauch optimiert, sondern auch der Komfort des Nutzers erheblich gesteigert.
AppDaemon spielt hierbei eine entscheidende Rolle, da es Möglichkeiten bietet, die über die Standard-Automationen von Home Assistant weit hinausgehen. Mit AppDaemon lassen sich komplexere logische Bedingungen und maßgeschneiderte Automatisierungen mit größerer Flexibilität umsetzen, dank der Möglichkeit, Python-Code zu nutzen und externe Bibliotheken oder APIs einzubinden.
In Zukunft plane ich, Radarsensoren in die Automatisierung zu integrieren. Diese Sensoren, die bereits im Handel erhältlich sind, bieten eine stark verbesserte Präzision bei der Bewegungserkennung, sogar in anspruchsvollen Umgebungen. Ihre Implementierung wird ein weiterer Schritt sein, um die Zuverlässigkeit und Effizienz der Beleuchtungssteuerung weiter zu erhöhen.
Zusammengefasst liefert dieses Projekt eine solide Grundlage für künftige Entwicklungen. Es ist bestens gerüstet, um sowohl aktuellen Anforderungen gerecht zu werden als auch auf kommende technologische Veränderungen vorbereitet zu sein.