{"id":391,"date":"2026-05-18T21:53:01","date_gmt":"2026-05-18T19:53:01","guid":{"rendered":"https:\/\/www.coremind.ch\/wordpress\/?p=391"},"modified":"2026-05-18T21:53:01","modified_gmt":"2026-05-18T19:53:01","slug":"smart-window-handle-fenster-status-klug-in-ha-nutzen","status":"publish","type":"post","link":"https:\/\/www.coremind.ch\/wordpress\/smart-window-handle-fenster-status-klug-in-ha-nutzen\/","title":{"rendered":"Smart Window Handle: Fenster-Status klug in HA nutzen"},"content":{"rendered":"<p>In meinem Setup h\u00e4ngt seit ein paar Monaten ein Aqara Smart Window Handle am B\u00fcrofenster, das mir gleich drei Datenpunkte in Home Assistant liefert: ob das Fenster geschlossen, gekippt oder ganz ge\u00f6ffnet ist \u2013 und dazu Batteriespannung, Firmware-Status und einen Lock-Zustand. Das ist deutlich mehr als ein klassischer Magnet-Reed-Sensor, und genau diese Drei-Stufen-Logik l\u00e4sst sich f\u00fcr Heizung, L\u00fcftung und Schallschutz hervorragend verwerten.<\/p>\n<p>Im Klartext sind das die Entit\u00e4ten, die der Sensor in HA bereitstellt:<\/p>\n<pre><code>\r\nlock.smart_window_handle              # locked \/ unlocked\r\nbinary_sensor.smart_window_handle_tur       # Fensterkontakt (off=zu)\r\nbinary_sensor.smart_window_handle_tur_2     # Verriegelung (off=offen)\r\nselect.smart_window_handle_betriebsart      # normal \/ silence \/ ...\r\nsensor.smart_window_handle_batterie         # 97 %\r\nupdate.smart_window_handle_firmware\r\n<\/code><\/pre>\n<p>Die <code>lock<\/code>-Entit\u00e4t spiegelt den Riegel des Griffs, der Fensterkontakt erkennt das \u00d6ffnen, und die zweite Binary-Entit\u00e4t meldet, ob der Riegel in \u201eVerriegelt&#8220;-Position steht. Aus der Kombination der drei Werte ergibt sich der wirkliche Fensterzustand.<\/p>\n<h2>Drei Zust\u00e4nde sauber unterscheiden<\/h2>\n<p>Klassische Reed-Sensoren liefern nur \u201eauf oder zu&#8220;. Das ist zu wenig, weil ein gekipptes Fenster bei \u20132 \u00b0C im Winter etwas v\u00f6llig anderes f\u00fcr die W\u00e4rmepumpe bedeutet als ein weit offenes. Mit einem Template-Sensor lassen sich die drei realen Zust\u00e4nde sauber abbilden:<\/p>\n<pre><code>\r\ntemplate:\r\n  - sensor:\r\n      - name: \"Fensterstatus B\u00fcro\"\r\n        unique_id: window_office_state\r\n        state: &gt;\r\n          {% set zu = is_state('binary_sensor.smart_window_handle_tur','off') %}\r\n          {% set verriegelt = is_state('binary_sensor.smart_window_handle_tur_2','off') %}\r\n          {% if zu and verriegelt %}geschlossen\r\n          {% elif zu and not verriegelt %}gekippt\r\n          {% else %}offen\r\n          {% endif %}\r\n        icon: &gt;\r\n          {% if is_state(this.entity_id,'geschlossen') %}mdi:window-closed-variant\r\n          {% elif is_state(this.entity_id,'gekippt') %}mdi:window-shutter-open\r\n          {% else %}mdi:window-open-variant\r\n          {% endif %}\r\n<\/code><\/pre>\n<p>Jetzt liefert <code>sensor.fensterstatus_buro<\/code> einen der drei Strings, und alle nachgelagerten Automationen werden lesbar \u2013 kein Verwurschteln mehr von zwei Binary-Sensoren in jeder Bedingung.<\/p>\n<h2>Heizung pausieren, aber intelligent<\/h2>\n<p>Die naheliegende Automation ist \u201eFenster auf, Heizung aus&#8220;. Bei einer W\u00e4rmepumpe oder einer Bodenheizung ist das aber zu grob: Wer den Heizkreis bei einem zwei-Minuten-L\u00fcften herunterf\u00e4hrt, riskiert Takten und Komfortverlust. Kl\u00fcger ist eine Karenzzeit plus Unterscheidung zwischen gekippt und offen.<\/p>\n<pre><code>\r\nautomation:\r\n  - alias: \"Heizung pausieren bei offenem Fenster\"\r\n    trigger:\r\n      - platform: state\r\n        entity_id: sensor.fensterstatus_buro\r\n        to: \"offen\"\r\n        for: \"00:03:00\"\r\n      - platform: state\r\n        entity_id: sensor.fensterstatus_buro\r\n        to: \"gekippt\"\r\n        for: \"00:10:00\"\r\n    action:\r\n      - service: climate.set_hvac_mode\r\n        target:\r\n          entity_id: climate.zhimi_mc2a_01a5_heater\r\n        data:\r\n          hvac_mode: \"off\"\r\n  - alias: \"Heizung zur\u00fcck nach Fenster zu\"\r\n    trigger:\r\n      - platform: state\r\n        entity_id: sensor.fensterstatus_buro\r\n        to: \"geschlossen\"\r\n        for: \"00:01:00\"\r\n    action:\r\n      - service: climate.set_hvac_mode\r\n        target:\r\n          entity_id: climate.zhimi_mc2a_01a5_heater\r\n        data:\r\n          hvac_mode: \"heat\"\r\n<\/code><\/pre>\n<p>Drei Minuten Karenz bei offenem, zehn Minuten bei gekipptem Fenster verhindern Fehlschaltungen beim kurzen L\u00fcften. Wer die W\u00e4rmepumpe direkt anbinden m\u00f6chte, sollte die HVAC-Modi durch eine <code>input_boolean<\/code> erg\u00e4nzen, die als Pause-Flag im Heizkreis-Regelautomat ausgewertet wird \u2013 Direkteingriffe in den Verdichter sind zu vermeiden.<\/p>\n<h2>L\u00fcftungs-Erinnerung statt Klimaanlage<\/h2>\n<p>Im Sommer kehrt sich das Problem um: Wer bei 30 \u00b0C aussen die Fenster offen l\u00e4sst, holt sich Hitze ins Haus. Eine Erinnerungs-Automation, die abh\u00e4ngig von Wetterstation und Innen-Temperatur entscheidet, hilft mehr als jede teure Klima-Investition:<\/p>\n<pre><code>\r\nautomation:\r\n  - alias: \"Erinnerung Fenster schliessen bei Hitze\"\r\n    trigger:\r\n      - platform: numeric_state\r\n        entity_id: sensor.weather_station_outdoor_temperatur\r\n        above: 26\r\n    condition:\r\n      - condition: state\r\n        entity_id: sensor.fensterstatus_buro\r\n        state: \"offen\"\r\n      - condition: numeric_state\r\n        entity_id: sensor.weather_station_indoor_temperatur\r\n        below: 24\r\n    action:\r\n      - service: notify.mobile_app_iphone\r\n        data:\r\n          message: \"Fenster B\u00fcro zu \u2013 aussen w\u00e4rmer als drinnen.\"\r\n<\/code><\/pre>\n<h2>Was sonst noch sinnvoll ist<\/h2>\n<p>Der Griff bringt mit <code>select.smart_window_handle_betriebsart<\/code> auch einen Silent-Mode mit \u2013 praktisch f\u00fcr die Nacht, um Wackel-Vibrationsalarme zu unterdr\u00fccken. Wer den Sensor in der Alarm-Logik nutzen will, sollte den Lock-Status (<code>lock.smart_window_handle<\/code>) mit auswerten: Ein offener, aber unverriegelter Griff ohne erkannte \u00d6ffnung ist oft ein Hinweis auf einen vergessenen L\u00fcftungsvorgang oder ein versuchtes Aufhebeln.<\/p>\n<p>Das Sch\u00f6ne an der L\u00f6sung: alles bleibt lokal \u00fcber Zigbee, kein Cloud-Account, keine Aqara-App-Pflicht. Wer mehr als ein Fenster ausstattet, baut sich auf identischer Logik ein Multi-Raum-Modell und kann ganze Stockwerke per <code>group<\/code> oder <code>template<\/code> zusammenf\u00fchren.<\/p>\n<p>Wer den Heizungs-Teil dieses Setups bereits mit COP-Monitoring oder PV-Steuerung erweitert hat, findet im <a href=\"https:\/\/www.coremind.ch\/wordpress\/\">HA-Archiv auf coremind.ch<\/a> passende Vorarbeiten \u2013 etwa zur W\u00e4rmepumpen-Verdichterlogik oder zum mmWave-basierten Anwesenheitssensor. Zusammen entsteht ein Setup, das Energie nicht nur misst, sondern wirklich kl\u00fcger einsetzt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In meinem Setup h\u00e4ngt seit ein paar Monaten ein Aqara Smart Window Handle am B\u00fcrofenster, das mir gleich drei Datenpunkte in Home Assistant liefert: ob das Fenster geschlossen, gekippt oder ganz ge\u00f6ffnet ist \u2013 und dazu Batteriespannung, Firmware-Status und einen Lock-Zustand. Das ist deutlich mehr als ein klassischer Magnet-Reed-Sensor, und genau diese Drei-Stufen-Logik l\u00e4sst sich &#8230; <a title=\"Smart Window Handle: Fenster-Status klug in HA nutzen\" class=\"read-more\" href=\"https:\/\/www.coremind.ch\/wordpress\/smart-window-handle-fenster-status-klug-in-ha-nutzen\/\" aria-label=\"Mehr Informationen \u00fcber Smart Window Handle: Fenster-Status klug in HA nutzen\">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-391","post","type-post","status-publish","format-standard","hentry","category-ha"],"_links":{"self":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/391","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=391"}],"version-history":[{"count":1,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/391\/revisions"}],"predecessor-version":[{"id":394,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/391\/revisions\/394"}],"wp:attachment":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}