Mit Sensor-Templates beliebige Werte in Prozentangaben umrechnen

Home Assistant Quickie: Werte in Prozent anzeigen

Oft ist eine Anzeige in Prozent sehr viel intuitiver, als ein reiner Messwert. Ich zeige euch, wie man solche Werte ausgeben kann.

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.

Melde dich zu meinem Newsletter an!

Du kannst dich jederzeit abmelden und ich verspreche: Kein Spam!


Die mit Sternchen (*) gekennzeichneten Verweise sind sogenannte Provision-Links. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.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.

5 Kommentare

  1. 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?!

  2. 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)

  3. 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

Schreibe einen Kommentar zu JörgAntworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert