
Home Assistant Quickie: Werte in Prozent anzeigen
Bei meiner Zisterne, wird aus der Spannung des Wasserstandsensors der Füllstand in Zentimetern und Litern berechnet. Natürlich weiß ich, dass bei 100,5 cm Füllstand die Zisterne bis zum Überlauf voll ist und damit laut Herstellerangabe 5130 Liter Wasser enthalten sind. Doch wie gibt man den Füllstand in Prozent aus? Das ist auch für Batterieanzeigen interessant, denn 70 % Batterielevel sind intuitiver zu verstehen, als 2,7 Volt.
Mit einem Sensor-Template geht die Umrechnung ganz einfach, denn damit kann man praktisch einen „virtuellen“ Sensor bauen, der eine Berechnung aus anderen Quellen ausgibt.

Wir benötigen einen Sensor mit dem aktuellen Wert, also z. B. dem aktuellen Wasserstand in Litern. Bei mir ist das die Entität sensor.zisterne_liter. Außerdem den maximal zu erreichenden Wert, den Grundwert. Bei meiner Zisterne wären das 5130 (Liter).
Nun erstellt man einen neuen Sensor. Entweder unter sensors: in der configuration.yaml oder, wie bei mir, in einer ausgelagerten sensors.yaml in der nur meine Sensoren enthalten sind – das schafft mehr Übersicht.
sensors:
- platform: template
sensors:
zisterne_prozent:
unit_of_measurement: '%'
value_template: >-
{{ (((states('sensor.zisterne_liter'))|float / 5130) *100)|round(1) }}
Code-Sprache: YAML (yaml)
In value_template teilen wir den gemessenen Wert des Sensors durch den Grundwert, also 5130 und multiplizieren das Ergebnis mit 100. round(1) gibt an, dass auf eine Nachkommstelle gerundet werden soll. Will man keine Nachkommastellen, gibt man round(0) an.
Nach dem Reload hat man eine neue Entität sensor.zisterne_prozent, die man dann im Dashboard einbinden kann.
Für eine Batterie muss man erst einmal wissen, ab wann eine Batterie als leer angesehen werden kann. Bei Knopfzellen, wie man sie in vielen Geräten wie den Aqara ZigBee Sensoren findet, kommen 3 Volt Lithium-Knopfzellen zum Einsatz. Die meisten Hersteller geben an, dass die Zelle bei einer Spannung von 2 Volt leer ist. Daher darf man also nicht die 3 Volt als Grundwert annehmen, sondern nur die Differenz zwischen neuer Batterie mit 3 Volt und leerer Batterie mit 2 Volt, also 1 Volt. Bei 1,5 Volt Batterien geht man von 0,9 Volt für eine leere Batterie aus, also müsste man 0,6 Volt als Grundwert annehmen (1,5 Volt – 0,9 Volt).
sensors:
- platform: template
sensors:
batterie_prozent:
unit_of_measurement: '%'
value_template: >-
{{ (((states('sensor.batteriespannung'))|float / 1) *100)|round(0) }}
Code-Sprache: YAML (yaml)
Hier nimmt man den Sensor, der die aktuelle Batteriespannung eines Geräts misst, und setzt z. B. bei einer 3 Volt Batterie 1 als Grundwert ein und schon hat man den Batteriezustand in Prozent.
Die mit Sternchen (*) gekennzeichneten Verweise sind sogenannte Provision-Links. Wenn du auf so einen Verweislink klickst und über diesen Link einkaufst, bekomme ich von deinem Einkauf eine Provision. Für dich verändert sich der Preis nicht und du unterstützt damit meine Arbeit. Preisänderungen und Irrtümer vorbehalten.
Hi,
erstmal danke für die Anleitung.
Wollte das so umsetzen, aber da ist mir aufgefallen, dass die Berechnung nicht wirklich passt. Zumindest nicht für eine Batterie.
Bei deinem Beispiel mit der 3 V Batterie würde ich bei vollem Akku (3 / 1) * 100 Rechnen. Das ergibt dann 300 Prozent. Oder habe ich einen Denkfehler?!
Moin,
erst einmal Respekt! Ich konnte aus Deiner Ausführung einen nutzen ziehen, wonach ich lange gesucht habe.
Leider nicht so wie Du es dort geschrieben hast. Woran es liegt weiß ich leider nicht.
Zwar kann ich eine sensors.yaml anlegen und dort auch die Daten – abgeändert auf meine Bedürfnisse – eintragen und ohne Probleme neu starten. Nur sind diese nicht als Entität zu finden.
Selbst nicht wenn sie wie angegeben in configuration.yaml eingetragen sind.
Als:
template:
– sensor:
– name:****
und dann:
state: >
{********
Dann klappt das :/
Trotzdem vielen Dank (Y)
Moin, super Artikel!
Kann man auch die Volt in Liter umrechnen?
Ich möchte demnächst meine Zisterne mit einem Shelly Uni überwachen.
Schöne Grüße
Holger
Das ist im verlinkten Beitrag zum Wasserstandssensor beschrieben: https://nachbelichtet.com/wasserstand-in-zisternen-mit-homeassistant-esphome-und-tl-136-drucksensor-messen/
Du musst nur den Füllstand auf die Abmessungen deiner Zisterne umrechnen. Für komplexe Formen haben die Zisternenhersteller Füllstandskurven. Die habe ich im Beitrag ab Code-Zeile 74 umgesetzt.
Auf den Liter genau wird das nie sein (auch nicht bei einfachen Zylindern), aber genau genug für die Anwendung.
Vielen Dank für die schnelle Antwort!