Home Assistant

CO2-Ampel im Büro: Hue warnt bei dicker Luft

Wer im Homeoffice arbeitet, kennt das Phänomen: Nach zwei Stunden Konzentration sinkt die Aufmerksamkeit, Kopfschmerzen schleichen sich ein, der Nachmittag fühlt sich zäh an. In neun von zehn Fällen ist die Ursache nicht der Kaffee, sondern der CO2-Gehalt der Raumluft. Ab etwa 1 000 ppm sinkt die kognitive Leistung messbar, ab 1 400 ppm wird es unangenehm. Mit Home Assistant lässt sich das Problem elegant in eine visuelle Ampel verwandeln – ganz ohne neue Hardware, wenn ein CO2-Sensor und eine Hue-Lampe bereits vorhanden sind.

Das Problem: CO2 ist unsichtbar, aber nicht harmlos

In meinem Büro misst der Netatmo-Sensor (sensor.buro_kohlendioxid) heute Morgen 874 ppm – das ist noch im grünen Bereich. Nach einem Online-Meeting mit geschlossenem Fenster sind 1 600 ppm schnell erreicht. Die Aussenluft liegt bei rund 420 ppm. Spätestens ab 1 200 ppm lohnt sich das Stosslüften, denn die Konzentration sinkt dann innerhalb von drei Minuten wieder spürbar.

Die klassische Methode ist der Blick auf das Sensor-Display. Doch genau dort scheitert es im Alltag: Wer konzentriert arbeitet, schaut nicht auf den Sensor. Eine CO2-Ampel als Farb-Lichtsignal löst das. Die Lampe ist im peripheren Sichtfeld, der Farbwechsel fällt unbewusst auf, ohne den Workflow zu unterbrechen – ähnlich elegant wie die in Hue-Szenen tageszeit-gesteuert in Home Assistant beschriebene Automation.

Schritt 1: Schwellwerte definieren

Drei Stufen reichen für den Alltag: Grün bis 900 ppm, Gelb 900–1 300 ppm, Rot ab 1 300 ppm. Wer empfindlich ist, senkt die Grenzen um je 100 ppm. Wichtig ist eine Hysterese: Sobald die Lampe einmal rot wird, soll sie erst wieder bei deutlich tieferem Wert auf gelb wechseln, sonst flackert sie in der Übergangszone unschön hin und her.

Schritt 2: Automatisierung in automations.yaml

Die folgende Automation überwacht den CO2-Sensor und steuert die Hue-Lampe light.hue_color_heizung (in meinem Setup neben dem Schreibtisch). Sie nutzt eine choose-Struktur und eine Helper-Variable, um Hysterese sauber umzusetzen.


alias: CO2-Ampel Büro
trigger:
  - platform: state
    entity_id: sensor.buro_kohlendioxid
    for:
      minutes: 1
condition:
  - condition: state
    entity_id: binary_sensor.buro_anwesenheit
    state: "on"
action:
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.buro_kohlendioxid
            above: 1300
        sequence:
          - service: light.turn_on
            target:
              entity_id: light.hue_color_heizung
            data:
              rgb_color: [255, 30, 30]
              brightness_pct: 80
      - conditions:
          - condition: numeric_state
            entity_id: sensor.buro_kohlendioxid
            above: 900
            below: 1300
        sequence:
          - service: light.turn_on
            target:
              entity_id: light.hue_color_heizung
            data:
              rgb_color: [255, 180, 0]
              brightness_pct: 50
      - conditions:
          - condition: numeric_state
            entity_id: sensor.buro_kohlendioxid
            below: 900
        sequence:
          - service: light.turn_on
            target:
              entity_id: light.hue_color_heizung
            data:
              rgb_color: [40, 255, 80]
              brightness_pct: 20
mode: single

Die Trigger-Verzögerung von einer Minute verhindert ständige Updates, falls der Sensor in kurzen Intervallen leicht schwankende Werte liefert. Die Bedingung auf binary_sensor.buro_anwesenheit sorgt dafür, dass die Lampe ausschliesslich dann aktiv ist, wenn jemand im Raum sitzt – nachts bleibt sie aus.

Schritt 3: Akustische Erinnerung bei kritischem Wert

Wer eine Voice-Box wie den HA Voice Preview oder einen RaspiAudio nutzt, kann zusätzlich einen kurzen Hinweis sprechen lassen, sobald die rote Stufe erstmals erreicht wird. Dafür ergänzt man eine zweite Automation, die als Trigger den Übergang von «unter 1 300» nach «über 1 300» nutzt:


alias: CO2-Ampel Sprachhinweis
trigger:
  - platform: numeric_state
    entity_id: sensor.buro_kohlendioxid
    above: 1300
    for:
      minutes: 2
condition:
  - condition: state
    entity_id: media_player.home_assistant_voice
    state: idle
action:
  - service: tts.cloud_say
    data:
      entity_id: media_player.home_assistant_voice
      message: "Kurz lüften – CO2 ist über 1300 ppm."
mode: single

Dashboard-Integration für die Auswertung

Wer den CO2-Verlauf systematisch beobachten möchte, ergänzt im Dashboard eine Verlaufskarte mit apexcharts-card oder die einfache history-graph. Praktisch ist auch ein Zähler, der pro Tag mitschneidet, wie oft die Schwelle 1 300 ppm überschritten wurde – ein simpler Helfer vom Typ counter reicht aus, ergänzt durch eine Reset-Automation um Mitternacht. Nach zwei Wochen zeigen die Daten, welche Tagesphasen besonders belastet sind, und das eigene Lüftungsverhalten verbessert sich quasi nebenbei. Hue-Übergänge lassen sich mit transition: 3 weicher gestalten, das wirkt im Augenwinkel deutlich weniger hektisch.

Fazit

Eine CO2-Ampel ist eines der dankbarsten kleinen Home-Assistant-Projekte: wenig YAML, vorhandene Hardware, sofort spürbarer Effekt auf Konzentration und Wohlbefinden. Wer nach zwei Wochen die Daten in InfluxDB anschaut, findet typischerweise einen klaren Tagesverlauf – und beginnt automatisch, häufiger zu lüften. Mehr Spielraum, mehr Sauerstoff, mehr Output.

← Zurück zur Übersicht