Regenmenge messen mit Zigbee – DIY
Regen heute und Regenintensität dauerhaft Nicht verfügbar anzeigten (Zirkelbezug in der Sensor-Vorlage – der Sensor hat sich fälschlich auf sich selbst statt auf den Flip-Zähler bezogen). Kopiert euch den YAML-Code weiter unten am besten neu. Außerdem gibt es jetzt einen Abschnitt „Fehlerbehebung“ weiter unten für „Entität nicht gefunden“-Meldungen und für den Aqara-Sensor, der bei manchen nach Regen offline geht.Dieses Projekt basiert auf dem DIY Zigbee rain gauge von parrel.
Ich habe das Projekt nachgebaut, eine Video-Anleitung erstellt und den Code überarbeitet sowie vereinfacht und deutsch kommentiert. Ich verwende ausserdem ausschließlich das metrische System in diesem Beispiel. Außerdem zeige ich euch, wie ihr die ApexCharts-Card über HACS integriert und konfiguriert und alle anderen benötigten Grundlagen, die das Projekt benötigt, und danach bin ich sicher,



Hier findet ihr das benötigte Material!
Zusätzlich braucht ihr einen Lötkolben samt Lötzinn, einen feinen Schlitzschraubendreher sowie ein Cuttermesser.
Regensensor – Vorbereitung
Der Regensensor funktioniert nach dem Prinzip einer Wippe. Jedes Mal, wenn die Wippe voll ist, kippt sie um und ein kleiner Magnet löst einen Impuls aus.
Um diese Impulse zählen zu können, schließen wir den Aqara Tür- und Fenstersensor an die Kontakte des Regensensors an. Dazu müssen wir das Gehäuse des Aqara Sensors vorsichtig öffnen und zwei Kabel an den Reed-Kontakt löten.
Kalibrierung: Wie viel ist ein Wippenschlag?
Damit Home Assistant weiß, wie viel Regen (in mm/m²) gefallen ist, müssen wir berechnen, wie viel Wasser ein einziger „Flip“ der Wippe darstellt.
2. Wassermenge pro Flip: Mit einer Spritze Wasser einfüllen, bis die Wippe kippt (z.B. 1,67 ml).
3. Berechnung:
(Milliliter / Fläche in cm²) * 10 = mm pro Flip(1.67 / 55) * 10 = 0.3036 mm pro FlipCode-Integration in Home Assistant
Zuerst öffnen wir den File Editor und erstellen im Hauptverzeichnis homeassistant/ einen neuen Ordner mit dem Namen packages.
Anschließend navigieren wir in diesen Ordner und legen eine neue Datei mit dem Namen regenmesser.yaml an.
In diese Datei könnt ihr nun den folgenden YAML-Code einfügen und anschließend speichern.
{% set mm_per_flip = 0.30303 %}. Passt außerdem entity_id: binary_sensor.regensensor_opening an den tatsächlichen Namen eures Aqara-Sensors an (siehe Entwicklerwerkzeuge → Zustände).YAML – regenmesser.yaml (zum Aufklappen)
# 1. Zählt die "Flips" des Regensensors seit Mitternacht
sensor:
- platform: history_stats
name: Rainsensor Flips Today
entity_id: binary_sensor.regensensor_opening # ggf. an eure tatsächliche Entity-ID anpassen
state: 'off'
type: count
start: "{{ as_timestamp(now().replace(hour=0, minute=0, second=0, microsecond=0)) }}"
end: "{{ as_timestamp(now()) }}"
unique_id: rainsensor_flips_today
# 2. Berechnet die tägliche Regenmenge und die Intensität
template:
- sensor:
# Sensor für täglichen Regen
- name: Rainfall today
unique_id: rainfall_today
unit_of_measurement: 'mm'
state_class: total_increasing
state: >-
{% set count = states('sensor.rainsensor_flips_today') | int(0) %}
{% set mm_per_flip = 0.30303 %}
{{ (count * mm_per_flip) | round(1, 'floor') }}
availability: >-
{{ states('sensor.rainsensor_flips_today') not in ['unknown', 'unavailable'] }}
# 2b. Aktuelle Regenintensität in mm/h
- name: "Rain intensity"
unique_id: rainfall_per_hour
unit_of_measurement: 'mm/h'
state_class: measurement
state: >-
{% set gradient = state_attr('binary_sensor.rainfall_trend', 'gradient') | float(0) %}
{% set rain_hour = (gradient * 3600) | round(1, 'floor') %}
{% if rain_hour >= 0 %}
{{ rain_hour }}
{% else %}
{{ 0 }}
{% endif %}
availability: >-
{{ state_attr('binary_sensor.rainfall_trend', 'gradient') is not none }}
# 3. Trend-Sensor zur Berechnung der Änderungsrate der täglichen Regenmenge
binary_sensor:
- platform: trend
sensors:
rainfall_trend:
entity_id: sensor.rainfall_today
max_samples: 4
# 4. Zähler für wöchentliche, monatliche und jährliche Regenmengen
utility_meter:
rain_week:
source: sensor.rainfall_today
cycle: weekly
rain_month:
source: sensor.rainfall_today
cycle: monthly
rain_year:
source: sensor.rainfall_today
cycle: yearlyRainfall today bezogen sich state und availability vorher fälschlich auf states('sensor.rainfall_today') – also auf sich selbst – statt auf states('sensor.rainsensor_flips_today'), den Flip-Zähler. Dadurch bekam die Entität beim ersten Start nie einen gültigen Wert und blieb dauerhaft auf Nicht verfügbar stehen – wovon über die Kettenabhängigkeit auch Rain intensity betroffen war. Falls ihr die Datei schon vorher angelegt habt, ersetzt sie am besten komplett durch den Code oben.Damit unsere neu erstellte YAML-Datei auch eingebunden wird, öffnen wir nun die configuration.yaml und ergänzen unter dem Abschnitt homeassistant: den Verweis auf den packages-Ordner.
homeassistant:
packages: !include_dir_named packagesWenn wir keine Fehlermeldung bekommen haben, dann können wir jetzt Home Assistant neu starten. Ein vollständiger Neustart (nicht nur ein YAML-Reload) ist wichtig, damit history_stats, trend und utility_meter zuverlässig alle Entitäten anlegen.
Dashboard einrichten
Als Nächstes möchten wir die Daten in unserem Dashboard anzeigen.
Wählt dazu die Stelle aus, an der ihr die Karte einfügen möchtet, und fügt eine neue Karte hinzu.
Der Kartentyp ist dabei zunächst egal, da wir den Inhalt im Anschluss direkt im Code bearbeiten.
Sobald die Karte erstellt ist, klickt unten links auf „Code-Editor anzeigen“ und fügt folgenden Code ein:
YAML – Dashboard Karte: Niederschlag Übersicht (zum Aufklappen)
type: entities
title: Niederschlag Übersicht
entities:
- entity: binary_sensor.regensensor_opening
name: Regensensor Status
- entity: sensor.rainsensor_flips_today
name: Flips Heute
- entity: sensor.rainfall_today
name: Regen Heute
icon: mdi:water
- entity: sensor.rain_intensity
name: Regenintensität
icon: mdi:water
- entity: sensor.rain_week
name: Wöchentlicher Regenfall
icon: mdi:weather-rainy
- entity: sensor.rain_month
icon: mdi:weather-rainy
name: Monatlicher Regenfall
- entity: sensor.rain_year
name: Jährlicher Regenfall
icon: mdi:weather-rainy
state_color: truebinary_sensor.regensensor_opening_2) und passt diese Karte sowie entity_id: in regenmesser.yaml entsprechend an. Mehr dazu im Abschnitt „Fehlerbehebung“ weiter unten.
ApexChart im Dashboard – für Fortgeschrittene
Für die Chart-Karte verwenden wir die ApexCharts-card, die sich im HACS (Home Assistant Community Store) befindet. Wie ihr HACS in Home Assistant installiert, erfahrt ihr hier.
Im HACS installieren wir die ApexCharts-card von RomRider und fügen sie in unserem Dashboard hinzu und dort könnt ihr folgenden Code einfügen.

YAML – ApexCharts Card: Regenfall (zum Aufklappen)
type: custom:apexcharts-card
graph_span: 30d
header:
show: true
title: Regenfall
show_states: true
span:
start: day
offset: "-29d"
series:
- entity: sensor.rainfall_today
color: aqua
type: column
group_by:
func: max
duration: 1d
GRATULATION! Das Projekt ist nun fertiggestellt, und ich hoffe, es hat euch gefallen. Lasst mir gerne einen Kommentar da und teilt mir mit, wie es euch mit dem Regenmengen-Sensor-Projekt ergangen ist oder ob ihr auf irgendwelche Probleme gestoßen seid.
Fehlerbehebung
Einige von euch haben in den Kommentaren berichtet, dass nach einem Home-Assistant-Update Kacheln im Dashboard Nicht verfügbar oder Entität nicht gefunden anzeigen, oder dass der Flip-Zähler nicht hochzählt. Hier die häufigsten Ursachen und wie ihr sie behebt.
„Regen heute“ / „Regenintensität“ zeigen „Nicht verfügbar“
Das war ein Fehler im ursprünglichen Code: Der Sensor Rainfall today hat sich in state und availability auf sich selbst statt auf den Flip-Zähler sensor.rainsensor_flips_today bezogen und blieb dadurch dauerhaft „Nicht verfügbar“ – das ist im YAML-Block weiter oben bereits korrigiert. Kopiert euch den Code dort einfach erneut und ersetzt eure bestehende regenmesser.yaml damit, danach Home Assistant neu starten.
„Entität nicht gefunden“ bei mehreren Kacheln
- Nach dem Ändern von
regenmesser.yamlreicht ein YAML-Reload oft nicht – macht einen vollständigen Neustart von Home Assistant (Einstellungen → System → Neu starten). - Schaut unter Einstellungen → Geräte & Dienste → Helfer nach, ob dort bereits History-Stats-, Trend- oder Utility-Meter-Einträge existieren – neuere Home-Assistant-Versionen verwalten diese Integrationen zunehmend über die UI statt nur über YAML.
- Prüft in Entwicklerwerkzeuge → Zustände, wie eure Entitäten wirklich heißen, und gleicht das mit den Namen im Dashboard/YAML ab. Nach einem erneuten Pairing des Zigbee-Sensors vergibt Home Assistant oft eine neue ID wie
binary_sensor.regensensor_opening_2– dann müsst ihr sowohlentity_id:inregenmesser.yamlals auch die Dashboard-Karte anpassen.
Zähler zählt keine Flips, obwohl sich der Status in den Entwicklerwerkzeugen ändert
Hier hilft in den allermeisten Fällen ein kompletter Neustart von Home Assistant nach dem Einspielen der Konfiguration (nicht nur YAML neu laden).
Aqara-Sensor geht nach Regen offline
Mehrere von euch berichten, dass der Sensor nach Regen die Verbindung verliert, obwohl genug Zigbee-Router in der Nähe sind. Das deutet nicht auf ein Reichweitenproblem hin, sondern vermutlich auf Feuchtigkeit/Kondensat, das durch das geöffnete, modifizierte Gehäuse eindringt. Dichtet die Platine z. B. mit Schrumpfschlauch oder etwas Silikon ab und führt nur die beiden Kabel zum Reed-Kontakt nach außen, oder platziert das Aqara-Modul in einem eigenen, trockenen Gehäuse in der Nähe.
Bonus: Zähler zurücksetzen
Um den Zähler wieder auf 0 zu setzen, können wir einen Taster in Lovelace Dashboard erstellen, der alles wieder zurück setzt.
YAML – Dashboard Karte: Zähler zurücksetzen (zum Aufklappen)
type: button
name: Regenzähler zurücksetzen
icon: mdi:restart
tap_action:
action: call-service
service: utility_meter.reset
data:
entity_id:
- sensor.rain_week
- sensor.rain_month
- sensor.rain_year
Zeitraum der ApexCharts-Karte anpassen
Ihr könnt den Startzeitraum der Karte festlegen oder ihr wartet einfach das Monat ab, bis die „Testdaten“ verschwinden. Es ist nicht empfohlen die Datenbank zurückzusetzen, zumindest nicht auf einem „Live-System“.
span:
start: minute
offset: +0d # beginnt heuteFotos vom Projekt aus der Community

Hier seht ihr den Regensensor bei Walter im Einsatz.
Vielen Dank für das Foto.

Hier ist der Regensensor bei Wolfgang im Betrieb zu sehen.
Vielen Dank für das Foto.
Wenn dir dieser Beitrag geholfen hat, freue ich mich über einen kleinen Beitrag für die Kaffeekasse.

