ZigBee Regensensor mit Xiaomi/Aqara Türsensor selber bauen in 3 Schritten

Durch einen Leserkommentar bin ich auf eine wirklich einfache Bauanleitung für einen ZigBee Regensensor aufmerksam gemacht worden. Diese Bauanleitung von masterkenobi habe ich selbst umgesetzt und für andere interessierte in diesem Beitrag dokumentiert: ZigBee Regensensor in 3 Schritten selber bauen mit Xiaomi/Aqara Türsensor.

DIY ZigBee Regensensor

Um es gleich vorweg zu sagen: Mein DIY (Wikipedia: do-it-yourself) ZigBee Regensensor ist definitiv nicht schön. Aber er ist einfach zu bauen, funktioniert verlässlich und kostet nur sehr wenig Geld. Aber schön ist er garantiert nicht. 🙂 Meine Fähigkeiten mit der Heissklebepistole sind definitiv ausbaufähig!

Benötigtes Zubehör

Für diesen einfachen ZigBee Regensensor benötigt man lediglich:

  • einen günstigen ZigBee Türsensor
  • einen günstigen Regensensor
  • eine wasserdichte Dose
  • etwas Draht
  • vier Schrauben
  • sowie einen Lötkobeln, eine Heissklebepistole und etwas übliches Werkzeug

Ich unterstelle, dass nahezu jeder Draht, Lötkobeln, Heissklebepistole und einfaches Werkzeug zu Hause hat. Somit wirst du für diesen DIY ZigBee Regensensor lediglich die folgenden Bauteile kaufen müssen:

Dies sind natürlich nur beispielhafte Bauteile, mit denen ich meinen Regensensor gebaut habe. Vergleichbare Ausführungen werden es ziemlich sicher auch tun!

ZigBee Regensensor mit Türsensor

Bauanleitung

Wenn du alle benötigten Bauteile zu Hause hast, kannst du mit dem sehr einfachen Zusammenbau der Komponenten beginnen. Letztendlich musst du nicht viel mehr machen als den Regensensor direkt an die Kontakte des Reedschalters (Wikipedia: Reedschalter) des Türsensors zu löten. Die Reihenfolge/Farbwahl ist hierbei komplett egal.

DIY: ZigBee Regensensor

Ich habe in meinem Fall den Reedschalter nicht entfernt, so dass ich den Türsensor zukünftig auch wieder als Türsensor nutzen könnte. Wichtig ist in diesem Fall nur, dass keine Magnete in die Nähe des DIY ZigBee Regensensors kommen, um nicht falschen Alarm auszulösen.

In die wasserdichte Abzweigdose habe ich dann für die Kabeldurchführung ein kleines Loch gebohrt. Nachdem ich as Kabel durch das Loch geführt habe, wird das Loch mit Heisskleber wasserdicht verschlossen. Teste vorher jedoch auf jeden Fall, dass deine Konstruktion funktioniert!

Bei dem von mir gewählten Regentropfen Sensor von AZ-Delivery reicht es bereits aus die Kontakte des Sensors mit den Fingern zu berühren um Strom zu leiten. Erst, wenn der Türsensor dies erkennt und entsprechend das Signal „geschlossen“ sendet, solltest du alles festlöten bzw. mit der Heissklebepistole fixieren und abdichten.

Low Budget ZigBee Regensensor

Nachdem ich also mein Proof of Concept hatte, habe ich für den eigentlichen Wassertropfen-Sensor mit Schrauben noch eine Erhöhung gebaut. Da der Wassertropfen-Sensor auf beiden Seiten die Sensorfläche hat, möchte ich vermeiden, dass sich unterhalb des Sensors Wasser sammelt und somit „dauerhaft“ falschen Alarm auslösen kann.

Ich habe hierfür ohnehin vorhandene Schrauben genutzt, da diese zum einen perfekt in die Löcher an allen 4 Ecken passten und sich perfekt als Abstandshalter geeignet haben:

ZigBee Regensensor mit Wassertropfen-Sensor

(Auch auf diesem Foto sieht man wieder meine nicht vorhandenen Fähigkeiten an der Heissklebepistole… :))

Dann kannst du die wasserdichte Dose schließen und auf der Dose den Regentropfen-Sensor befestigen. Auch hierfür habe ich natürlich die Heissklebepistole benutzt – Übung macht den Meister:

DIY ZigBee Regensensor

Das war es eigentlich an „Baumaßnahmen“ schon. Wie gesagt: Meine Lösung ist definitiv nicht schön. Aber sie kann wirklich von jedem nachgebaut werden. Dazu ist sie noch absolut kostengünstig. Und es macht natürlich Spaß für das eigene Smarthome Dinge zu kombinieren und Neues zu schaffen. 🙂

Diesen DIY ZigBee Regensensor kannst du dann aufgrund der eingebauten Batterie nahezu beliebig platzieren. Natürlich musst du dabei die ZigBee-Reichweite beachten! 😉

Einbindung in Home Assistant

Den Aqara-Türsensor hatte ich für Funktionstests natürlich vor meiner Umbaumaßnahme bereits im Home Assistant eingebunden. Da es sich um einen Türsensor handelt, wird die Entity-ID beim Anzeigen des aktuellen Status folglich die Zustände „Offen“ oder „Geschlossen“ haben. Offen bedeutet in unserem Fall, dass der Wassertropfen-Sensor trocken ist. Regnet es hingegen „schließt“ der Sensor und die Entity-ID wird als geschlossen angezeigt.

Rein technisch kommen wir damit natürlich zurecht. Aber es sieht komisch aus. Und da meine Heisskleber-Versuche schon komisch aussehen, wollen wir nun zumindest noch unseren DIY ZigBee Regensensor im Home Assistant ordentlich dargestellt haben.

Hierfür bedienen wir uns der Möglichkeit für einen Binary-Sensor ein Template zu erstellen:

- platform: template
  sensors:
    regensensor:
      friendly_name: "Regensensor"
      device_class: moisture
      icon_template: >-
        {% if is_state('binary_sensor.fenster_turkontaktsensor_2', 'off') %}
          mdi:weather-rainy
        {% else %}
          mdi:water-off
        {% endif %}

 

Zum Einen definieren wir, dass es sich um die Geräte-Klasse „moisture“, also Feuchtigkeit handelt und zum anderen ersetzen wir auch noch die dargestellten Icons in Abhängigkeit vom Zustand unseres Sensors.

Mit der Zuweisen der Geräte-Klasse „moisture“ werden automatisch der bisherige Zustand „offen“ zu „trocken“ und der bisherige Zustand „geschlossen“ zu „nass“.

Fertig ist der ganze Spaß – ich hoffe dir hilft es auch ein wenig weiter! Und vielen Dank noch einmal an masterkenobi für den Hinweis im Home Assistant Forum als auch an den guten Leser-Hinweis!

Dieser Beitrag ist Teil einer kleinen Beitrags-Serie rund um den hass.io Home Assistant.

Produktempfehlungen

32 Gedanken zu „ZigBee Regensensor mit Xiaomi/Aqara Türsensor selber bauen in 3 Schritten“

  1. Danke für diese DIY Vorschlag. Eine Frage stelle ich mir aber. Hat jemand getestet wie es sich verhält mit den „Leiterbahnlücken der Platine senkrecht“ im Vergleich zu „Leiterbahnlücken der Platine waagerecht“? Ich hoffe Ihr versteht was ich meine. Mein Gedanke ist, den Ablauf von Regentropfen zu erleichtern.

  2. Hallo Olli,
    vielleicht kannst du mir helfen.
    Ich hab den Sensor begeistert nachgebaut bin aber leider unfähig das das ding funktioniert. Der Sensor ist über Zigbee eingebunden und funktioniert auch soweit.
    Jetzt wollte ich deinen Code in die Konfiguration.yaml einfügen:

    – binary_sensor:
    – name: Regensensor
    state: {{is_state(‚binary_sensor.regensensor_zigbee_contact‘) }}
    device_class: moisture
    icon_template: >-
    {% if is_state(‚binary_sensor.regensensor_zigbee_contact‘, ‚off‘) %}
    mdi:weather-rainy
    {% else %}
    mdi:water-off
    {% endif %}

    Leider bekomme ich dann folgende Meldung:
    The system cannot restart because the configuration is not valid: Error loading /config/configuration.yaml: invalid key: „{„is_state(‚binary_sensor.regensensor_zigbee_contact‘)“: None}“ in „/config/configuration.yaml“, line 48, column 0
    Ich komm nicht drauf wo mein Problem liegt. Hat sich an dem Code nochmals was geändert?

    • Hi Marc,

      folgender Code sollte mit HA 2023.9 funktionieren:

      template:
      - binary_sensor:
      - name: "regensensor2"
      state: "{{ states('binary_sensor.fenster_turkontaktsensor_2') }}"
      device_class: moisture
      icon: >-
      {% if is_state('binary_sensor.fenster_turkontaktsensor_2', 'off') %}
      mdi:weather-rainy
      {% else %}
      mdi:water-off
      {% endif %}

      Gib‘ gerne Feedback, ob es geklappt hat!

      Ich glaube, dass ich den Beitrag mal aktualisieren oder neu verfassen sollte 😉
      VG
      Olli

  3. Hm also ich kann machen was ich will aber der Code selbst in den Kommentaren funktioniert nicht.

    Konfiguration fehlerhaft!

    Invalid config for [binary_sensor.template]: expected dictionary for dictionary value @ data[’sensors‘]. Got None
    extra keys not allowed @ data[‚friendly_name‘]. Got ‚„Regensensor“‘
    extra keys not allowed @ data[‚icon_template‘]. Got ‚{% if is_state(‚binary_sensor.lumi_lumi_sensor_magnet_aq2_opening‘, ‚off‘) %} mdi:weather-rainy {% else %} mdi:water-off {% endif %}‘
    extra keys not allowed @ data[‚regensensor‘]. Got None
    extra keys not allowed @ data[‚value_template‘]. Got ‚{{is_state(‚binary_sensor.lumi_lumi_sensor_magnet_aq2_opening‘)}}‘. (See ?, line ?).

    Kann hier jemand helfen? Ich habe schon Stunden (ca 6 Std probiere ich das nun) damit verbracht…

    • Ja, das liegt an einer Änderung bei Home Assistant. Kannst du folgenden Code probieren und kurz Feedback geben? Dann passe ich das im Text entsprechend an!

      template:
      - binary_sensor:
      - name: "Regensensor"
      state: {{ is_state('binary_sensor.fenster_turkontaktsensor_2') }}
      device_class: moisture
      icon_template: >-
      {% if is_state('binary_sensor.fenster_turkontaktsensor_2', 'off') %}
      mdi:weather-rainy
      {% else %}
      mdi:water-off
      {% endif %}

      • Hast du noch einen Idee.

        – platform: template
        sensor:
        friendly_name: „Regensensor“
        state: {{ is_state(‚binary_sensor.regensensor_contact‘) }}
        device_class: moisture
        icon_template: >-
        {% if is_state(‚binary_sensor.regensensor_contact‘, true) %}
        mdi:weather-rainy
        {% else %}
        mdi:weather-sunny
        {% endif %}

        Fehler :

        Error loading /config/configuration.yaml: invalid key: „{„is_state(‚binary_sensor.regensensor_contact‘)“: None}“
        in „/config/configuration.yaml“, line 252, column 0

        • Zwei Dinge:
          1.: Heißt dein Sensor wirklich „binary_sensor.regensensor_contact“ wie bei mir?
          Und 2.: Dein Code beinhaltet „is_state(‚bin…“ ein Komma nach der öffnenden Klammer. Das muss ein Hochkomma sein!

  4. Sehr schöne Anleitung, Teile bestellt und in einer Stunde war alles fertig. Auch mein erstes Mal mit eine Heißklebepistole und ich war sogar Recht erfolgreich damit

    Danke!

  5. Hallo! Danke für all die Erfahrungen, die du mit uns geteilt hast. Kannst du etwas zur Akkulaufzeit sagen? In der Box ist Platz, um ein wenig zu modifizieren und zwei Lithium-AA-Batterien anzuschließen. Dies könnte die Batterielebensdauer um den Faktor 20 verlängern. Warum haben Sie den Tür-/Fenstersensor und nicht den Wasserlecksensor verwendet? Letztere ist bereits im IP67-Gehäuse abgedichtet.

    • HI! Die Laufzeit des Akkus hängt natürlich 100% vom lokalen Wetter ab: Je mehr Wechsel es zwischen Regen und „trocken“ gibt, desto öfter erfolgt durch den Türsensor ein „funk“ an das ZigBee-Netzwerk. Eine grundsätzlich gültige Aussage zu treffen, ist also entsprechend schwer/unmöglich. Ich kann aber sagen, dass in dem beschriebenen Setup bei mir der Akku nun schon knapp anderthalb Jahre hält!

      Dennoch liebäugle ich auch bereits mit einem Update/Neubau, nämlich wie von dir auch angeregt mit einem Wassersensor!

  6. Hallo und Danke für den tollen Beitrag.
    Wie funktioniert das mit dem „Regen hat aufgehört“? Muss dazu der Sensor komplett trocknen oder reicht es aus den Sensor schräg zu positionieren und die Regentropfen laufen ab? Wie groß ist da die zeitliche Verzögerung?
    Gruß H.

    • Hi!

      Genau, der Wassensensor sollte leicht schräg angebracht sein, damit Tropfen leichter runterlaufen können! Ansonsten konnte ich bislang nicht feststellen, dass es zu lange gedauert hätte, bis es wieder „trocken“ war. Zumindest hat dies bei mir noch keine Probleme gemacht. Zu einer konkreten zeitlichen Verzögerung kann ich deswegen leider nichts sagen, da ich bislang keinen bedarf hatte, dies zu messen o. ä.!

      Viele Grüße

      Olli

  7. Hallo und danke für das Teilen Deiner Lösung, @Olli.
    Was hast du für Erfahrungen gemacht, wie sensibel der Sensor meldet? Z.b. bei Tau, Nebel oder auch Schee- oder Graupel?
    Man kann ja weder zu sensibel noch zu spät auslösend brauchen.
    Danke Dir! 😀

    • Hi Alexander,

      ich habe den Regensensor nun ja seit etwas über einem Jahr in dieser Form im Einsatz. Verlässlich war er dahingehend bislang (gefühlt) immer, dass Regen/Schnee trotz der ja da doch relativ kleinen Fläche schnell erkannt wurde.

      Fehlmeldungen aufgrund von Tau oder Nebel habe ich bewusst keine festgestellt.

      Kurzum: Das Ding ist genau wie hier beschrieben weiterhin bei uns im Einsatz und schützt unsere Markise insbesondere vor Regen! 🙂

      Beste Grüße

      Olli

  8. Hallo Olli.
    bin auf Deine klasse Beschreibung gestoßen und will das ganze nachbauen. Bin , was HA angeht, leider noch Neuling. Wo muss der Code hin ? Config ?
    Gruß Matthias

    • Hi Matthias, du kannst dies direkt in deiner configuration.yaml einbauen, allerdings fehlt dann noch ein einleitendes
      binary_sensor:

      Da ich meine configuration.yaml in unzählige Unterdateien aufgeteilt habe und diese „automatisch“ einbinde, fehlt das „binary_sensor:“ in meinem Code-Schnipsel.

  9. Hallo!
    Cooles Projekt! 🙂
    Frage dazu: Kann man statt dem ZigBee-Fenster-Tür-Sensor auch eine WiFi-Variante verwenden (bspw. diesen hier: https://www.amazon.de/dp/B07Q8F46J4/ref=cm_sw_em_r_mt_dp_U_GpSbFbQH0VZD9)?

    LG
    Thomas

    • Hallo Thomas!

      Da auch dieser Sensor vermutlich rein mit Magneten arbeitet, sollte es absolut vergleichbar umsetzbar sein. Im Inneren des Sensors wird ein Reedschalter eingebaut sein und statt diesem, wirst du den Regensensor anschließen müssen.

      Aber W-LAN wird zwangsläufig stromhungriger sein, bist du dir sicher, dass du es so umsetzen willst? Mein Regensensor mit ZigBee ist nun seit etwas mehr als 3 Monaten im Einsatz und die Batterie hat noch 91% Ladung, nur um die mal ein Gefühl zu geben!

      Beste Grüße

      Olli

  10. Das Problem wird hier die Haltbarkeit sein: diese Leiterplatinen aus China als Regensensoren rosten halt schnell und lösen sich vom Träger ab und dann ist der Kontakt weg.

    Hast du hier schon Erfahrungen über längere Zeit sammeln können? Habe gelesen, dass er als Pflanzensensor keine Wochen gehalten haben soll (auch wenn er dort noch den Dünger ausgesetzt ist)..
    🙄

    • Hi!
      Also bei mir arbeitet der Regensensor nun seit fast 3 Monaten ohne Probleme. Ich werde mir den Zustand der Kontakte mal bei Gelegenheit anschauen und berichten!

      Viele Grüße

      Olli

  11. Teile sind bestellt und wird am Wochenende mal getestet. Handwerklich bin ich zwar nicht aller beste aber das traue ich mir noch zu. Leider gibt es Markt ja nichts out of the box was die selbe Funktion bietet.

  12. Hallo Oliver,

    mit Begeisterung lese ich deine Beiträge auf deiner Webseite zum Thema Homeassistant. Insbesondere der Beitrag „Zigbee Regensensor mit Xiaomi Türsensor“ hat es mir angetan und ich habe heute das Projekt in die Tat umgesetzt.

    Soweit hat alles wunderbar funktioniert. Allerdings habe ich Problem damit, dass der Sensor die Werte Nass/Trocken richtig anzeigt. Die Werte erscheinen bei mir in HA vertauscht (also wenn der Sensor trocken ist, zeigt er NASS an und umgekehrt).

    Vielleicht kannst du mir einen Tipp geben, wo du das value_template definierst? Ich habe es nun in der customize.yaml gepflegt.

    Vielen Dank für einen kleinen Hinweis.

    Viele Grüße,
    Alex

    • Hallo Alex,
      freut mich, wenn meine Beiträge gefallen! 🙂

      Tatsächlich habe ist/war der YAML-Code im Beitrag nicht mehr aktuell, bei mir kommt aktuell folgender Code zum Einsatz:

      – platform: template
      sensors:
      regensensor:
      friendly_name: „Regensensor“
      device_class: moisture
      value_template: >-
      {{ is_state(‚binary_sensor.fenster_turkontaktsensor_2‘, ‚off‘) }}
      icon_template: >-
      {% if is_state(‚binary_sensor.fenster_turkontaktsensor_2‘, ‚off‘) %}
      mdi:weather-rainy
      {% else %}
      mdi:water-off
      {% endif %}

      Probier es doch damit einmal aus, und geb mir hier gerne ein Feedback, dann tausche ich den Code im Beitrag auch direkt aus!

      Viele Grüße

      Olli

      • Hey danke für die Idee und die Anleitung.

        Ich bekomme es leider nicht zum Laufen. Bekomme die Meldung, dass die ID nicht eindeutig sei.
        Hab ich hier einen Fehler eingebaut?

        binary_sensor:
        – platform: template
        sensors:
        regensensor:
        friendly_name: „Rainsensor“
        value_template: >-
        {{is_state(‚binary_sensor.rain‘)}}
        icon_template: >-
        {% if is_state(‚binary_sensor.rain‘, ‚off‘) %}
        mdi:weather-rainy
        {% else %}
        mdi:water-off
        {% endif %}

          • Nochmal ich ^^

            Mein Problem liegt wohl irgendwo bei dem value_template. Mit is_state bekomme ich immer nur „nicht Verfügbar“. states. zeigt mir aber die Werte verkehrt an. Hättest du einen Tipp?

            value_template: >-
            {{is_state(‚binary_sensor.rain‘)}}

          • Hi Phil und sorry für die späte Antwort!

            Du schreibst
            {{is_state(‚binary_sensor.rain‘)}}

            Das Komma am Anfang ist verkehrt/falsch! Du kannst auch

            {{is_state("binary_sensor.rain")}}

            schreiben, wenn du mit den Hochkommata auf deiner Tastatur Probleme hast!

            Ich hoffe das hilft dir schon!

          • Danke dir. Habs geschafft.
            Andere Frage aber – es passiert bei dem Sensor immer wieder, dass der Status „hängen bleibt“.
            Das ganze ist auch einfach mit dem Finger reproduzierbar (sprich antippen)
            Hättest du eine Idee woran das liegt oder hat der Sensor was?

          • Du meinst der Sensor aktualisiert in Home Assistant nicht, obwohl es nass geworden ist bspw.? Sofern die Verdrahtung in Ordnung ist, dürfte dies an deinem ZigBee-Netzwerk liegen!

            Zum Verstärken des ZigBee-Signals habe ich hier mal etwas geschrieben: https://smarterkram.de/757/

            Vielleicht hilft dir das ja!

Kommentare sind geschlossen.