{"id":384,"date":"2026-05-18T21:23:18","date_gmt":"2026-05-18T19:23:18","guid":{"rendered":"https:\/\/www.coremind.ch\/wordpress\/?p=384"},"modified":"2026-05-18T21:23:18","modified_gmt":"2026-05-18T19:23:18","slug":"mi-air-purifier-pollen-steuerung-mit-ha","status":"publish","type":"post","link":"https:\/\/www.coremind.ch\/wordpress\/mi-air-purifier-pollen-steuerung-mit-ha\/","title":{"rendered":"Mi Air Purifier: Pollen-Steuerung mit HA"},"content":{"rendered":"<p>Mai 2026, das Wetter ist endlich freundlich, und die Pollenbelastung im Schweizer Mittelland geht wieder durch die Decke. Gr\u00e4ser, Birke, Esche \u2013 wer Allergiker ist, kennt den Frust: Frische Luft beim ge\u00f6ffneten Fenster bedeutet rote Augen, geschwollene Nase und schlechten Schlaf. Mein Mi Air Purifier 3\/3H (<code>fan.zhimi_mb3_b2e5_air_purifier<\/code>) l\u00e4uft seit zwei Jahren in Home Assistant, aber bisher manuell. Diese Woche habe ich ihn an Pollenflug, Aussenluftqualit\u00e4t und Anwesenheit gekoppelt. Das Ergebnis: deutlich ruhigere N\u00e4chte und ein Filter, der nicht 24\/7 sinnlos die Wohnung leerpustet.<\/p>\n<h2>Das Problem: stupides Dauerlaufen kostet Filter und Strom<\/h2>\n<p>Der Mi Air Purifier kennt drei n\u00fctzliche Modi: Auto, Favorit (feste Drehzahl) und Schlafmodus. Im Auto-Modus misst das Ger\u00e4t die Partikel direkt am Standort \u2013 das ist gut, reagiert aber tr\u00e4ge auf Pollen, die durchs Fenster reinkommen. Wer das Ger\u00e4t nur nach Bedarf laufen lassen will, braucht eine Information, die Mi selbst nicht hat: Wie hoch ist der Pollenflug draussen? Wie ist die Luftqualit\u00e4t auf der Strasse? Sind die Bewohner zu Hause oder schon im Bett?<\/p>\n<p>Genau das l\u00f6st Home Assistant: Es kombiniert die Pollendaten von MeteoSchweiz, den AQI-Wert von einer \u00f6ffentlichen Sensorstation, die Anwesenheitsinformation aus dem Hausnetz \u2013 und steuert daraus den Luftreiniger intelligent.<\/p>\n<h2>Schritt 1: Pollendaten und Luftqualit\u00e4t als Sensor<\/h2>\n<p>MeteoSchweiz liefert Pollenwerte f\u00fcr Birke, Gr\u00e4ser, Esche und Beifuss \u00fcber die kostenlose API \u2013 in HA via REST-Sensor einbindbar. Wer es einfacher will, nutzt die Community-Integration \u00abPollenFlug\u00bb aus HACS, die die t\u00e4glichen Werte automatisch aktualisiert. Erg\u00e4nzend liefert die Sensor.community oder Airly-Karte den lokalen PM2.5-Wert.<\/p>\n<pre><code>\r\nsensor:\r\n  - platform: rest\r\n    name: pollen_graeser\r\n    resource: https:\/\/app-prod-ws.meteoswiss-app.ch\/v1\/plot\/pollen\/wallisellen\r\n    value_template: \"{{ value_json.graeser.today.level }}\"\r\n    scan_interval: 3600\r\n  - platform: rest\r\n    name: aqi_wallisellen\r\n    resource: https:\/\/api.openaq.org\/v3\/locations\/76543\/latest\r\n    value_template: \"{{ value_json.results[0].measurements[0].value }}\"\r\n    scan_interval: 1800\r\n<\/code><\/pre>\n<p>Das Sensor-Setup l\u00e4uft st\u00fcndlich, mehr braucht es nicht \u2013 Pollendaten \u00e4ndern sich nicht im Minutentakt.<\/p>\n<h2>Schritt 2: Den Schwellwert als input_number<\/h2>\n<p>F\u00fcr Allergiker hat sich ein abgestufter Schwellwert bew\u00e4hrt. Statt einer harten Ein\/Aus-Logik definiere ich drei Stufen via <code>input_number<\/code>, die in der Automation referenziert werden.<\/p>\n<pre><code>\r\ninput_number:\r\n  pollen_schwelle_aktiv:\r\n    name: Pollen-Schwelle aktiv\r\n    min: 1\r\n    max: 4\r\n    step: 1\r\n    initial: 2\r\n    icon: mdi:flower-pollen\r\n<\/code><\/pre>\n<p>Stufe 1 = \u00ableichte Belastung schon ein\u00bb; Stufe 4 = \u00abnur bei sehr hoher Belastung\u00bb. Das macht das Setup f\u00fcr Saisons und Personen anpassbar, ohne die Automation zu \u00e4ndern.<\/p>\n<h2>Schritt 3: Die Automation<\/h2>\n<p>Die Hauptlogik koppelt drei Bedingungen: Pollen oder AQI \u00fcber Schwellwert, jemand zu Hause, nicht bereits manuell aus. Bei Erf\u00fcllung schaltet HA den Reiniger auf Auto, bei Schlafenszeit auf den leisen Schlafmodus.<\/p>\n<pre><code>\r\nautomation:\r\n  - alias: \"Air Purifier: Pollen-gesteuert ein\"\r\n    trigger:\r\n      - platform: state\r\n        entity_id: sensor.pollen_graeser\r\n      - platform: state\r\n        entity_id: sensor.aqi_wallisellen\r\n    condition:\r\n      - condition: or\r\n        conditions:\r\n          - condition: numeric_state\r\n            entity_id: sensor.pollen_graeser\r\n            above: input_number.pollen_schwelle_aktiv\r\n          - condition: numeric_state\r\n            entity_id: sensor.aqi_wallisellen\r\n            above: 50\r\n      - condition: state\r\n        entity_id: group.bewohner\r\n        state: \"home\"\r\n    action:\r\n      - choose:\r\n          - conditions:\r\n              - condition: time\r\n                after: \"22:30:00\"\r\n                before: \"06:30:00\"\r\n            sequence:\r\n              - service: fan.set_preset_mode\r\n                target:\r\n                  entity_id: fan.zhimi_mb3_b2e5_air_purifier\r\n                data:\r\n                  preset_mode: \"Silent\"\r\n        default:\r\n          - service: fan.set_preset_mode\r\n            target:\r\n              entity_id: fan.zhimi_mb3_b2e5_air_purifier\r\n            data:\r\n              preset_mode: \"Auto\"\r\n\r\n  - alias: \"Air Purifier: Niemand zu Hause\"\r\n    trigger:\r\n      - platform: state\r\n        entity_id: group.bewohner\r\n        to: \"not_home\"\r\n        for: \"00:30:00\"\r\n    action:\r\n      - service: fan.turn_off\r\n        target:\r\n          entity_id: fan.zhimi_mb3_b2e5_air_purifier\r\n<\/code><\/pre>\n<p>Die 30-Minuten-Verz\u00f6gerung bei Abwesenheit vermeidet, dass das Ger\u00e4t bei kurzen Einkaufstouren ausgeht.<\/p>\n<h2>Schritt 4: Dashboard und Notification<\/h2>\n<p>Ein kleines Mushroom-Card-Setup zeigt aktuelle Pollenwerte, AQI und den Reiniger-Status nebeneinander. Eine zus\u00e4tzliche Automation pingt morgens um 7:00 eine TTS-Nachricht aufs HomePod-Mini, wenn Pollen \u00fcber Stufe 3 sind \u2013 das spart das Fenster\u00f6ffnen, das wir sonst aus Gewohnheit machen.<\/p>\n<pre><code>\r\n- alias: \"Pollen-Warnung morgens\"\r\n  trigger:\r\n    platform: time\r\n    at: \"07:00:00\"\r\n  condition:\r\n    - condition: numeric_state\r\n      entity_id: sensor.pollen_graeser\r\n      above: 3\r\n  action:\r\n    - service: tts.cloud_say\r\n      data:\r\n        entity_id: media_player.homepod\r\n        message: \"Achtung, heute hohe Pollenbelastung. Fenster besser zu lassen.\"\r\n<\/code><\/pre>\n<p>Wer sch\u00f6ne Dashboards mit \u00e4hnlicher Logik bauen will, findet im Artikel zu <a href=\"https:\/\/www.coremind.ch\/wordpress\/mushroom-bubble-cards-dashboards\/\">Mushroom und Bubble Cards<\/a> eine gute Grundlage \u2013 das passt visuell perfekt zu dieser Pollen-Karte.<\/p>\n<h2>Fazit: Saison-Setup, das wirklich hilft<\/h2>\n<p>Drei Tage nach Aktivierung lief der Mi Air Purifier rund ein Drittel weniger Stunden als zuvor \u2013 n\u00e4mlich pr\u00e4zise dann, wenn es notwendig war. Die Filterlebensdauer d\u00fcrfte sich entsprechend verl\u00e4ngern, die Schlafqualit\u00e4t ist messbar besser. Wer von Pollenflug genervt ist, holt sich mit drei kleinen YAML-Bausteinen und einem nachmitt\u00e4glichen Bastel-Setup ein St\u00fcck Lebensqualit\u00e4t zur\u00fcck. F\u00fcr mich ist das der Lieblings-Use-Case im Mai.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mai 2026, das Wetter ist endlich freundlich, und die Pollenbelastung im Schweizer Mittelland geht wieder durch die Decke. Gr\u00e4ser, Birke, Esche \u2013 wer Allergiker ist, kennt den Frust: Frische Luft beim ge\u00f6ffneten Fenster bedeutet rote Augen, geschwollene Nase und schlechten Schlaf. Mein Mi Air Purifier 3\/3H (fan.zhimi_mb3_b2e5_air_purifier) l\u00e4uft seit zwei Jahren in Home Assistant, aber &#8230; <a title=\"Mi Air Purifier: Pollen-Steuerung mit HA\" class=\"read-more\" href=\"https:\/\/www.coremind.ch\/wordpress\/mi-air-purifier-pollen-steuerung-mit-ha\/\" aria-label=\"Mehr Informationen \u00fcber Mi Air Purifier: Pollen-Steuerung mit HA\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-384","post","type-post","status-publish","format-standard","hentry","category-ha"],"_links":{"self":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/384","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/comments?post=384"}],"version-history":[{"count":1,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/384\/revisions"}],"predecessor-version":[{"id":385,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/384\/revisions\/385"}],"wp:attachment":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=384"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=384"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}