Sensorwerte vergleichen

Rat und Tat rings um Home Assistant Automationen.


Antworten
Benutzeravatar
Volker
Beiträge: 229
Registriert: Mi 28. Jun 2023, 17:20
Wohnort: Südhessen
Has thanked: 71 times
Been thanked: 26 times

Sensorwerte vergleichen

Beitrag von Volker »

Wie kann man die Werte zweier Sensoren miteinander vergleichen und damt eine Automation triggern?

Beispiel:
Wenn die Temperatur an Sensor 1 größer ist als die an Sensor 2 dann mache xxxx

Home Assistant auf HP T630 8GB SSD 128GB
.... und einen unbändigen Spieltrieb :D ....

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Sensorwerte vergleichen

Beitrag von Osorkon »

Da gibt es mehrere Möglichkeiten. 😀

Eine wäre, als Auslöser ein Template zur verwenden.
Eine andere über ein Template Sensor.
Der Template Sensor hätte den Vorteil, dass Du Diesen zum einem in weitere Automatisierungen berücksichtigen kannst. Und Du könntest auch den Zeitfaktor berücksichtigen, also größer als für x Minuten.

Für beides kann ich gerne heute Abend ein Bsp. reinstellen.
Wenn Du mir derweilen, die Entitäten der Sensoren und was genau mit was vergleichen werden soll bereitstellen kannst, kann das in den Templates berücksichtigen.

Damit Du Dich solange nicht langweilen tust. ;)
Kannst Du Dich schon mal in das Thema Templating einlesen.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Volker
Beiträge: 229
Registriert: Mi 28. Jun 2023, 17:20
Wohnort: Südhessen
Has thanked: 71 times
Been thanked: 26 times

Re: Sensorwerte vergleichen

Beitrag von Volker »

Die Automation würde konkret lauten:

Trigger:
wenn die Temperatur sensor.netatmo_garten_temperature für 15 Min höher ist als die Temperatur sensor.netatmo_innen_temperature

Dann:

notify per Whatsapp: "Fenster schließen"

Ist bein Den Temperaturen draußen gerade ganz sinnvoll... :D :D

Home Assistant auf HP T630 8GB SSD 128GB
.... und einen unbändigen Spieltrieb :D ....

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Sensorwerte vergleichen

Beitrag von Osorkon »

Fangen wir mal mit dem Template an, welches die Differenz zwischen Außen-Temperatur und Innen-Temperatur ermittelt

Code: Alles auswählen

 {{ ( states('sensor.netatmo_garten_temperature') | float(0) - states('sensor.netatmo_innen_temperature') | float(0) ) | round(2)  }}

mit

Code: Alles auswählen

| float(0)

formatierst Du den Sensorwert in eine Kommazahl. In Klammern gibst Du den default Wert an, falls der Sensor nicht verfügbar ist. Das verhindert, dass das Template einen Fehler ausgibt.

mit

Code: Alles auswählen

| round(2) 

Rundest Du das Ergebnis auf 2 Nachkommastellen.

Das Ergebnis ist dann ein Zahl z.B. 4.91

Wenn Du einen Vergleichsoperator ins Spiel bringst.

Code: Alles auswählen

{{ ( states('sensor.netatmo_garten_temperature') | float(0) - states('sensor.netatmo_innen_temperature') | float(0) ) | round(2) > 0  }}

Ist das Ergebnis True oder False

Template's kannst Du im Bereich Entwicklungswerkzeuge -> Template im Template-Editor testen.

Diese Template kannst Du so als Template Trigger bereits verwenden.

Template Trigger.jpg
Template Trigger.jpg (34.89 KiB) 522 mal betrachtet

Mit Angabe von Für 15Min. Löst der Trigger aus, sobald die Außen-Temperatur über die Innen-Temperatur steigt und 15min über der Innen-Temperatur bleibt.

Du kannst auch mit einem Template Sensor Arbeiten, wenn Du den Zustand Außen > Innen, entweder als Sensor im Dashboard verwenden willst, oder um in Automatisierungen anstatt mit Template Trigger mit einem Zustand Trigger zu arbeiten.

Auszug aus der template.yaml

Code: Alles auswählen

#template.yaml
- binary_sensor:
  - name: Temperaturwarnung
    state: |
      {{ ( states('sensor.netatmo_garten_temperature') | float(0) - states('sensor.netatmo_innen_temperature') | float(0) ) | round(2) > 0  }}
    device_class: heat
    unique_id: 4600d070-2013-11ee-9d89-15530b5006f6

Wenn Du Deinen Konfiguration nicht aufgeteilt hast (Hier geht es zu Dokumentation)

sieht der code in der configuration.yaml so aus:

Code: Alles auswählen

#configuration.yaml
template:
  - binary_sensor:
    - name: Temperaturwarnung
      state: |
        {{ ( states('sensor.netatmo_garten_temperature') | float(0) - states('sensor.netatmo_innen_temperature') | float(0) ) | round(2) > 0  }}
      device_class: heat
      unique_id: 4600d070-2013-11ee-9d89-15530b5006f6

Du erstellst damit mit Hilfe der Integration Template einen Binary Sensor.
Die Device Class kannst Auch weg lassen, diese definiert das Icon und den Zustand der im Dashboard angezeigt wird.
Mit der Verwendung der Unique ID (Bei mir ist es eine Zeitstempler basierte Unique ID über einen ID Generator erstellt)
Kannst Du den so erstellten Sensor in der GUI Konfigurieren, das Heist den Namen, das Icon und die device class ändern.

Bei jeder Änderung in den yaml Dateien solltest Du immer zuerst die Konfiguration Prüfen
Entwicklungswerkzeuge -> YAML
Danach reicht es aus die Template Entitäten Neu zu laden.

Jetzt kannst Du den so erstellten Template Sensor in Deinen Automatisierungen verwenden.

Auslöser -> Zustand

Trigger Template Sensor.jpg
Trigger Template Sensor.jpg (33.47 KiB) 522 mal betrachtet

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Volker
Beiträge: 229
Registriert: Mi 28. Jun 2023, 17:20
Wohnort: Südhessen
Has thanked: 71 times
Been thanked: 26 times

Re: Sensorwerte vergleichen

Beitrag von Volker »

@Osorkon - ich hab noch vor dem Zahnarzttermin die Automation aufgesetzt....
Gerade hat der CallMeBot mich per Whatsapp daran erinnert, die Fenster zu schließen!
Echt super - bin begeistert. es hat funktioniert.
Werd mich doch mal in die Syntax der Templates einarbeiten müssen....

Home Assistant auf HP T630 8GB SSD 128GB
.... und einen unbändigen Spieltrieb :D ....

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Sensorwerte vergleichen

Beitrag von Osorkon »

TOP!
Das ganze funktioniert aber nur, wenn Du Dich noch Zuhause befindest. Aus der Ferne kannst Du ja das Fenster nicht schließen, oder?

Da wurde sich vielleicht noch eine Automatisierung anbieten, wie:
Vor dem Verlassen des Hauses eine Benachrichtigung wenn die Tageshöchsttemperatur (Forecast) höher ist als die Innen-Temperatur. Oder wenn Regen vorhergesagt ist.

Oder Du schließt generell alle Fenster, bevor Du das Haus verlassen tust.

Ich habe mir einfach eine Automatisierung erstellt, die beim Öffnen der Haustür eine Lapme rot aufleuchten lässt, wenn mindestens ein Fenster offen steht, sonst grün. :D

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Volker
Beiträge: 229
Registriert: Mi 28. Jun 2023, 17:20
Wohnort: Südhessen
Has thanked: 71 times
Been thanked: 26 times

Re: Sensorwerte vergleichen

Beitrag von Volker »

Ja, das mit den Fenster schließen ist noch Handarbeit... da muss ich zuhause sein. Auch hab ich noch keine Sensoren an irgendeinem Fenster.
Als erstes wären da die Dachflächenfenster interessant, da es bei starkem Regen und Wind reinregnen kann.
Gibt es gute Neigungssensoren, die schon wenige Grad Neigung registrieren können? (Zigbee oder WIFI)

Home Assistant auf HP T630 8GB SSD 128GB
.... und einen unbändigen Spieltrieb :D ....

Antworten