{"id":6316,"date":"2026-09-01T14:03:50","date_gmt":"2026-09-01T14:03:50","guid":{"rendered":"https:\/\/netguide.io\/smart-home\/aqara-h2-eu-lichtschalter-zha-custom-quirk-decoupled-mode\/"},"modified":"2026-09-01T14:26:59","modified_gmt":"2026-09-01T14:26:59","slug":"aqara-h2-eu-lichtschalter-zha-custom-quirk-decoupled-mode","status":"publish","type":"post","link":"https:\/\/netguide.io\/smart-home\/de\/aqara-h2-eu-lichtschalter-zha-custom-quirk-decoupled-mode\/","title":{"rendered":"Aqara Lichtschalter H2 EU in ZHA: Decoupled Mode per Custom-Quirk aktivieren"},"content":{"rendered":"<div id=\"netgu-3518012825\" class=\"netgu-before-content netgu-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-6258556257245998\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-6258556257245998\" \ndata-ad-slot=\"3494115342\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n<p class=\"wp-block-paragraph\"><strong>Die Aqara Lichtschalter H2 EU (Zigbee-Modell <code>lumi.switch.agl009<\/code>) laufen unter der ZHA-Integration von <a href=\"https:\/\/netguide.io\/smart-home\/category\/home-assistant\/\" data-internallinksmanager029f6b8e52c=\"2\" title=\"Home Assistant\">Home Assistant<\/a> nur rudiment\u00e4r: eine Schalt-Entit\u00e4t, Leistungs- und Energiewerte, sonst nichts. Kein Decoupled Mode, keine Klick-Events, keine LED- oder Power-On-Steuerung. Mit einem Custom-Quirk holst du das komplette Funktionsspektrum zur\u00fcck \u2013 ganz ohne Wechsel zu Zigbee2MQTT. Diese Anleitung zeigt Schritt f\u00fcr Schritt, wie es geht, und wurde am 1. September 2026 auf sechs Schaltern real durchgef\u00fchrt und verifiziert.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#problem\">Warum die H2 unter ZHA nur halb funktioniert<\/a><\/li>\n\n<li><a href=\"#voraussetzungen\">Voraussetzungen<\/a><\/li>\n\n<li><a href=\"#schritt1\">Schritt 1: Quirk-Ordner anlegen und in der YAML eintragen<\/a><\/li>\n\n<li><a href=\"#schritt2\">Schritt 2: Die Quirk-Datei installieren<\/a><\/li>\n\n<li><a href=\"#schritt3\">Schritt 3: Neu starten und pr\u00fcfen<\/a><\/li>\n\n<li><a href=\"#entitaeten\">Diese neuen Entit\u00e4ten bekommst du<\/a><\/li>\n\n<li><a href=\"#decoupled\">Decoupled Mode sicher einschalten<\/a><\/li>\n\n<li><a href=\"#events\">Klick-Events in Automationen nutzen<\/a><\/li>\n\n<li><a href=\"#grenzen\">Grenzen und Stolpersteine<\/a><\/li>\n\n<li><a href=\"#faq\">FAQ<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"problem\">Warum die H2 unter ZHA nur halb funktioniert<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bindet man den H2 in ZHA ein, bekommt man eine <code>switch<\/code>-Entit\u00e4t, Leistung, Energiez\u00e4hler, LQI\/RSSI, Identify und die Firmware-Info \u2013 mehr nicht. Zum Vergleich: Unter Zigbee2MQTT ist exakt dasselbe Ger\u00e4t vollst\u00e4ndig unterst\u00fctzt. Der Grund steckt in der Ger\u00e4te-Diagnose. L\u00e4dt man sie herunter (Einstellungen \u2192 Ger\u00e4te \u2192 das Ger\u00e4t \u2192 Men\u00fc \u2192 \u201eDiagnose herunterladen&#8221;), steht dort:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\"quirk_applied\": false,\n\"quirk_class\": \"zigpy.device.Device\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#e1e4e8\">\"quirk_applied\": false,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">\"quirk_class\": \"zigpy.device.Device\"<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Es greift also gar kein Quirk \u2013 zigpy wertet nur das rohe ZCL-Profil aus. Der herstellerspezifische Cluster <code>0xFCC0<\/code> ist zwar auf mehreren Endpoints vorhanden, seine Attributliste ist aber leer. Genau dort liegen aber Decoupled Mode, LED-Steuerung, Power-On-Verhalten, Relay-Lock und Multi-Click. Zus\u00e4tzlich bleiben die <code>multistate_input<\/code>-Cluster stumm, weshalb keine Tastendruck-Events entstehen. Ohne passenden Quirk kann ZHA diese Attribute schlicht nicht kennen. Wenn du die grunds\u00e4tzlichen Unterschiede der beiden Zigbee-Wege noch sortieren willst, hilft unser Vergleich <a href=\"https:\/\/netguide.io\/smart-home\/de\/zigbee2mqtt-vs-zha\/\">Zigbee2MQTT vs. ZHA<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"voraussetzungen\">Voraussetzungen<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/netguide.io\/smart-home\/category\/home-assistant\/\" data-internallinksmanager029f6b8e52c=\"2\" title=\"Home Assistant\">Home Assistant<\/a> 2026.8 oder neuer (getestet mit 2026.8.3 auf HA OS 18.2)<\/li>\n\n<li>Aktive ZHA-Integration (getestet mit <code>zha 2.1.0<\/code> \/ <code>zha-quirks 2.2.0<\/code>)<\/li>\n\n<li>Zugriff auf das <code>\/config<\/code>-Verzeichnis, z. B. \u00fcber das Add-on \u201eAdvanced SSH &amp; Web Terminal&#8221; oder \u201eFile editor&#8221;<\/li>\n\n<li>Der H2 EU als <code>lumi.switch.agl009<\/code> (2 Tasten\/1 Kanal) \u2013 der Quirk deckt zus\u00e4tzlich <code>agl010<\/code>, <code>agl004<\/code>, <code>agl005<\/code> und <code>agl006<\/code> ab<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Der fertige Quirk stammt aus dem noch offenen Pull Request <a href=\"https:\/\/github.com\/zigpy\/zha-device-handlers\/pull\/4141\" target=\"_blank\" rel=\"noopener\">zigpy\/zha-device-handlers #4141<\/a> (\u201eAdd Aqara H2 switches (EU+US)&#8221;). Weil er noch nicht in <code>zha-quirks 2.2.0<\/code> enthalten ist, binden wir ihn als lokalen Custom-Quirk ein.<\/p>\n\n\n\n<div class=\"wp-block-group aqara-buybox is-layout-constrained wp-container-core-group-is-layout-037d570b wp-block-group-is-layout-constrained\" style=\"border:1px solid #d7dde5;border-radius:12px;padding:20px\">\n<h3 class=\"wp-block-heading\">Passendes Ger\u00e4t: Aqara Lichtschalter H2 EU<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Genau das in dieser Anleitung verwendete Modell: 2-in-1 (mit\/ohne Neutralleiter), 2 Tasten \/ 1 Kanal, Thread &amp; Matter, Zigbee-Modell <code>lumi.switch.agl009<\/code>.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-color has-background wp-element-button\" style=\"color:#111111;background-color:#ff9900\" href=\"https:\/\/www.amazon.de\/dp\/B0DT68HB41?tag=netguideio-21\" target=\"_blank\" rel=\"sponsored nofollow noopener\">Bei Amazon.de ansehen<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\"><em>Affiliate-Link \u2013 kaufst du dar\u00fcber, unterst\u00fctzt du netguide.io ohne Mehrkosten f\u00fcr dich.<\/em><\/p>\n<\/div>\n\n\n\n<div id=\"netgu-3254541841\" class=\"netgu-content netgu-entity-placement\"><aside class=\"deals-top deals-top--compact\">\r\n\r\n\t\t\t<h3 class=\"deals-top__title\">Smart Home Deals<\/h3>\r\n\t\r\n\t\t\t<ul class=\"deals-top__list\">\r\n\t\t\t\t\t\t\t<li class=\"deals-top__item\">\r\n\t\t\t\t\t<a class=\"deals-top__link\" href=\"https:\/\/netguide.io\/deals\/de\/deals\/philips-hue-white-ambiance-e27-3er-starter-set-inkl-smart-button-dimmbar-alle-weissschattierungen-steuerbar-via-app-kompatibel-mit-amazon-alexa-echo-echo\/\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img class=\"deals-top__image\" src=\"https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/15\/2026\/09\/61pZ0xD9KGL._AC_SL1500_-150x150.jpg\" alt=\"\" width=\"52\" height=\"52\" loading=\"lazy\" \/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<span class=\"deals-top__body\">\r\n\t\t\t\t\t\t\t<span class=\"deals-top__name\">Philips Hue White Ambiance E27 3er Starter Set inkl. Smart Button, dimmbar, alle Wei\u00dfschattierungen, steuerbar via App, kompatibel mit Amazon Alexa (Echo, Echo\u2026<\/span>\r\n\r\n\t\t\t\t\t\t\t<span class=\"deals-top__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"deals-top__price\">77.99 \u20ac<\/span>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<s>129.99 \u20ac<\/s>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"deals-discount\">-40%<\/span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t<\/span>\r\n\r\n\t\t\t\t\t\t<span class=\"deals-top__temperature\">\r\n\t\t\t\t\t\t\t0\u00b0\r\n\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t<\/a>\r\n\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t<li class=\"deals-top__item\">\r\n\t\t\t\t\t<a class=\"deals-top__link\" href=\"https:\/\/netguide.io\/deals\/de\/deals\/philips-hue-e27-filament-grosse-edison-lampe-white-ambiance-alle-weisstoene-550-lm-dimmbar-leuchtmittel-fuer-das-hue-lichtsystem-app-und-sprachsteuerung-s\/\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img class=\"deals-top__image\" src=\"https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/15\/2026\/09\/61UiXJLhChL._AC_SL1500_-150x150.jpg\" alt=\"\" width=\"52\" height=\"52\" loading=\"lazy\" \/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<span class=\"deals-top__body\">\r\n\t\t\t\t\t\t\t<span class=\"deals-top__name\">Philips Hue E27 Filament Gro\u00dfe Edison Lampe | White Ambiance, Alle Wei\u00dft\u00f6ne, 550 lm, Dimmbar, Leuchtmittel f\u00fcr das Hue Lichtsystem, App- und Sprachsteuerung, S\u2026<\/span>\r\n\r\n\t\t\t\t\t\t\t<span class=\"deals-top__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"deals-top__price\">29.99 \u20ac<\/span>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<s>39.90 \u20ac<\/s>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"deals-discount\">-25%<\/span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t<\/span>\r\n\r\n\t\t\t\t\t\t<span class=\"deals-top__temperature\">\r\n\t\t\t\t\t\t\t0\u00b0\r\n\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t<\/a>\r\n\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t<li class=\"deals-top__item\">\r\n\t\t\t\t\t<a class=\"deals-top__link\" href=\"https:\/\/netguide.io\/deals\/de\/deals\/bosch-smart-home-heizkoerper-thermostat-ii-m-smartes-heizkoerperthermostat-intelligentes-heizen-energiesparen-matter-app-steuerung-apple-home-google-h\/\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img class=\"deals-top__image\" src=\"https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/15\/2026\/09\/512mj3mE3VL-150x150.jpg\" alt=\"\" width=\"52\" height=\"52\" loading=\"lazy\" \/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<span class=\"deals-top__body\">\r\n\t\t\t\t\t\t\t<span class=\"deals-top__name\">Bosch Smart Home Heizk\u00f6rper-Thermostat II [+M], smartes Heizk\u00f6rperthermostat, intelligentes Heizen &amp; Energiesparen, Matter, App-Steuerung, Apple Home, Google H\u2026<\/span>\r\n\r\n\t\t\t\t\t\t\t<span class=\"deals-top__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"deals-top__price\">49.89 \u20ac<\/span>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<s>58.76 \u20ac<\/s>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"deals-discount\">-15%<\/span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t<\/span>\r\n\r\n\t\t\t\t\t\t<span class=\"deals-top__temperature\">\r\n\t\t\t\t\t\t\t0\u00b0\r\n\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t<\/a>\r\n\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t<li class=\"deals-top__item\">\r\n\t\t\t\t\t<a class=\"deals-top__link\" href=\"https:\/\/netguide.io\/deals\/de\/deals\/amazon-fire-tv-stick-hd-neueste-generation-mit-alexa-sprachfernbedienung-free-live-tv-einfache-einrichtung-stromversorgung-ueber-tv\/\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img class=\"deals-top__image\" src=\"https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/15\/2026\/09\/61p8EZV0P2L._AC_SL1500_-150x150.jpg\" alt=\"\" width=\"52\" height=\"52\" loading=\"lazy\" \/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<span class=\"deals-top__body\">\r\n\t\t\t\t\t\t\t<span class=\"deals-top__name\">Amazon Fire TV Stick HD (neueste Generation) mit Alexa-Sprachfernbedienung, Free- &amp; Live-TV, einfache Einrichtung, Stromversorgung \u00fcber TV<\/span>\r\n\r\n\t\t\t\t\t\t\t<span class=\"deals-top__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"deals-top__price\">26.99 \u20ac<\/span>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<s>64.99 \u20ac<\/s>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"deals-discount\">-58%<\/span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t<\/span>\r\n\r\n\t\t\t\t\t\t<span class=\"deals-top__temperature\">\r\n\t\t\t\t\t\t\t0\u00b0\r\n\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t<\/a>\r\n\t\t\t\t<\/li>\r\n\t\t\t\t\t<\/ul>\r\n\r\n\t\t\t\t\t<p class=\"deals-top__more\">\r\n\t\t\t\t<a href=\"https:\/\/netguide.io\/deals\/\">Alle Deals ansehen \u2192<\/a>\r\n\t\t\t<\/p>\r\n\t\t\t<\/aside>\r\n<\/div><h2 class=\"wp-block-heading\" id=\"schritt1\">Schritt 1: Quirk-Ordner anlegen und in der YAML eintragen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ZHA l\u00e4dt Custom-Quirks aus einem Verzeichnis, das du in der <code>configuration.yaml<\/code> festlegst:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>zha:\n  enable_quirks: true\n  custom_quirks_path: \/config\/zha_quirks\/<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#e1e4e8\">zha:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">  enable_quirks: true<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">  custom_quirks_path: \/config\/zha_quirks\/<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-group has-luminous-vivid-amber-background-color has-background is-layout-constrained wp-container-core-group-is-layout-4667ddc0 wp-block-group-is-layout-constrained\" style=\"border-left-color:#f0b429;border-left-width:4px;padding-top:12px;padding-right:16px;padding-bottom:12px;padding-left:16px\">\n<p class=\"wp-block-paragraph\"><strong>Reihenfolge beachten:<\/strong> <a href=\"https:\/\/netguide.io\/smart-home\/category\/home-assistant\/\" data-internallinksmanager029f6b8e52c=\"2\" title=\"Home Assistant\">Home Assistant<\/a> pr\u00fcft den Pfad beim Start mit <code>cv.isdir<\/code>. Existiert der Ordner noch nicht, scheitert die Konfigurationspr\u00fcfung. Lege deshalb zuerst das Verzeichnis <code>\/config\/zha_quirks\/<\/code> an und erg\u00e4nze <em>danach<\/em> die YAML. Ein Feld im Options-Dialog der Integration gibt es daf\u00fcr nicht \u2013 das ist reine YAML-Konfiguration.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt2\">Schritt 2: Die Quirk-Datei installieren<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Am robustesten l\u00e4dst du die Datei direkt auf einen festen Commit gepinnt herunter \u2013 so \u00e4ndert sich der Inhalt nicht, w\u00e4hrend der PR weiterentwickelt wird. Im HA-Terminal:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>wget -O \/config\/zha_quirks\/switch_h2.py \\\n  https:\/\/raw.githubusercontent.com\/lonevvolf\/zha-device-handlers\/c06083b1d655c1787f5c0c2f56edd84b970328d4\/zhaquirks\/xiaomi\/aqara\/switch_h2.py\n\n# Integrit\u00e4t pr\u00fcfen (optional, aber empfohlen)\nsha256sum \/config\/zha_quirks\/switch_h2.py\n# fc846cbd24a37a51964196d999d46bc6516662d937227b9b1b2e1ed1410e017a  (19761 Bytes, 575 Zeilen)\n\nha core restart<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#e1e4e8\">wget -O \/config\/zha_quirks\/switch_h2.py \\<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">  https:\/\/raw.githubusercontent.com\/lonevvolf\/zha-device-handlers\/c06083b1d655c1787f5c0c2f56edd84b970328d4\/zhaquirks\/xiaomi\/aqara\/switch_h2.py<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\"><\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\"># Integrit\u00e4t pr\u00fcfen (optional, aber empfohlen)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">sha256sum \/config\/zha_quirks\/switch_h2.py<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\"># fc846cbd24a37a51964196d999d46bc6516662d937227b9b1b2e1ed1410e017a  (19761 Bytes, 575 Zeilen)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\"><\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">ha core restart<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Die Pr\u00fcfsumme entspricht dem Commit <code>c06083b<\/code> vom 27. August 2026. Stimmt sie bei dir \u00fcberein, hast du garantiert exakt dieselbe Datei wie in dieser Anleitung.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt3\">Schritt 3: Neu starten und pr\u00fcfen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nach dem Neustart l\u00e4dst du erneut die Diagnose desselben Ger\u00e4ts herunter. Jetzt sollte dort stehen:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\"quirk_applied\": true,\n\"quirk_class\": \"switch_h2:(Aqara \/ lumi.switch.agl009)\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#e1e4e8\">\"quirk_applied\": true,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">\"quirk_class\": \"switch_h2:(Aqara \/ lumi.switch.agl009)\"<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-group has-luminous-vivid-amber-background-color has-background is-layout-constrained wp-container-core-group-is-layout-4667ddc0 wp-block-group-is-layout-constrained\" style=\"border-left-color:#f0b429;border-left-width:4px;padding-top:12px;padding-right:16px;padding-bottom:12px;padding-left:16px\">\n<p class=\"wp-block-paragraph\">Im Systemprotokoll taucht die Meldung <code>zhaquirks: Loaded custom quirks. Please contribute them to \u2026<\/code> auf \u2013 auf WARNING-Ebene. Das ist <strong>kein Fehler<\/strong>, sondern ein normaler Hinweis, dass ein Custom-Quirk aktiv ist.<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Sichtbar wird das Ergebnis direkt am Ger\u00e4t: Statt bisher 7 hat jeder Schalter nun 13 Entit\u00e4ten. Die neue \u201eKonfiguration&#8221;-Karte sieht so aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"428\" height=\"522\" src=\"https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha.png\" alt=\"Home-Assistant-Konfigurationskarte des Aqara H2 EU mit Betriebsart Decoupled, LED-Anzeige, Lock relay, Multi click und Power on mode\" class=\"wp-image-6315\" srcset=\"https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha.png 428w, https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha-246x300.png 246w\" sizes=\"auto, (max-width: 428px) 100vw, 428px\" \/><figcaption class=\"wp-block-image__caption\">Nach dem Quirk erscheinen Betriebsart (Decoupled), LED-Anzeige, Flip LED indicator, Lock relay, Multi click und Power on mode \u2013 die Werte werden echt vom Ger\u00e4t gelesen.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"entitaeten\">Diese neuen Entit\u00e4ten bekommst du<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Entit\u00e4t<\/th><th>Typ<\/th><th>Funktion<\/th><\/tr><\/thead><tbody><tr><td>Betriebsart<\/td><td>Select<\/td><td>Umschalten zwischen <code>Decoupled<\/code> und <code>Relay<\/code><\/td><\/tr><tr><td>Power on mode<\/td><td>Select<\/td><td>Verhalten nach Stromr\u00fcckkehr: <code>On<\/code>, <code>Previous<\/code>, <code>Off<\/code>, <code>Inverted<\/code><\/td><\/tr><tr><td>LED-Anzeige<\/td><td>Switch<\/td><td>Status-LED ein-\/ausschalten<\/td><\/tr><tr><td>Flip LED indicator<\/td><td>Switch<\/td><td>LED-Logik umkehren<\/td><\/tr><tr><td>Lock relay<\/td><td>Switch<\/td><td>Relais im aktuellen Zustand einfrieren<\/td><\/tr><tr><td>Multi click<\/td><td>Switch<\/td><td>Mehrfach-Klick-Erkennung aktivieren<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die Werte werden nicht nur angelegt, sondern real ausgelesen \u2013 bei unserem Test kam die Betriebsart als <code>Relay<\/code> und der Power-on-Modus als <code>Previous<\/code> zur\u00fcck.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"decoupled\">Decoupled Mode sicher einschalten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Im Decoupled Mode wird die Wippe vom Relais entkoppelt: Der physische Schalter kappt den Strom nicht mehr, sondern meldet nur noch den Tastendruck an <a href=\"https:\/\/netguide.io\/smart-home\/category\/home-assistant\/\" data-internallinksmanager029f6b8e52c=\"2\" title=\"Home Assistant\">Home Assistant<\/a>. Das ist genau dann sinnvoll, wenn hinter dem Schalter <strong>smarte Leuchtmittel<\/strong> sitzen, die dauerhaft Strom brauchen. Damit die Lampen dabei zu keinem Zeitpunkt stromlos werden, gehst du in dieser Reihenfolge vor:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Zuerst<\/strong> die <code>switch<\/code>-Entit\u00e4t einschalten (Relais geschlossen, die Leuchtmittel haben Dauerstrom).<\/li>\n\n<li><strong>Dann<\/strong> die Betriebsart auf <code>Decoupled<\/code> stellen (die Wippe kann den Strom nun nicht mehr kappen).<\/li>\n\n<li><strong>Optional<\/strong> <code>Lock relay<\/code> aktivieren, damit auch keine versehentliche Automation das Relais \u00f6ffnet.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-group has-luminous-vivid-amber-background-color has-background is-layout-constrained wp-container-core-group-is-layout-4667ddc0 wp-block-group-is-layout-constrained\" style=\"border-left-color:#f0b429;border-left-width:4px;padding-top:12px;padding-right:16px;padding-bottom:12px;padding-left:16px\">\n<p class=\"wp-block-paragraph\"><strong>Wichtig:<\/strong> Im Decoupled-Modus h\u00e4ngt der Lichtschalter an der Verf\u00fcgbarkeit von Home Assistant. Ist HA aus, tut die Wippe nichts. Sitzt hinter dem Schalter eine ganz normale (nicht smarte) Lampe, brauchst du Decoupled deshalb gar nicht \u2013 dann schaltet die Wippe wie gewohnt direkt.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"events\">Klick-Events in Automationen nutzen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Quirk l\u00e4sst die Tasten den <code>zha_event<\/code> feuern. Das Event-<code>command<\/code> setzt sich aus Endpoint und Druckart zusammen. F\u00fcr den <code>agl009<\/code> gilt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Taste 1: <code>1_single<\/code>, <code>1_double<\/code>, <code>1_hold<\/code>, <code>1_release<\/code><\/li>\n\n<li>Taste 2: <code>4_single<\/code>, <code>4_double<\/code>, <code>4_hold<\/code>, <code>4_release<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Weil ZHA f\u00fcr diese Schalter keine <code>event.*<\/code>-Entit\u00e4ten anlegt, triggerst du direkt auf das <code>zha_event<\/code>. Nutze dabei <code>device_ieee<\/code> statt <code>device_id<\/code> \u2013 die IEEE-Adresse \u00fcbersteht ein Neuanlernen des Ger\u00e4ts. Verzweige \u00fcber Trigger-IDs und <code>choose<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>alias: K\u00fcche \u2013 Wandschalter (decoupled)\ntriggers:\n  - trigger: event\n    event_type: zha_event\n    event_data:\n      device_ieee: \"AA:BB:CC:DD:EE:FF:00:11\"\n      command: \"1_single\"\n    id: toggle\n  - trigger: event\n    event_type: zha_event\n    event_data:\n      device_ieee: \"AA:BB:CC:DD:EE:FF:00:11\"\n      command: \"1_double\"\n    id: hell\nconditions: []\nactions:\n  - choose:\n      - conditions:\n          - condition: trigger\n            id: toggle\n        sequence:\n          - action: light.toggle\n            target:\n              entity_id: light.kuche\n      - conditions:\n          - condition: trigger\n            id: hell\n        sequence:\n          - action: light.turn_on\n            target:\n              entity_id: light.kuche\n            data:\n              brightness_pct: 100\nmode: queued\nmax: 10<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#e1e4e8\">alias: K\u00fcche \u2013 Wandschalter (decoupled)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">triggers:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">  - trigger: event<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">    event_type: zha_event<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">    event_data:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">      device_ieee: \"AA:BB:CC:DD:EE:FF:00:11\"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">      command: \"1_single\"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">    id: toggle<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">  - trigger: event<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">    event_type: zha_event<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">    event_data:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">      device_ieee: \"AA:BB:CC:DD:EE:FF:00:11\"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">      command: \"1_double\"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">    id: hell<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">conditions: []<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">actions:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">  - choose:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">      - conditions:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">          - condition: trigger<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">            id: toggle<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">        sequence:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">          - action: light.toggle<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">            target:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">              entity_id: light.kuche<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">      - conditions:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">          - condition: trigger<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">            id: hell<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">        sequence:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">          - action: light.turn_on<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">            target:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">              entity_id: light.kuche<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">            data:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">              brightness_pct: 100<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">mode: queued<\/span><\/span>\n<span class=\"line\"><span style=\"color:#e1e4e8\">max: 10<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><code>mode: queued<\/code> ist bewusst gew\u00e4hlt, damit schnelle Tastenfolgen nicht verworfen werden. Die Druckarten mappt der Quirk so: <code>0 = hold<\/code>, <code>1 = single<\/code>, <code>2 = double<\/code>, <code>3 = triple<\/code>, <code>255 = release<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"grenzen\">Grenzen und Stolpersteine<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Keine direkte Zigbee-Bindung an Lampen.<\/strong> EP 1 hat als Out-Cluster nur Time und OTA \u2013 keinen OnOff-Client. Der Schalter sendet also keine Zigbee-Schaltbefehle, sondern meldet Tastendr\u00fccke als Attributreport. \u201eBinden&#8221; und Zigbee-Gruppen scheiden damit aus; alles l\u00e4uft \u00fcber Home-Assistant-Automationen.<\/li>\n\n<li><strong>Schreibzugriffe k\u00f6nnen am Zigbee scheitern.<\/strong> Die H2 melden sich als <code>EndDevice<\/code> mit \u201eBattery or Unknown&#8221;, obwohl sie netzbetrieben sind. ZHA behandelt sie dann zeitweise wie schlafende Ger\u00e4te, und ein Umschalten quittiert mit <code>ZIGBEE_DELIVERY_FAILED<\/code>. Abhilfe: Wippe einmal dr\u00fccken, um das Ger\u00e4t zu wecken, dann erneut schreiben.<\/li>\n\n<li><strong>LED-Anzeige wirkt bei EU-Varianten evtl. nicht.<\/strong> Tester berichten, dass die LED-Steuerung bei EU-Modellen ohne Effekt bleibt, bei US\/AU dagegen funktioniert. Decoupled Mode und Klick-Events sind davon nicht betroffen.<\/li>\n\n<li><strong>Lokale Kopie nach dem Merge l\u00f6schen.<\/strong> Custom-Quirks haben Vorrang vor eingebauten. Sobald der PR gemergt und Teil von <code>zha-quirks<\/code> ist, solltest du <code>switch_h2.py<\/code> aus <code>\/config\/zha_quirks\/<\/code> entfernen \u2013 sonst \u00fcberschreibt die eingefrorene Datei dauerhaft den gepflegten Upstream-Quirk.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faq\">FAQ<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Was genau ist der Decoupled Mode?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Er entkoppelt die physische Wippe vom internen Relais. Der Schalter unterbricht den Strom dann nicht mehr selbst, sondern meldet nur den Tastendruck \u2013 ideal f\u00fcr smarte Leuchtmittel, die permanent Strom brauchen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Brauche ich den Quirk auch bei einer normalen Lampe?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Nein. Sitzt eine gew\u00f6hnliche, nicht smarte Lampe hinter dem Schalter, funktioniert die Wippe im Standard-Modus (Relay) direkt und zuverl\u00e4ssig \u2013 auch ohne Home Assistant. Decoupled ergibt nur mit smarten Leuchtmitteln Sinn.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Was passiert, wenn der Pull Request gemergt wird?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Dann ist der Quirk irgendwann fester Bestandteil von <code>zha-quirks<\/code>. L\u00f6sche deine lokale <code>switch_h2.py<\/code>, damit die aktualisierte Upstream-Version verwendet wird und nicht deine eingefrorene Kopie.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Warum reagiert meine LED-Anzeige nicht?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Bei den EU-Varianten berichten mehrere Nutzer, dass die LED-Steuerung ohne Wirkung bleibt. Das ist bekannt und betrifft weder den Decoupled Mode noch die Klick-Events.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Kann ich den Schalter direkt an eine Zigbee-Lampe binden?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Nein. Dem Schalter fehlt der n\u00f6tige OnOff-Client-Cluster. Die Verbindung zwischen Tastendruck und Lampe stellst du \u00fcber eine Home-Assistant-Automation her (siehe oben).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Quellen:<\/strong> <a href=\"https:\/\/github.com\/zigpy\/zha-device-handlers\/pull\/4141\" target=\"_blank\" rel=\"noopener\">Pull Request #4141 (zha-device-handlers)<\/a> \u00b7 <a href=\"https:\/\/github.com\/zigpy\/zha-device-handlers\/issues\/3957\" target=\"_blank\" rel=\"noopener\">Device-Support-Request H2 EU<\/a> \u00b7 <a href=\"https:\/\/github.com\/Koenkk\/zigbee-herdsman-converters\/blob\/master\/src\/lib\/lumi.ts\" target=\"_blank\" rel=\"noopener\">Zigbee2MQTT-Converter (Attribut-Semantik)<\/a>. Der Dimmer H2 EU (<code>lumi.switch.agl011<\/code>) wird von diesem Quirk \u00fcbrigens <em>nicht<\/em> abgedeckt.<\/p>\n<div id=\"netgu-931066532\" class=\"netgu-after-content netgu-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-6258556257245998\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-6258556257245998\" \ndata-ad-slot=\"4559785002\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>So schaltest du beim Aqara H2 EU (lumi.switch.agl009) unter Home Assistant ZHA per Custom-Quirk Decoupled Mode, Klick-Events und LED-Steuerung frei \u2013 Schritt f\u00fcr Schritt.<\/p>\n","protected":false},"author":1,"featured_media":6315,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[],"tags":[],"class_list":["post-6316","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"uagb_featured_image_src":{"full":["https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha.png",428,522,false],"thumbnail":["https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha-150x150.png",150,150,true],"medium":["https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha-246x300.png",246,300,true],"medium_large":["https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha.png",428,522,false],"large":["https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha.png",428,522,false],"1536x1536":["https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha.png",428,522,false],"2048x2048":["https:\/\/netguide.io\/smart-home\/wp-content\/uploads\/sites\/3\/2026\/09\/aqara-h2-eu-decoupled-mode-zha.png",428,522,false]},"uagb_author_info":{"display_name":"Tobias","author_link":"https:\/\/netguide.io\/smart-home\/author\/tobias-pries\/"},"uagb_comment_info":0,"uagb_excerpt":"So schaltest du beim Aqara H2 EU (lumi.switch.agl009) unter Home Assistant ZHA per Custom-Quirk Decoupled Mode, Klick-Events und LED-Steuerung frei \u2013 Schritt f\u00fcr Schritt.","brizy_media":[],"_links":{"self":[{"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/posts\/6316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/comments?post=6316"}],"version-history":[{"count":5,"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/posts\/6316\/revisions"}],"predecessor-version":[{"id":6320,"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/posts\/6316\/revisions\/6320"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/media\/6315"}],"wp:attachment":[{"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/media?parent=6316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/categories?post=6316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netguide.io\/smart-home\/wp-json\/wp\/v2\/tags?post=6316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}