Richtiges Runden von Werten in Templates
Einleitung
Das korrekte Runden von Werten in Templates ist eine häufige Anforderung in der Smart-Home-Programmierung, insbesondere bei der Arbeit mit Sensoren. Falsches Runden kann zu unerwarteten Ergebnissen führen, was die Automatisierung und Entscheidungsfindung beeinträchtigen kann. In diesem Artikel wird erläutert, wie man Werte korrekt rundet und vergleicht.
Problem
Ein Benutzer hat Schwierigkeiten beim Runden von Temperaturwerten in einem Template. Der Versuch, den Wert eines Temperatursensors zu runden und mit einem bestimmten Wert zu vergleichen, führt nicht zu den erwarteten Ergebnissen. Der Benutzer hat verschiedene Ansätze ausprobiert, jedoch ohne Erfolg.
Lösung
Um sicherzustellen, dass der Wert korrekt gerundet wird, sollte der Sensorwert zuerst in einen Fließkommawert umgewandelt werden, bevor das Runden angewendet wird. Der korrekte Code lautet:
{% if states('sensor.eingangsbereich_ms_air_temperature') | float | round(0) == 13 %}
Hier wird der Sensorwert mit states()
abgerufen, in einen Fließkommawert umgewandelt und anschließend gerundet. Der Vergleich erfolgt dann mit dem gerundeten Wert. Diese Methode stellt sicher, dass der Wert korrekt interpretiert und gerundet wird.
Schritte zur Umsetzung
1. Stelle sicher, dass der Sensorwert korrekt abgerufen wird, indem du states('sensor.eingangsbereich_ms_air_temperature')
verwendest.
2. Wandle den Wert in einen Fließkommawert um, indem du | float
hinzufügst.
3. Wende das Runden an, indem du | round(0)
verwendest.
4. Vergleiche den gerundeten Wert mit dem gewünschten Wert (in diesem Fall 13).
Hintergrundwissen
In der Template-Syntax von Home Assistant ist es wichtig, die richtigen Filter in der richtigen Reihenfolge anzuwenden. Der float
-Filter konvertiert den Wert in einen Fließkommawert, was notwendig ist, da Sensorwerte oft als Strings zurückgegeben werden. Das Runden erfolgt dann auf die nächste ganze Zahl. Ein häufiger Fehler ist, den Runden-Filter direkt auf einen String anzuwenden, was zu unerwarteten Ergebnissen führen kann.
Zusätzliche Infos
Funktion | Erklärung | |
---|---|---|
`states()` | Ruft den aktuellen Zustand eines Sensors oder Entität ab. | |
` | float` | Wandelt den Wert in einen Fließkommawert um. |
` | round(0)` | Rundet den Wert auf die nächste ganze Zahl. |
`==` | Vergleicht zwei Werte auf Gleichheit. |
Hinweise & Best Practices
- Überprüfe immer den Typ des Wertes, den du verarbeiten möchtest. Verwende | float
, um sicherzustellen, dass du mit numerischen Werten arbeitest.
- Teste deine Templates in der Entwicklungsumgebung von Home Assistant, um sicherzustellen, dass sie wie erwartet funktionieren.
- Dokumentiere deine Templates und deren Logik, um zukünftige Anpassungen zu erleichtern.