In unserem Teamcamp 2022 haben wir uns vor die Herausforderung gestellt, mit Netatmo-Produkten unser Office neu und innovativ zu gestalten.
Netatmo ist eine Firma, die vor allem Sicherheitssysteme, wie Kameras oder smarte Türklingeln herstellt, aber auch Smart-Home-Geräte verkauft. Wir haben in unserem Office einen Raumluftsensor und eine smarte Lampe installiert. Mit diesen beiden Geräten haben wir uns nun verschiedene Ziele gesetzt:
- Zum Einen wollten wir mit dem Raumluftsensor erreichen, dass je nach CO2 Gehalt in der Luft eine andere Farbe auf unserer Philips Hue angezeigt wird. Philips Hue ist eine smarte Lampe, die intelligent über eine App gesteuert werden kann.
- Zum Anderen war unser Ziel, Presence Detection so einzurichten, dass sie, immer wenn eine Person das Büro betritt oder verlässt, ein Lichtsignal via Philips Hue Lampe sendet, damit wir indirekt über die Anwesenheit unserer Kollegen in den anderen Stockwerken informiert werden.
Projekt Raumluftsensor
Zu Beginn wollten wir die Umsetzung mit IFTTT gestalten, doch dies haben wir schnell wieder verworfen, da die Kommunikation mittels Payload unter den Automationen nicht gut genug unterstützt wurde. Also sind wir zur Open Source Smart Home Zentrale “Home Assistant” gewechselt. Dafür haben wir zunächst die verschiedenen Hardware Komponenten in Home Assistant integriert. Die Hue Bridge sollte dabei mit einer Lampe verbunden werden und der Raumluftsensor, sowie unser Presence Detection via Unifi Network musste eingerichtet werden.
Nun ging es an die Umsetzung der CO2-Anzeige. Nachdem wir die verschiedenen Integrationen miteinander verknüpft hatten, haben wir eine neue Automation mit Triggern eingebaut. So hat die Lampe bei einem CO2 Gehalt von 700 ppm grün geleuchtet, bei 700 - 1000 ppm orange und bei einem Wert von über 1000 ppm rot.
Im Codesnippet unten wird gezeigt, wie solche Automatisierungstrigger in einer YAML-Datei definiert werden können. Über einen Service kann die Lampe eingeschaltet werden und die Farbe für den jeweiligen Zustand mitgegeben werden.
- id: '1662450819142'
alias: Netatmo C02
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.buro_sensor_1_co2
below: '700'
- platform: numeric_state
entity_id: sensor.buro_sensor_1_co2
above: '700'
below: '1000'
- platform: numeric_state
entity_id: sensor.buro_sensor_1_co2
above: '1000'
condition: []
action:
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.buro_sensor_1_co2
below: '700'
sequence:
- service: light.turn_on
data:
rgb_color:
- 0
- 255
- 0
brightness_pct: 100
target:
entity_id: light.hue_color_lamp_1
- conditions:
- condition: numeric_state
entity_id: sensor.buro_sensor_1_co2
above: '700'
below: '1000'
sequence:
- service: light.turn_on
data:
rgb_color:
- 255
- 136
- 0
brightness_pct: 100
target:
entity_id: light.hue_color_lamp_1
- conditions:
- condition: numeric_state
entity_id: sensor.buro_sensor_1_co2
above: '1000'
sequence:
- service: light.turn_on
data:
rgb_color:
- 255
- 0
- 0
brightness_pct: 100
target:
entity_id: light.hue_color_lamp_1
default: []
mode: single
Projekt Presence Detection
Neben dem Ziel, die Raumluftqualität zu visualisieren, sollte ein Lichtsignal via Philipps Hue Lampe gesendet werden, immer wenn eine Person das Büro betritt oder verlässt. Je nachdem, ob eine Person kommt oder geht, sollte ein entsprechender Effekt - fade in, fade out - ausgelöst werden.
Die persönliche Farbe wird dann für 30 Sekunden angezeigt. Davon 20 Sekunden im statischen Modus und 10 Sekunden lang als Verlauf. Wenn mehrere Personen das Büro betreten, sollen die Signale nacheinander angezeigt werden.
In der Umsetzung haben wir neue Entities für Personen erstellt, um diese mit der MAC Adresse zu verknüpfen. Auch hier haben wir eine Automation mit Triggern eingefügt, für welche wir eine neue Queue in das System einarbeiteten.
Umsetzung der Presence
Neue Entities für Personen um MAC Address zu verknüpfen
Neue Automation mit Trigger (Status der Person ändert sich → home und not_home)
Automation wird in einer Queue abgearbeitet
Persönliche Farbe des Mitarbeiters via einer API abfragen (diese wurde von einem anderen Projektteam gebaut)
Je nach Fall (enter, leave) wird ein fade-in oder fade-out mit der geforderten Farbe mit der Lampe angezeigt (20 Sekunden statisch, 10 Sekunden Verlauf)
Kommunikation zwischen den Automationen umsetzen
- Neue Automation (sync) mit Trigger (Queue 0 oder > 0)
Ziel: CO2 Anzeige kann nicht Presence Anzeige überschreiben, sobald Presence Automation(en) abgearbeitet wurden, wird die Luftqualität wieder angezeigt
Wenn die letzte Person aus der Queue geht (0) wird Netatmo Automation enabled und ausgelöst
Wenn die erste Person die Queue betritt, wird die Netatmo Automation disabled