Automation Temperaturhöchstwert bläht Aktivitätenliste auf

Hi,

ich habe folgende Automation um Temperatur Spitzenwerte in Textfile zu schreiben


Auslöser

Sobald DR-GA Wetterstation Temperatur sich in seinem Zustand oder einem beliebigen Attribut ändert → ausgelöst (ID Temperatur_Jahreshoechstwert)

Aktion

Wenn ausgelöst durch Wetterstation_Spitzenwerte (Jahreshöchstwert ermitteln)

Bedingung

ID: Wenn ausgelöst durch Temperatur_Jahreshoechstwert
123: Wenn DR-GA Wetterstation Temperatur über input.Jahreshoechstwert (Helper) ist

Aktionen

Unter anderem wird der neue Höchwert in Helper geschrieben

----------------------------------------

Das funktioniert genauso wie ich es will. Nachteil die geloggte Aktivität wird aufgebläht weil die Bedingungen eher selten erfüllt sind. Also versuche ich andere Wege um in den Aktivitäten nur tatsächliche Ereignisse zu loggen.

ich habe auch versucht die Bedingung in den Auslöser zu schreiben, das funktioniert nur einmal und erst dann wieder, wenn der aktuelle Temperaturwert unter den Höchstwert gefallen ist.

alias: Temperatur Spitzenwerte
description: ""
triggers:
  - trigger: state
    entity_id: sensor.dr_garten_dr_ga_wetterstation_temperatur
    id: Wetterstation_Spitzenwerte
    enabled: true
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Wetterstation_Spitzenwerte
          - condition: numeric_state
            entity_id: sensor.dr_garten_dr_ga_wetterstation_temperatur
            above: input_number.temperatur_jahreshoechstwert
            enabled: true
        sequence:
          - action: notify.send_message
            metadata: {}
            target:
              entity_id: notify.file
            data:
              message: >-
                {{ now().strftime('%d.%m.%Y - %H:%M:%S') }}; {{
                states('sensor.dr_garten_dr_ga_wetterstation_temperatur') |
                replace('.',',') }}
          - alias: >-
              Wert in Helfer "Spitzenwert_Temperatur_Jahreshoechstwert"
              eintragen
            action: python_script.set_state
            data:
              entity_id: input_number.temperatur_jahreshoechstwert
              state: "{{ states('sensor.dr_garten_dr_ga_wetterstation_temperatur') }}"
              Datum: "{{ now().strftime('%d.%m.%Y - %H:%M:%S') }} "
          - action: homematicip_local.set_variable_value
            metadata: {}
            data:
              entry_id: 01KWCG5PHNW2QGZ6WXPVSKEAN3
              name: Spitzenwerte_Jahreshoechsttemperatur
              value: >-
                {{ now().strftime('%d.%m.%Y um %H:%M:%S') }} -> {{
                states('sensor.dr_garten_dr_ga_wetterstation_temperatur')  |
                replace('.',',') }}°
          - action: notify.e_mail_versenden
            metadata: {}
            data:
              message: >-
                {{ now().strftime('%d.%m.%Y - %H:%M:%S') }}; {{
                states('sensor.dr_garten_dr_ga_wetterstation_temperatur') |
                replace('.',',') }} Grad
              title: "!!! Temperatur Jahreshöchstwert !!!"
        alias: >-
          Wenn ausgelöst durch Wetterstation_Spitzenwerte (Jahreshöchstwert
          ermitteln)
mode: single


Warum treibst Du so einen hohen Aufwand?!
Hast Du Deinen Recorder deaktiviert?!

Du hast doch schon alle Daten in der Datenbank.

Um die Höchsttemperatur zu ermitteln, kannst Du doch einfach die bestehenden Daten aus der Datenbank verwenden.

Entweder über die SQL Integration

Oder über die Aktion Get Recorder statistics

Hier mal ein Bsp:

Gruß Osorkon

Vieln Dank für die Idee, die werde ich mir garantiert für andere Dinge aufbewahren. Aber ich will die aktuelle Temperatur parat haben. Also muesste alle 3 Minuten verschiedene sql-Abfragen stattfinden. Das ist mir zu resourcehungrig.

LG Klaus

Die hast Du doch laufend, liefert ja Dein Temperatur Sensor fortlaufend.

Was ist eigentlich Ziel dieser Übung?
Ggf. habe ich die Aufgabenstellung nicht wirklich verstanden.

Gruß Osorkon

Was mir erstens auffällt, wenn die Temperatur über den Höchstwert steigt bekommst du pro 1/10 Grad eine Mail (wenn Thermometer 1/10 Grad anzeigt)
Ich weiß jetzt nicht ob man Skripten deaktivieren kann, aber wenn ja kann man ja vorfiltern. Jeden Tag um 10.00 starten und schauen ob die Temperatur unter zB 10 Grad ist, dann wird es keinen Rekordwert geben, dann braucht der andere Skript nicht laufen. Und Wintermonate wird man es auch nicvt brauchen
Nur als Ansatz.

Eine Temperatur ist ja eine träge Angelegenheit.
Ich würde einfach die Automatisierung zyklisch alle 15 Minuten starten und den state des Sensors abfragen.

Hi,

vielen Dank für die Antworten, habe aber die Lösung gefunden.

Funktioniert recht einfach mit einem
Template Binärwertsensor (Helper)
Zahlenwert-Eingaben (Helper)

Auslöser:
Sobald Temperatur_JahreshoechstwertBIN sich von Aus oder Ein ändert

Aktion:
was auch immer
wichtig ist der aktuelle Höchstwert in input_number.temperatur_jahreshoechstwert (Helper) schreiben und somit ist da immer der Jahreshöchstwert aktuell, den man dann am 31.12. auf 0 setzen kann.

  1. Aktuelle Temperatur aus Wetterstation → sensor.dr_garten_dr_ga_wetterstation_temperatur
  2. Gespeicherter Temperatur Höchstwert → input_number.temperatur_jahreshoechstwert
# Template Binärwertsensor “Temperatur_JahreshoechstwertBIN”
{{ states(‘sensor.dr_garten_dr_ga_wetterstation_temperatur’) | float > states(‘input_number.temperatur_jahreshoechstwert’)  | float}}

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

Du könntest aber auch nur einfach mit einem Trigger Based Template Sensor arbeiten.
Der jeweils die Höchsttemperatur erfasst und sich zum 1.1 eines Jahres zurücksetzt.

Als Auslöser für Deine Automation, einfach diesen Sensor verwenden. Mit der Bedingung Neuer Wert > alter Wert. Und das vielleicht erst ab einer Mindesttemperatur von x grad. Damit Du zu Beginn des Jahres nicht im Stundentakt eine neue Höchsttemperatur gemeldet bekommst.

Gruß Osorkon