Einen Entity Max-Wert mit Datum ausgeben?

Moin, gibt es die Möglichkeit von einem Max-Wert des ganzen Jahres das Datum auszugeben, wann der Max-Wert gemessen wurde?

Worum gehts?
Ich möchte von meinem Netatmo Wind-Sensor, den Max-Wert der Windstärke und Windböe mit Datum auf einer Card ausgeben.

Um den Max-Wert pro Tag zu ermitteln nutze ich die HADaily Sensor GitHub - jeroenterheerdt/HADailySensor: Sensor for Home Assistant that gets reset at midnight

Dann gebe ich mit der Statistics-Card den Max Wert aus, mir fehlt aber das Datum wann der höchste Wert gemessen wurde. Muss nicht zwingend in der gleichen Card sein

Aktuell sieht das so aus:

Hab sowas ähnliches für meinen Regenmesser.
Hab jetzt gerade mit Deiner Idee mal was gebastelt für meinen Windmesser. Hoffe es geht.
Mein Daily Sensor den ich schon hatte heißt hier “sensor.wind_max_heute”
2 Helfer erstellen. Einen Datum und einen Nummer.


Wind_2

Uhrzeit hier mal um kurz vor Mitternacht.

alias: Stärksten Wind im Jahr festhalten
description: ""
trigger:
  - alias: Uhrzeit
    platform: time
    at: "23:58:00"
    id: Uhrzeit
  - alias: Neujahr
    platform: template
    value_template: "{{ now().month == 1 and now().day == 1 }}"
    id: Schaltpunkt für Neujahr
condition: []
action:
  - alias: Datum letzter Wind Max speichern wenn größer als letzter höchster Wert
    if:
      - condition: and
        conditions:
          - condition: trigger
            id:
              - Uhrzeit
          - condition: numeric_state
            entity_id: sensor.wind_max_heute
            above: input_number.hochste_windgeschwindigkeit_merken
    then:
      - service: input_datetime.set_datetime
        target:
          entity_id:
            - input_datetime.datum_wind_max_merken
        data:
          date: "{{ now().strftime('%Y-%m-%d') }}"
      - service: input_number.set_value
        metadata: {}
        data:
          value: "{{ states('sensor.wind_max_heute') }}"
        target:
          entity_id: input_number.hochste_windgeschwindigkeit_merken
  - alias: Jahresspitzenwert auf 0
    if:
      - condition: trigger
        id:
          - Schaltpunkt für Neujahr
    then:
      - service: input_number.set_value
        metadata: {}
        data:
          value: 0
        target:
          entity_id: input_number.hochste_windgeschwindigkeit_merken
mode: single

1 „Gefällt mir“

kurze Frage hierzu, wenn es auch kleinlich ist: warum triggerst du um 23:58:00 statt 23:59:59? So hast du zwei Minuten, die theoretisch nicht berücksichtigt werden, oder gibt es hierfür einen Grund?

@dunkelheim
Nö .-) …

1 „Gefällt mir“

Das ist ja doch einfacher als gedacht. Perfekt danke.

Mach ich mich die Tag mal dran :+1:

Dein Wind-/Windrichtungsanzeiger gefällt mir, was ist das für eine Karte?

Das ist die Compass-Card

1 „Gefällt mir“

Habe das Ganze mal mit der Solaranlage probiert,
funktioniert aber leider nicht.
Ich verstehe aber auch den ersten Helfer nicht, da Eingabefeld.
Ich dachte das der Wert automatisch eingetragen wird und das macht es nicht.

alias: höchste produzierte Energie
description: ""
trigger:
  - alias: Uhrzeit
    platform: time
    at: "23:59:59"
    id: Uhrzeit
  - alias: Neujahr
    platform: template
    value_template: "{{ now().month == 1 and now().day == 1 }}"
    id: Schaltpunkt für Neujahr
condition: []
action:
  - alias: Datum letzter Solar Max speichern wenn größer als letzter höchster Wert
    if:
      - condition: and
        conditions:
          - condition: trigger
            id:
              - Uhrzeit
          - condition: numeric_state
            entity_id: sensor.solar_current_power
            above: input_number.hochsten_wert_von_solar_merken
    then:
      - service: input_datetime.set_datetime
        target:
          entity_id:
            - input_datetime.datum_solar_max_merken
        data:
          date: "{{ now().strftime('%Y-%m-%d') }}"
      - service: input_number.set_value
        metadata: {}
        data:
          value: "{{ states('sensor.solar_current_power') }}"
        target:
          entity_id: input_number.hochsten_wert_von_solar_merken
  - alias: Jahresspitzenwert auf 0
    if:
      - condition: trigger
        id:
          - Schaltpunkt für Neujahr
    then:
      - service: input_number.set_value
        metadata: {}
        data:
          value: 0
        target:
          entity_id: input_number.hochsten_wert_von_solar_merken
mode: single

Wo liegt der Fehler?


Hast Du die Hacs Integration “Daily Sensor” geladen ?
Darauf beruht es.
Das Eingabefeld Helfer ist nur dazu da wie groß die Zahl max sein darf, die nachher drin stehen darf.

Ja Daily Sensor habe ich geladen.
Muss ich diesen Wert dann festlegen, z.B.
die Anlage macht etwas über 800 Watt,
muss ich dann da 900 eintragen oder lass ich das auf null?

Wenn ich die Uhrzeit noch dabei haben möchte,
wie muss ich den service umschreiben?
Da steht ja aktuell nur input datetime und set datetime oder
beinhaltet datetime wirklich Datum und Uhrzeit?

Mit Uhrzeit glaube ich so. Dann auf Datum und Uhrzeit wechseln.

date: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"

Bin mir nicht sicher wie das gehändelt wird wenn da kein Maximum drin steht.

Geht leider nicht.
Bleibt konstant auf 0:00 stehen.

Was meinst Du eigentlich mit “dann auf Datum und Uhrzeit wechseln” ?

Wenn Du den Helfer meinst, das habe ich gemacht.

Schreib so.

data:
  date: "{{ now().strftime('%Y-%m-%d') }}"
  time: "{{ now().strftime('%H:%M:%S') }}"

Wobei die Uhrzeit ja nicht viel bringt, da wir ja kurz vor Mitternacht den max Wert des Tages festhalten. Da hast Du dann immer diese Uhrzeit drin.

Das ist schade, ich dachte der Daily Sensor merkt sich zu dem Max-Wert
die dementsprechende Uhrzeit und bei time stelle ich nur ein wann der Wert
abgefragt werden soll.

@Sagitariusstern
Du könntset die Automation auch alle 30 Minuten Abfragen. Dann hättest Du auch den Max Wert bis Dato und die Uhrzeit auf 30 Min genau.

Das heißt ich brauche einen anderen Trigger?
Ich habe die Uhrzeit auf 21:00 Uhr eingestellt,
was für mich bedeutet das um 21 Uhr der max Wert
vom Tag abgefragt wird und dann in die input number geschrieben wird,
wenn er höher war als der letzte natürlich.

Oder wird dann der max Wert von dieser Uhrzeit eingetragen?

Kann ich mir aber nicht vorstellen, da dann der daily sensor keinen Sinn ergibt.

Was ich an der ganze Sache nicht verstehe ist,
ich habe auch den history explorer bei dem sich graphisch die Daten
anzeigen lassen kann.

Ergo werden die Daten sprich Datum, Uhrzeit und Wert gespeichert.
Es muss doch dann auch eine Möglichkeit geben die Daten anzuzapfen
und diese als maxwerte mit Datum und Uhrzeit anzeigen zu lassen.

Man hat ja keine Lust ein ganzes Jahr per Graphen zu analysieren.
Ziel ist ja an diesem Datum, zu dieser Uhrzeit wurde ein Peak erreicht
und dann kann man den Graphen zu Nutzen machen und kann dann sehen
war es klarer Tag oder eher ein bewölkter und der Peak war nur ein kurzer
Moment weil die Wolkendecke sich gerade aufgelöst hat.

Das absolute Ziehl ist herauszufinden, zu welcher Jahreszeit ich
den Winkel der Solaranlage dementsprechend anpassen muss,
um den maximalen Ertrag auf das Jahr gesehen erreichen kann.

@Sagitariusstern
Geh mal bei dem Daily Sensor auf Konfigurieren.
Da kannst Du das Refresh Intervall einstellen. Er prüft dann immer mit diesem Intervall die schon gesammelten Daten des Tages und davon den Max Wert.
Bei mir sind es 1800 Sekunden also 30 Minuten.
Du könntest jetzt als Trigger ein “Zeitraster” nehmen und da bei Minuten z.B. /10 eintragen. Die alte ID nicht vergessen und bei “Dann mache” wieder anklicken.
Dann würde die Automation alle 10 Minuten ausgeführt und bei neuem Höchstwert dieser gespeichert, mit der Zeit wenn Du willst. Dem enstprechend das Intervall Refresh anpassen.
Mehr kann ich Dir nicht anbieten mit dieser Variante.

Ich danke Dir.
Das mit dem Zeitraster war des rätsels Lösung.
Funktioniert jetzt genauso wie es soll.

Nochmals besten Dank!!!