Moin,
ich lese seitdem Du den Thread erstellt hast hier mit und ich finde das Projekt sehr spannend.
Leider muss ich zugeben, dass ich nicht ganz verstehe, wo Dein Verständnisproblem ist.
Ich habe das Projekt so verstanden, dass die Impulse Offen und Geschlossen jeweils in einem Counter gezählt werden, anschließend werden sie einmal für die letzten 24 Stunden summiert und mit einer Menge an Regenwasser multipliziert, das Ergebnis dann so umgerechnet, dass es der Menge Liter/pro Quadratmeter entspricht.
Die Hardware funktioniert doch so, dass Regenwasser in eine der beiden Auffangflächen läuft, ist sie mit der nötigen Menge gefüllt, dann kippt sie und entweder öffnet, oder schließt sich der Aquara Sensor, wenn dann kein weiterer Regen fällt, verbleibt er in der letzten Stellung.
Der erste Teil Deines Codes, den Du nutzt
Home Assistant Sensoren zur Überwachung des Aqara Rainsensors
Diese Konfiguration definiert zwei Sensoren in Home Assistant, die den Aqara Rainsensor (binary_sensor.lumi_lumi_sensor_magnet_aq2_opening) überwachen und die Anzahl der Schalterwechsel in den letzten 24 Stunden in den Zustand “ein” oder “aus” verfolgen.
Sensorkonfiguration:
sensor:
- platform: history_stats
name: "Aqara Rainsensor Flips/Ein"
entity_id: binary_sensor.lumi_lumi_sensor_magnet_aq2_opening
state: "on"
type: count
start: "{{ now() - timedelta(hours=24)}}"
end: "{{ now() }}"
- platform: history_stats
name: "Aqara Rainsensor Flips/Aus"
entity_id: binary_sensor.lumi_lumi_sensor_magnet_aq2_opening
state: "off"
type: count
start: "{{ now() - timedelta(hours=24)}}"
end: "{{ now() }}"
Erläuterung:
- platform: history_stats: Diese Zeile kennzeichnet diese Sensoren als Verlaufsstatistik-Sensoren. Sie verfolgen Änderungen in anderen Sensoren über die Zeit.
- name: Dies definiert den Anzeigenamen für den Sensor, den Sie in der Home Assistant-Benutzeroberfläche sehen.
- “Aqara Rainsensor Flips/Ein” verfolgt, wie oft der Sensor in den letzten 24 Stunden auf “ein” geschaltet wurde.
- “Aqara Rainsensor Flips/Aus” verfolgt, wie oft der Sensor in den letzten 24 Stunden auf “aus” geschaltet wurde.
- entity_id: Dies weist auf den zu überwachenden Sensor hin. In diesem Fall handelt es sich um binary_sensor.lumi_lumi_sensor_magnet_aq2_opening, der wahrscheinlich auf Ihren Aqara Rainsensor verweist.
- state: Dies definiert den zu zählenden Statuswechsel. Hier ist es auf “ein” und “aus” für die jeweiligen Sensoren eingestellt.
- type: count: Dies gibt an, dass der Sensor die Anzahl der Male zählen soll, um den angegebenen Wert (“ein” oder “aus”) zu ändern.
- start: {{ now() - timedelta(hours=24) }} und end: {{ now() }}: Dies definiert das Zeitfenster, in dem der Sensor nach Statusänderungen sucht. Es beginnt vor 24 Stunden (
{{ now() - timedelta(hours=24) }}) und reicht bis zur aktuellen Zeit ({{ now() }}).
Funktionalität:
Diese Sensoren zeigen Ihnen an, wie oft es in den letzten 24 Stunden geregnet hat (Sensor auf “ein” geschaltet) und wie oft es aufgehört hat zu regnen (Sensor auf “aus” geschaltet). So können Sie Regenereignisse überwachen und in Home Assistant möglicherweise Automatisierungen basierend darauf auslösen.
Also, so wie Du es versteht, dass der Sensor auf Null zurückgehen muss, ist nicht korrekt, also ist das, sagen wir mal, digital, nur 0 und 1, welche gezählt werden und mit den letzten 24 Stunden verglichen werden.
VG
Bernd
P.S.: Hier ist auch noch die Erklärung für den zweiten Code
Home Assistant Sensor für kumulative Niederschlagsmenge (Tag)
Dieser Code definiert einen Sensor in Home Assistant, der die kumulative Niederschlagsmenge des aktuellen Tages in Millimeter (mm) misst.
Sensorkonfiguration:
template:
- sensor:
- name: Rainfall [day]
state_class: measurement
unique_id: rainfall_day
unit_of_measurement: mm
icon: mdi:weather-pouring
state: >-
{% set count = (states('sensor.aqara_rainsensor_flips_on') | int(0)) + (states('sensor.aqara_rainsensor_flips_off') | int(0)) %}
{% set mm = count * 0.52615 %}
{% if count >= 0 %}
{{ mm|round(1, 'floor') }}
{% endif %}
Erläuterung:
- template: Dieser Abschnitt kennzeichnet die Verwendung eines Templates zur Definition des Sensors.
- sensor: Definiert einen neuen Sensor innerhalb des Templates.
- name: Rainfall [day] Legt den Anzeigenamen des Sensors fest (z.B. “Niederschlag [Heute]”).
- state_class: measurement Markiert den Sensor als Messwert (z.B. Temperatur, Niederschlag).
- unique_id: rainfall_day Vergibt eine eindeutige ID für den Sensor.
- unit_of_measurement: mm Definiert die Maßeinheit (Millimeter).
- icon: mdi:weather-pouring Legt das Symbol für den Sensor fest (z.B. Regenschauer-Symbol).
- state: Dieser Abschnitt bestimmt den Wert, den der Sensor anzeigen soll.
- {% set count = … %}: Speichert die Summe der gezählten “Ein”- und “Aus”-Schalter des Aqara Rainsensors in der Variable “count”.
states('sensor.aqara_rainsensor_flips_on') ruft den aktuellen Wert des Sensors “Aqara Rainsensor Flips/Ein” ab.
int(0) wandelt den Wert in eine Ganzzahl um und setzt den Standardwert auf 0, falls kein Wert verfügbar ist.
- Die Addition zählt die “Ein”- und “Aus”-Schalter zusammen.
- {% set mm = … %}: Berechnet die Niederschlagsmenge in Millimeter basierend auf der Anzahl der Schalter (“count”) und einem angenommenen Umrechnungsfaktor (0.52615, muss ggf. an Ihren Sensor angepasst werden).
- {% if count >= 0 %}: Überprüft, ob die Anzahl der Schalter mindestens 0 ist (vermeidet negative Niederschlagsmengen).
- {{ mm|round(1, ‘floor’) }}: Falls die Bedingung erfüllt ist, zeigt der Sensor die Niederschlagsmenge in mm an, gerundet auf eine Nachkommastelle (abgerundet).
- {% endif %}: Schließt die If-Abfrage ab.
Funktionalität:
Dieser Sensor nutzt die gezählten Schalterwechsel des Aqara Rainsensors, um die kumulative Niederschlagsmenge des Tages abzuschätzen. Bedenken Sie, dass die Umrechnung mit dem Faktor 0.52615 möglicherweise an Ihren spezifischen Sensor angepasst werden muss.