Moin,
wie oben versprochen mein Methode zum Unterscheiden von Regen/Tau etc.
Sie bezieht sich auf den Regensensor Tuya RB-SRAIN01 und auf die letzten 3 Tage wechselhaftem Wetter und erzeugtem 3800 Testdaten und Beobachtungen. Und dann Muster erkennen und programmieren und wieder von vorne anfangen 
Testdaten
Um Testdaten zu produzieren habe ich mir bei jeglicher Änderung von sensor.regensensor_rain_intensity eine Mail mit verschiedensten Werten herangezogen, die ich ggf. zur Unterscheidung heranziehen könnte.
action: notify.gmx
metadata: {}
data:
title: >-
{{states('sensor.uhrzeit_momentan_formatiert_hh_mm')}} Regenintensität zu
"{{ states('sensor.regensensor_rain_intensity') }}" und "{{
states('sensor.regenstarke') }}"
message: |
- Automatisation: automation.om_aut_draussen_regenstarke -
- binary_sensor.regensensor_cleaning_reminder: {{
states('binary_sensor.regensensor_cleaning_reminder') }}
- sensor.regensensor_battery: {{ states('sensor.regensensor_battery') }} %
--------------------
- Regensensor State: {{ states('binary_sensor.regensensor_rain')}}
- sensor.regensensor_rain_intensity:
{{states('sensor.regensensor_rain_intensity') }}
- sensor.regen_ableitung_45_sekunden:
{{states('sensor.regen_ableitung_45_sekunden') }}
- sensor.regen_ableitung_5_minuten:
{{states('sensor.regen_ableitung_5_minuten') }}
- Mein eigener Sensor Regenstaerke hat den Status:
"{{ states('sensor.regenstarke') }}" -> Stimmt das mit Deiner Beobachtung überein ???
--------------------
- Solarproduktion: {{states('sensor.solar_carport_power')}}
- Wetter Quickborn: {{states('weather.quickborn')}}
Kleiner Tipp: Automatisches Verschieben in einen Unterordner macht Sinn.
Erster Teil der Lösung sind 2 Ableitungssensoren, die angelegt werden müssen:
- 45 Sekunden Basis (= kurzfristiger Anstieg/Rückganges)
- 5 Minuten Basis (Anstieg/Rückganges in 5 min)
Als Besitzer eines Balkonkraftwerks habe ich noch die erzeugte Solarenergie als Kriterium herangezogen. Darüber läßt sich streiten weil es auch mal bei Sonne regnen kann aber ich fand es sehr hilfreich um stundenlange Feuchtigkeit am Tau am Morgen zu erkennen.
Zweiter Teil der Lösung: Ein Template Sensor angelegt mit folgendem Code:
{#--- 1. Setzen von Texten und anderen Variablen ---#}
{% set Solargrenze_sonnig_watt = 150 -%}
{% set Regenstatus1 = 'Es ist feucht (kein Regen).' -%}
{% set Regenstatus2 = 'Fing gerade an zu regnen.' -%}
{% set Regenstatus3 = 'Es regnet.' -%}
{% set Regenstatus4 = 'Es regnet etwas weniger.' -%}
{% set Regenstatus5 = 'Kein Regen aber es ist naß.' -%}
{% set Regenstatus6 = 'Es ist naß aber die Sonne scheint.' -%}
{% set Regenstatus7 = 'Kein Regen aber es ist naß.' -%}
{% set Regenstatus8 = 'Logik unvollständig' -%}
{% set Regenstatus9 = 'Es regnet nicht.' -%}
{% set Regenstatus10 = 'Invalider Status' -%}
{# Zum Debuggen Kommentar entfernen / überschreibt obere Texte
{% set Regenstatus1 = 'Es ist feucht. (Tau o. Restregen)' -%}
{% set Regenstatus2 = 'Fing an zu regnen (45 s > 1)' -%}
{% set Regenstatus3 = 'Es regnet (5 min > 1)' -%}
{% set Regenstatus4 = 'Es regnet weniger (45 s < -1)' -%}
{% set Regenstatus5 = 'Kein Regen aber naß (5 min < -1)' -%}
{% set Regenstatus6 = 'Sonne aber naß (Solar > ' + Solargrenze_sonnig_watt | string + ')' -%}
{% set Regenstatus7 = 'Kein Regen aber naß (-1 zu 1)' -%}
{% set Regenstatus8 = 'Logik unvollständig' -%}
{% set Regenstatus9 = 'Es regnet nicht (off)' -%}
{% set Regenstatus10 = 'Invalider Status' -%}
#}
{% set Regensensor = none -%}
{% set Regenintensitaet = none -%}
{% set Ableitung_45s = none -%}
{% set Ableitung_5min = none -%}
{% set Solar = none -%}
{% set invalid_status = ['none', 'unknown', 'unavailable'] -%}
{% set my_stati = true -%}
{#--- 2. Prüfung auf valide Stati (mystati == false führt später zum Abbruch) ---#}
{% if states('binary_sensor.regensensor_rain') | lower not in invalid_status -%}
{% set Regensensor = states('binary_sensor.regensensor_rain') -%}
{% else %}
{% set my_stati = false -%}
{% endif -%}
{% if states('sensor.regensensor_rain_intensity') | lower not in invalid_status -%}
{% set Regenintensitaet = states('sensor.regensensor_rain_intensity') | float -%}
{% else -%}
{% set my_stati = false -%}
{% endif -%}
{% if states('sensor.regen_ableitung_45_sekunden') | lower not in invalid_status -%}
{% set Ableitung_45s = states('sensor.regen_ableitung_45_sekunden') | float -%}
{% else -%}
{% set my_stati = false -%}
{% endif -%}
{% if states('sensor.regen_ableitung_5_minuten') | lower not in invalid_status -%}
{% set Ableitung_5min = states('sensor.regen_ableitung_5_minuten') | float -%}
{% else -%}
{% set my_stati = false -%}
{% endif -%}
{% if states('sensor.solar_carport_power') | lower not in invalid_status -%}
{% set Solar = states('sensor.solar_carport_power') | float -%}
{% else %}
{% set my_stati = false -%}
{% endif %}
{#--- 3. Beginn der Unterscheidungen ob Regen, Tau oder nur feucht ---#}
{% if my_stati -%}
{# Case: Es ist feucht aber Regensensor ist noch off
Ich konnte keinen belastbaren Zusammenhang zwischen Regensensor on/off und Regenintensität herstellen
- off -> on bei > 700 aber auch erst bei 2077
- on -> off bei Durchbruch erst bei von 176
Ich setze >80 als feucht und sollte Regensensor angehen, überschreibt er den Wert von Regenstatus
#}
{% if Regensensor == 'off' and Regenintensitaet > 80 -%}
{% set Regenstatus = Regenstatus1 -%}
{% elif Regensensor == 'on' or Ableitung_45s > 1 or Ableitung_5min > 1 -%}
{# !!! Denk dran elif bedeutet obere Bedingungen greifen alleinig, also die eindeutigen nach oben !!!#}
{# Fing an zu regnen (45 s > 1) #}
{% if Ableitung_45s > 1 and Ableitung_5min <= 1 -%}
{% set Regenstatus = Regenstatus2 -%}
{# Es regnet (5 min > 1)#}
{% elif Ableitung_5min and Ableitung_5min > 1 -%}
{% set Regenstatus = Regenstatus3 -%}
{# Es regnet weniger (45 s < -1) #}
{% elif Ableitung_45s < -1 %}
{% set Regenstatus = Regenstatus4 -%}
{# Kein Regen aber naß (5 min < -1) #}
{% elif Ableitung_5min < -1 %}
{% set Regenstatus = Regenstatus5 -%}
{# Solarproduktion > XXX Watt weil Sonne scheint (Schwachpunkt: manchmal regnet es auch wenn die Sonne scheint #}
{% elif Solar > Solargrenze_sonnig_watt -%}
{% set Regenstatus = Regenstatus6 -%}
{# Kein Regen aber naß (-1 zu 1) #}
{% elif Ableitung_45s >= -1 and Ableitung_45s | float <= 1 -%}
{% set Regenstatus = Regenstatus7 -%}
{% else %}
{#Logik ist noch nicht vollständig :( #}
{% set Regenstatus = Regenstatus8 -%}
{% endif %}
{# Case: Regensensor = off - Es regnet nicht #}
{% else %}
{% set Regenstatus = Regenstatus9 -%}
{% endif %}
{# Case: Invalider Status #}
{% else -%}
{% set Regenstatus = Regenstatus10 -%}
{% endif -%}
{{Regenstatus}}
Für die Entwickler unter Euch: Was mich anfangs verzweifeln ließ, war folgendes Jinja Verhalten:
{{-1.6 | float }} → 1.6 (Wo ist das Minus?)
{% set value = -1.6 %}
{{value | float }} → -1.6
Der Jinja-Parser erkennt das Minuszeichen als Trennzeichen und “floated” nur die Ziffer. Wird der Wert einer Variablen zugewiesen, geht es.
Und was mache ich daraus?
Am meisten interessiert mich, wenn es anfängt zu regnen und entsprechende Türen/Fenster zu sein sollten. Unsere Gartenhüttentür vergessen wir sehr gerne.
Desweiteren spiele ich mit dem Gedanken, unser Gartenlicht auszuschalten, wenn es so richtig schüttet. Aus reiner Kurzschluß Vorsicht aber mal sehen.
Was noch offen ist
Keine Ahnung wie der Regensensor sich im Winter bei Schnee oder Frost verhält. Dann werde ich sicher hier und da noch nachjustieren müssen.
Ich wünsche Euch ein Gutes Gelingen mit Euren Regensensoren!
PS: Danke auch an @RobertSorgenfrei, der mich in diesem Thread auf die richtige Idee gebracht hatte. Deine 45 s Ableitungsidee habe ich übernommen.