Sensor in Homeassistant "Tage seit letztem Regen"

Muhkuh666

Member
Hallo zusammen,

ich nutze eine Wetterstation in Homeassistant, der Event Rain Sensor heißt "sensor.easyweatherv1_6_5_event_rain_rate". Ich möchte nun einen Sensor der mir zeigt wieviele Tage das letzte Regenereignis her ist. Wie geht das für Noobies... Danke
 
Wenn Du nen Screenshot des Sensors (unter Entwicklerwerkzeuge => Zustände) einstellst sollte man Dir helfen können :)
 
Ehm - unklar ausgedrückt, ich meinte von Zustand und Attributen, um zu sehen, was wie angesprochen werden muss um den gewünschten Sensor zu erstellen :)
 
Okay, daraus sind jetzt keine Daten zu entnehmen wann es zuletzt geregnet hat. Aus nicht vorhandenen Daten kann man natürlich erstmal keinen Sensor erzeugen.

Das einzige was ich mir vorstellen könnte, wenn ein Zustand über 0 Regen bedeutet, dann könnte man eine Automatisierung machen, die einen Helfer aktualisiert wenn es von > 0 auf 0 springt. Den könnte man dann anzeigen lassen. Wäre es so in etwa gedacht? Ich kann allerdings nicht sagen, ob das bei state_class total_increasing überhaupt geht, hat es schonmal geregnet seitdem der eingerichtet ist?

Wenn es schonmal geregnet hat seitdem er eingerichtet ist, gib mal unter Entwicklerwerkzeuge => Template das hier ein:
YAML:
{{ states.sensor.easyweatherv1_6_5_event_rain_rate.last_changed }}
Das könnte man ggf. sogar abgreifen, wenn der Zustand den insgesamt gefallenen Regen misst, denn solange es regnet dürfte es in dem Fall Änderungen geben.
 
Da die Einrichtung offenbar länger her ist als das letzte Update des Sensors nehme ich mal an, er springt wieder auf 0, wenn der Regen aufhört.

Dann als Ansatz: Einstellungen => Geräte & Dienste => Helfer => Helfer erstellen => Template (für Sensor) und diesen Code einfügen:
YAML:
{% if states('sensor.easyweatherv1_6_5_event_rain_rate') in ("unavailable", "unknown") %}
  Regeninformation nicht erreichbar.
{% else %}
  {% if states('sensor.easyweatherv1_6_5_event_rain_rate') | float > 0 %}
    Es regnet grade.
  {% else %}
    Letzter Regen vor {{ ((now() | as_timestamp - states.sensor.easyweatherv1_6_5_event_rain_rate.last_changed | as_timestamp) / 60 / 60 / 24) | round(2) }} Tagen.
  {% endif %}
{% endif %}

Die Zeitangabe kannst Du natürlich noch nach Belieben ausformulieren, ich ging jetzt von Deinem "wieviele Tage" aus :)

Den damit erstellten Sensor kannst Du Dir einfach aufs Dashboard packen.
 
Könnte man denn auch den letzten Regen als Event in einen Helfer schreiben mit Datum und Uhrzeit? Also Startbedingung Niederschlag >0 und dann ab dem Zeitpunkt Niederschlag =0 das Datum und die Uhrzeit speichern? Wie geht das?
 
Klar, das ist genau das last_changed sofern 0. Also "gespeichert" ist das in dem Sinne schon, muss man nur ausgeben.

Das zusätzlich zu speichern würde ggf. Sinn machen, wenn HA öfter mal neu gestartet wird und der Sensor dann seine Infos verliert.
 
Das? Zusätzlich speichern? Naja, mit ner Automatisierung. Schätze mal was mit "wenn numerischer Zustand von Entität Regensensor unterhalt von 0.01", dann lege Wert für (vorher angelegten) Helfer fest.

Ich nutze HA halt selbst nicht und muss auch immer erst gucken :D wenn Du sagst, was Du damit letztlich anfangen willst, dann können wir ggf. Umwege vermeiden - also was das Format der Daten angeht. String? Datetime? Int oder Float?
 
Moin, kann mir einer sagen was hier falsch ist?

Code:
alias: Regen
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.easyweatherv1_6_5_event_rain_rate
    above: 0
condition: []
action:
  - service: input_text.set_value
    metadata: {}
    data:
      value: {{ ((now() | as_timestamp - states.sensor.easyweatherv1_6_5_event_rain_rate.last_changed | as_timestamp) / 60 / 60 / 24) | round(2) }} Tagen.
    target:
      entity_id: input_text.regen
mode: single

Danke
 
Schätzungsweise zumindest, dass die Angabe für value nicht in Anführungszeichen steht.

Um zu speichern wann der letzte Regen aufgehört hat sollte es in etwa so funktionieren:
YAML:
alias: Regen
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.easyweatherv1_6_5_event_rain_rate
    below: 1
condition: []
action:
  - service: input_text.set_value
    metadata: {}
    data:
      value: "{{ states.sensor.easyweatherv1_6_5_event_rain_rate.last_changed }}"
    target:
      entity_id: input_text.regen
mode: single
 
Danke Dir, wie kann man den Text noch so formatieren :
Original: 2024-05-05 08:18:18.035842+00:00
Wunsch wäre: 05.05.2024 um 08:18 Uhr ?

Danke für die Hilfe @Nival
 
Zu einem Timestamp konvertieren und diesen dann formatieren: | as_timestamp | timestamp_custom('%d.%m.%Y um %H:%M Uhr').
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.657
Beiträge
47.582
Mitglieder
4.300
Neuestes Mitglied
R2B2-123
Zurück
Oben