{"id":736,"date":"2026-05-30T09:56:52","date_gmt":"2026-05-30T07:56:52","guid":{"rendered":"https:\/\/www.coremind.ch\/wordpress\/?p=736"},"modified":"2026-05-30T09:56:52","modified_gmt":"2026-05-30T07:56:52","slug":"mmwave-presence-sauber-tunen-mit-zha-und-tuya","status":"publish","type":"post","link":"https:\/\/www.coremind.ch\/wordpress\/mmwave-presence-sauber-tunen-mit-zha-und-tuya\/","title":{"rendered":"mmWave-Presence sauber tunen mit ZHA und Tuya"},"content":{"rendered":"<p>Bewegungsmelder schalten auf Geste. Anwesenheits\u00admelder schalten auf Existenz \u2013 sie merken auch, wenn du regungslos auf dem Sofa sitzt und liest. Genau daf\u00fcr gibt es <strong>24-GHz-mmWave-Radarsensoren<\/strong> wie den Tuya <code>TS0601<\/code> (Manufacturer-Code <code>_TZE200_kb5noeto<\/code>). In Home Assistant taucht das Ger\u00e4t als <code>binary_sensor.presence_sensor_belegung<\/code> auf \u2013 und liefert \u00fcber vier Number-Helper extrem fein justierbare Parameter. Wer die richtig einstellt, hat das Ende des \u00abLicht geht aus, obwohl ich noch da bin\u00bb-Problems erreicht.<\/p>\n<h2>Das Problem mit klassischen PIR-Sensoren<\/h2>\n<p>Ein PIR-Bewegungs\u00admelder reagiert auf W\u00e4rme\u00addifferenzen, die sich in seinem Sichtfeld bewegen. Sitzt du still, sieht er dich nicht. Im B\u00fcro, in der Leseecke oder im Bad nach 30 Sekunden F\u00f6hnen passiert dann das Klassische: Licht aus, H\u00e4nde werden gewedelt, Licht an. mmWave-Radar misst stattdessen die Phasen\u00adverschiebung reflektierter Funkwellen und erkennt auch Mikrobewegungen wie Atmung \u2013 wenn er richtig eingestellt ist.<\/p>\n<h2>Die vier Tuning-Helper im \u00dcberblick<\/h2>\n<p>Beim <code>_TZE200_kb5noeto<\/code> exponiert das ZHA-Quirk vier Number-Entit\u00e4ten, die wir direkt in HA setzen k\u00f6nnen:<\/p>\n<pre><code>\r\n# Sensorik-Konfiguration\r\nnumber.tze200_kb5noeto_ts0601_empfindlichkeit_der_bewegungserkennung: 5    # 0\u20139\r\nnumber.tze200_kb5noeto_ts0601_empfindlichkeit_fur_erkennung_von_bewegungslosigkeit: 7  # 0\u20139\r\nnumber.tze200_kb5noeto_ts0601_abstand_fur_erkennung_von_bewegungslosigkeit: 5.0  # 0\u20139.5 m\r\nnumber.tze200_kb5noeto_ts0601_ubergangszeit: 30  # 0\u20131500 s\r\n<\/code><\/pre>\n<p><strong>Empfindlichkeit der Bewegungserkennung<\/strong> (0\u20139) steuert, wie schwach eine grobe Bewegung sein darf, um den Sensor zu triggern. 5 ist ein guter Startwert. H\u00f6her heisst auch: Mehr Fehlausl\u00f6sungen durch zugige T\u00fcren oder Vorh\u00e4nge.<\/p>\n<p><strong>Empfindlichkeit f\u00fcr Erkennung von Bewegungslosigkeit<\/strong> (0\u20139) ist der entscheidende Wert f\u00fcr die \u00abstill sitzen\u00bb-Erkennung. 7\u20138 funktioniert in einem typischen Wohnraum gut, ohne dass ein ausgeschalteter K\u00fchlschrank-Ventilator den Sensor 24\/7 triggert.<\/p>\n<p><strong>Abstand f\u00fcr Erkennung von Bewegungslosigkeit<\/strong> (0\u20139.5 m) definiert die Detektionszone in Metern. Im B\u00fcro lieber 4\u20135 m, um Bewegung im Korridor draussen nicht mitzuz\u00e4hlen.<\/p>\n<p><strong>\u00dcbergangszeit<\/strong> (Fading Time, 0\u20131500 s) ist die Haltezeit, bevor der Sensor von \u00aboccupied\u00bb auf \u00abclear\u00bb zur\u00fcckspringt. 30\u201360 Sekunden sind Standard, in einer Toilette eher 20, im Schlafzimmer eher 120.<\/p>\n<h2>Setup-Anleitung Schritt f\u00fcr Schritt<\/h2>\n<p><strong>Pairing<\/strong>: Sensor 10 Sekunden gedr\u00fcckt halten, in HA \u00fcber <em>Einstellungen \u2192 Ger\u00e4te und Dienste \u2192 Zigbee Home Automation \u2192 Ger\u00e4t hinzuf\u00fcgen<\/em> anlernen. Wird das Ger\u00e4t nur als generisches <code>TS0601<\/code> ohne Number-Entit\u00e4ten erkannt, fehlt der passende ZHA-Quirk \u2013 dann manuell aus dem <a href=\"https:\/\/github.com\/zigpy\/zha-device-handlers\">zha-device-handlers-Repo<\/a> nachziehen und HA neu starten.<\/p>\n<p><strong>Positionierung<\/strong>: Der Sensor strahlt konisch nach vorne (ca. 100\u00b0 horizontal, 60\u00b0 vertikal). An der Decke montiert deckt er rund 5 Meter Radius ab. Hauptachse auf die Hauptaufenthaltszone richten, <strong>nicht<\/strong> auf T\u00fcren oder Fenster \u2013 Aussenbewegung erzeugt Geister\u00adausl\u00f6sungen.<\/p>\n<p><strong>Erstkalibrierung<\/strong>:<\/p>\n<pre><code>\r\n# input_select f\u00fcr drei vordefinierte Profile\r\ninput_select:\r\n  presence_profile:\r\n    name: \"Presence-Profil\"\r\n    options: [\"wohnen\", \"buero\", \"bad\"]\r\n    initial: wohnen\r\n\r\nautomation:\r\n  - alias: \"Presence-Profil anwenden\"\r\n    trigger:\r\n      - platform: state\r\n        entity_id: input_select.presence_profile\r\n    action:\r\n      - choose:\r\n          - conditions: \"{{ trigger.to_state.state == 'buero' }}\"\r\n            sequence:\r\n              - service: number.set_value\r\n                target: { entity_id: number.tze200_kb5noeto_ts0601_empfindlichkeit_fur_erkennung_von_bewegungslosigkeit }\r\n                data: { value: 8 }\r\n              - service: number.set_value\r\n                target: { entity_id: number.tze200_kb5noeto_ts0601_ubergangszeit }\r\n                data: { value: 60 }\r\n<\/code><\/pre>\n<p>So lassen sich f\u00fcr B\u00fcro (Bildschirmarbeit, kaum Bewegung), Wohnzimmer (Fernsehen, gelegentlich) und Bad (kurze Aufenthalte, F\u00f6hn-Vibration) drei Tuning-Profile ohne st\u00e4ndiges Schraube-Drehen schalten.<\/p>\n<h2>Verbindung mit Licht und L\u00fcftung<\/h2>\n<p>Der eigentliche Mehrwert entsteht in der Kombination. Im B\u00fcro koppelt der <code>binary_sensor.presence_sensor_belegung<\/code> direkt an das B\u00fcrolicht, im Wohnzimmer triggert er den <code>automation.lautsprecherausein<\/code>-Workflow, und in der K\u00fcche kann er einen <a href=\"https:\/\/www.coremind.ch\/wordpress\/mi-air-purifier-pollen-gesteuert\/\">Mi Air Purifier 3\/3H<\/a> w\u00e4hrend der Kochzeit auf Stufe \u00abfavorit\u00bb hochfahren.<\/p>\n<pre><code>\r\nautomation:\r\n  - alias: \"B\u00fcro-Licht via Presence\"\r\n    trigger:\r\n      - platform: state\r\n        entity_id: binary_sensor.presence_sensor_belegung\r\n        to: \"on\"\r\n    action:\r\n      - service: scene.turn_on\r\n        target: { entity_id: scene.buro_hell }\r\n\r\n  - alias: \"B\u00fcro-Licht aus nach Verlassen\"\r\n    trigger:\r\n      - platform: state\r\n        entity_id: binary_sensor.presence_sensor_belegung\r\n        to: \"off\"\r\n        for: \"00:02:00\"\r\n    action:\r\n      - service: light.turn_off\r\n        target: { entity_id: light.buro }\r\n<\/code><\/pre>\n<p>Wichtig: Das <code>for: \"00:02:00\"<\/code> als zus\u00e4tzliche Sicherheits\u00adschicht zur sensoreigenen Fading Time. So \u00fcberlebt das Licht ein kurzes Funkproblem ohne Fehlschaltung.<\/p>\n<h2>Fazit<\/h2>\n<p>Wer mmWave einmal richtig eingestellt hat, will nichts anderes mehr. Der Tuya <code>_TZE200_kb5noeto<\/code> ist mit unter 30 Franken erschwinglich, l\u00e4uft stabil \u00fcber ZHA und liefert mit den vier Number-Helpern alle Stellschrauben f\u00fcr ein wirklich pr\u00e4senz\u00adbasiertes Smart Home. <strong>Praxis-Tipp:<\/strong> Drei Tage lang in der HA-Logbook-Ansicht beobachten, wann der Sensor unerwartet \u00abon\u00bb oder \u00aboff\u00bb springt \u2013 und genau dort die Empfindlichkeits\u00adwerte um \u00b11 nachziehen, bis das Verhalten passt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bewegungsmelder schalten auf Geste. Anwesenheits\u00admelder schalten auf Existenz \u2013 sie merken auch, wenn du regungslos auf dem Sofa sitzt und liest. Genau daf\u00fcr gibt es 24-GHz-mmWave-Radarsensoren wie den Tuya TS0601 (Manufacturer-Code _TZE200_kb5noeto). In Home Assistant taucht das Ger\u00e4t als binary_sensor.presence_sensor_belegung auf \u2013 und liefert \u00fcber vier Number-Helper extrem fein justierbare Parameter. Wer die richtig einstellt, &#8230; <a title=\"mmWave-Presence sauber tunen mit ZHA und Tuya\" class=\"read-more\" href=\"https:\/\/www.coremind.ch\/wordpress\/mmwave-presence-sauber-tunen-mit-zha-und-tuya\/\" aria-label=\"Mehr Informationen \u00fcber mmWave-Presence sauber tunen mit ZHA und Tuya\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-736","post","type-post","status-publish","format-standard","hentry","category-ha"],"_links":{"self":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/736","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=736"}],"version-history":[{"count":1,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/736\/revisions"}],"predecessor-version":[{"id":757,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/736\/revisions\/757"}],"wp:attachment":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}