Wert zwischenspeichern später vergleichen (differenz)

Hallo zusammen,

ich habe einen Growatt Speicher der sobald die Stromaufnahme hoch ist 700Watt ins Haus einspeisen soll . Bisher hat das funktioniert aber im Sommer kommt so viel Leistung dass meine dumme Steuerung durcheinander kommt.
Bisher wurde Sensor Tasmota (nimmten den aktuellen Wert des Stromzählers) abgefragt und per Automation je nach Leistung ein Schalter auf an oder aus gestellt, dieser Schalter wurde dann für die Growatt Automation verwendet. Nun möchte ich gerne alle X sec den Tasmota wert mit dem vorangegangenen Wert vergleichen und sobald der Wert größer 1000 oder -1000 ist den Schalter auf an oder aus stellen (Hohe Stromaufnahme an oder aus).

Ich habe schon einiges gefunden aber das ist mir alles zu kompliziert, hab gerade das Video von Simon gesehen mit dem Speichern als szene aber da konnte ich dann nicht auf den Zahlenwert zugreifen (evtl. nicht richtig gemacht oder es geht nicht.)

Gibt es nicht über die Oberfläche (Automation/Helfer) eine einfache Möglichkeit das umzusetzen?
Mir gehen die ideen aus, ich schaffe es nicht mal einen Helfer zu erstellen der mir das alle X Sec berechnet und in einer variable (sensor / entität) speichert welche ich dann benutzen könnte.

Vor- und Nachgänger Berechnungen ist schon Stufe 3. Bleib einfach dran bis es nicht mehr zu kompliziert für Dich ist.

Später würde ich dann einen trigger-based-template Sensor anlegen in der configuration.yaml. https://www.home-assistant.io/integrations/template/#trigger-based-template-binary-sensors-images-lights-numbers-selects-sensors-switches-and-weathers

Ich hab diesen einmal testweise angelegt und es funktioniert. Wenn die Klimi mehr als 50 W aufnimmt oder verliert, verglichen zum Vorgängerwert, zeigt der Status des Sensors true und ansonsten false.

template:
  - trigger:
      - platform: state
        entity_id:
          - sensor.shellyklimaanlage_power
    sensor:
      - name: "Schwellwert Stromverbrauch Erreicht"
        unique_id: schwellwert_stromverbrauch_erreicht
        state: >
          {% set schwellwert_watt = 50 %}
          {% if is_number(trigger.from_state.state) and is_number(trigger.to_state.state) %}
            {% set old = trigger.from_state.state | float %}
            {% set new = trigger.to_state.state | float %}
            {{ (old - new) | abs > schwellwert_watt }}
          {% else %}
            false
          {% endif %}
          

3 Tipps

  • Anstelle einer festen Zahl {% set schwellwert_watt = 50 %} würde ich lieber einen numerischen Helfer anlegen und diesen hier definieren andererseits mußt Du bei jeder Änderung in der configuration.yaml HA neustarten.
  • Sei vorsichtig bei Änderungen in der configuration.yaml, immer schön schauen ob der Haken grün ist. Sonst könnte HA nicht richtig starten (eigene Erfahrung)
  • Später in der Automatisation wo Du den neuen Sensor als Trigger verwendest würde ich immer eine Zeit mitgeben, z.B. trigger erst wenn Sensor für xxx Sekunden auf true ist. So verhinderst Du Aktionen aufgrund kurzfristiger Schwankungen

Gutes Gelingen!

Danke für deine Bemühung aber das überschreitet meinen Horizont weil ich die Syntax nicht verstehe und nie und nimmer da einen Fehler finden würde!
Aber wenn ich dich richtig verstehe, könnte ich einen Numerischen Helfer erstellen mit wert 0 und diesen dann versuchen mit dem Wert aus Tasmota zu überschreiben? Bisher habe ich den versuch mit dem Helfer immer abgebrochen da ich ja keinen festen wert definieren möchte, aber so würde ich zumindest den nötigen Parameter bekommen?

Versuch gescheitert, Numerischer Helfer schaut anders aus als ich dachte!

Gib nicht auf. Am Anfang habe ich das ständig gedacht. Geh in kleinen Schritten und wachse in Deinem Tempo.

Das war nicht was ich vorschlug aber ja Du kannst einen numerischen Helfer per Automatisation immer überschreiben sobald sich die Watt Zahl ändert. Mache ich in einigen anderen Fällen auch so (wenn die Stati nicht so schnell sich ändern). Bei sich ständig schnell ändernden Strom Werten würde ich immer einen Sensor wie oben empfehlen.

Jeder Versuch macht klug, versuchs einfach und beobachte die Automatisation.

Ich dachte so!
Automation mit auslöser Zeit.
Nach Zeit x schreibe ich den aktuellen Wert in mein Helfer Zahlenwert.

Leider taucht der Helfer aber bei Entität auswählen nicht auf!

Ich habe auch dass hier gefunden (könnte ich anpassen) aber dafür benötige ich vermutlich auch den Zahlenwert.

service: counter.set_value
data:
  value: "{{ states('sensor.0xa4c138617e511a3c_power') }}"
target:
  entity_id: counter.solix_akku_last
  • Nimm nicht “Zahl festlegen” sondern “Zahlenwert-Eingabe”
  • Unter Wert entferne alles rechts/links von {{...}}

Auch hier kann ich bei ziele “entität auswählen” keine entität finden, es wird nichts angezeigt, bei Zahl festlegen bekomme ich zumindest einige vorschläge (alle MQTT).

Zeige bitte Deinen input_number Helfer, z.B.


Ich vermute irgendwas stimmt mit dem nicht.

Nun bekomme ich den Helfer, keine ahnung was ich vorher falsch gemacht habe.

Aber wie belege ich nun den Wert automatisch, das was ich da eingetippt habe in Wert mag das Eingabefeld nicht.

Nun gibt es bei Helfer auch die option Zahl Festlegen nicht mehr? das ist mir alles zu hoch!

image

Wirklich kein Leerzeichen links und rechts der Klammern?

Vielleicht solltest Du Dir von Simon noch ein paar Grundlagen Videos anschauen, nachbauen und probieren bis es sitzt. Und solltest Du danach immer noch verzweifelt sein, ist HA vielleicht nichts für Dich. Ich denke jedoch, jeder bekommt mit Zeit und Übung alles hin. Der Anfang ist schwer.

Nein, die Zeile ist aus einer funktionierenden Automation kopiert!
Nur wenn ich eine Zahl eingeb geht der rote Balken weg.

Denke Du hast recht dass ich da einfach nicht geeignet dafür bin, alles was ich versuche scheitert. Habe in der Doku auch schon ein beispiel in der Automation Yaml gefunden mit delay aber auch hier habe ich es nicht zum laufen gebracht.
Dachte es müsste doch einfach sein einen Wert zeitversetzt zu vergleichen um die diferenz auszuwerten.

Aber danke an alle für den versuch mir zu helfen.

Habs nun nach langem versuchen zum laufen gebracht (die Automation direkt in der YAML bearbeitet). Da ich sehr wenig ahnung habe kopiere ich so gut wie alles aus irgend einer anderen Automation. Dank dem tip irgendwo im Forum, chat gpt zu bemühen habe ich den Fehler letztendlich gefunden, evtl. hat dennoch noch einer von euch Geduld mir das zu erleutern.
Überall in meiner Automation YAML wird states(‘‘sensor.tasmota_power_curr’’) mit 2 ’ geschrieben aber das war hier der Fehler, lösche ich den 2. ’ dann läuft es.
Warum? Was sind das für Striche?

- id: '1749289443040'
  alias: Kopiere Tasmota in speicher
  description: ''
  triggers:
  - trigger: time_pattern
    seconds: '40'
  conditions: []
  actions:
  - service: input_number.set_value
    metadata: {}
    data:
      value: "{{ states('sensor.tasmota_power_curr') }}"
    target:
      entity_id: input_number.zahlenwerttest
  mode: single