Alten Wert einer Entität als Bedingung

Hallo,

ich beschäftige mich seit ein paar Tagen mit Home Assistent (nach 10 Jahren
FHEM :slight_smile: ) und komme soweit “eigentlich” auch ganz gut klar.

Nur habe ich jetzt seit 3 Tagen ein Problem das ich alleine nicht lösen kann:

Ich habe einen HX711 über ESP Home an HA angebunden. Er liefert im 3
Sekunden Takt valide Werte.

Ich möchte jetzt gerne eine Automation starten:

  • wenn der “neue” Wert über 90 liegt
  • aber nur wenn der vorherige Wert (also aus der Messung davor) unter 40 lag.

Und genau hier stecke ich fest.

Wie kann ich den Wert der vorherigen Messung als Bedingung auswerten?

Würde mich über eure Unterstützung wirklich freuen.

Viele Grüße
Stefan

Auch Dir kann geholfen werden. :grinning:

alias: von kleiner 40 zu größer 90
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.xyz
condition:
  - condition: template
    value_template: >-
      {{ trigger.from_state.state | int < 40 and trigger.to_state.state | int >
      90 }}

Gruß
Osorkon

2 „Gefällt mir“

Hi,

vielen Dank für Deine Hilfe.
Aber leider hab ich da noch den Bock drin.
Aus Deiner Vorlage habe ich folgendes gebaut.

- id: '1726753449999'  
  alias: von kleiner 40 zu größer 90
  description: ''
  trigger:
  - platform: state
    entity_id:
    - sensor.bett_gewicht
  condition:
  - condition: template
    value_template: >-
      {{ trigger.from_state.state | int < 500.000 and trigger.to_state.state | int >
      1.900.000 }}
  action:
  - action: notify.whatsapp
    metadata: {}
    data:
      message: Im Bett.
  mode: single

Das ESP-Home Device sendet alle 3 sek. den aktuellen Wert im oben stehend Format. Die Automation löst zwar aus, aber das Template wird nie “true”.

Vielleicht noch ein Tip?

Lieben Gruß
Stefan

Ich kann nur einen anderen Lösungsansatz bieten über einen Helfer und 2 Automationen.

  1. Einen input_number-Helfer (Eingabe für Zahlenwert) erstellen
  2. Mittels einer Automatisierung wird der Wert dann in den erstellten Helfer geschrieben:
trigger:
  - platform: state
    entity_id:
      - sensor.xyz
condition: []
action:
  - action: input_number.set_value
    metadata: {}
    data:
      value: "{{ states('sensor.xyz') }}"
    target:
      entity_id: input_number.letzterWert
mode: single

  1. Eine weitere Automation prüft, ob der aktuelle Wert über 90 und der vorherige Wert unter 40 war und löst dann das entsprechende Ereignis, aus:
trigger:
  - platform: state
    entity_id:
      - sensor.xyz
condition:
  - condition: and
    conditions:
      - condition: numeric_state
        entity_id: sensor.xyz
        above: 90
      - condition: numeric_state
        entity_id: input_number.letzterWert
        below: 40
action:
  - action: notify.whatsapp
    metadata: {}
    data:
      message: Im Bett.
  mode: single

Name des Sensors und Name des Helfers natürlich anpassen.

1 „Gefällt mir“

Von <40 zu >90 oder von <500 zu >1900
Was ist nun richtig?

In beiden Fällen muss der Wert direkt von y springen ohne Zwischenschritte.

Gruß
Osorkon

1 „Gefällt mir“

Ja, er springt direkt von unter dem einen Wert, welcher kleiner 500000 ist zu einem Wert über 1900000.
Sorry für die Verwirrung der Zahlen. Der Werte 40 und 90 die ich ursprünglich angegeben habe sind umgerechnete Daten vom HX711. Die beiden anderen sind die Rohdaten des HX711, mit welchen sich besser hantieren lassen.

Um sicher zu gehen, das dieser direkter Sprung zwischen den beiden Werten satt findet, habe ich testweise die Zeit der Messung von 3 Sek auf 10 Sek hoch gesetzt. Aber leider ist das Ergebnis das selbe…

500000 != 500.000 !!

Lass den Punkt weg!

Gruß
Osorkon

Leider brachte auch das nicht den gewünschten Erfolg.
Hier nochmal der akt. Code:

- id: '1726753449999'
  alias: HX711
  description: ''
  trigger:
  - platform: state
    entity_id:
    - sensor.bett_gewicht
  condition:
  - condition: template
    value_template: '{{ trigger.from_state.state | int < 500000 and trigger.to_state.state
      | int > 1900000 }}'
  action:
  - action: notify.whatsapp
    metadata: {}
    data:
      message: Im Bett.
  mode: single

Kommando zurück. Ich behaupte das Gegenteil.
Warum auch immer, es geht.

Vielen lieben Dank für eure Hilfe!!!

Gruß
Stefan

1 „Gefällt mir“