Wie kann ich eine Entität umrechnen?

Hi,

Ich messe zur Zeit den Ölstand meines Heizöltanks. Dazu messe ich den Abstand zwischen Öl Oberfläche und Tankdeckel und dann das Volumen berechnen. Dies habe ich die ganze Zeit in Homematic umgerechnet und in eine Variable gespeichert.

Wie kann ich dies in HA machen? Den Abstand habe ich in HA als Entität drin.

Danke

Du könntest ein Template-Helfer nehmen und dort die Umrechnung vornehmen.

Habe es bei mir als template Sensor angelegt. Dadurch spar ich mir die Automation.

Da ich gerade nur mobil unterwegs bin kann ich dir nur ein Screenshot anhängen.

Kannst du mir ein paar Tipps geben wie ich dies in yaml mache? Denke damit dies der richtige Ansatz ist und wie ich mitlerweile festgestellt habe, wird fast alles in Yaml eingestellt.

Danke

Du kannst wie bei mir ein Template Sensor anlegen.
Im State Abschnitt erfolgt dann deine Berechnung. Bei mir wird hier der Zisternenfüllstand berechnet da ich nur den Abstand habe.

Allgemeines zu Templates findest du hier:

Und ich glaube jeder HA Youtuber hat auch ein Video dazu. Hier das von Simon

Hi,

habe mir mal was zusammengebastelt aber das funktioniert leider nicht. Komme nicht drauf warum das nicht so will wie ich :frowning:

template:
  - sensor:
      - name: "Ölstand"
        unique_id: "volume.oelstand"
        unit_of_measurement: "l"
        state_class: "measurement"
        state: >
            {{ (6560 - ((states('sensor.oeltank_sr04_distance') * 350 * 125)/1000)) }}

Dachte mir damit ich die 6560L Tankgröße nehme und dann die Sensorhöhe * Länge * Breite multipliziere und dieses Ergebnis dann von den 6560L abziehe.

Was mache ich falsch.

Was liefert der Sensor für einen Wert zurück. Pack ansonsten hinter mal noch eine Umwandlung in int oder float hinter den Sensor.

states('sensor.oeltank_sr04_distance') | int

Du kannst auch mal schauen was das HA Log dazu sagt.

Hi,

hier der Zustand der Entität

Wenn ich

states('sensor.oeltank_sr04_distance') | int

diesen Befehl unter Entwickerwerkzeug/Templates eingebe wird der Wert 116.0 auch angezeigt.

Wenn ich aber

{{ (6560 - ((states('sensor.oeltank_sr04_distance') * 350 * 125)/1000)) | int}}

eingebe (auch mit float) bekomme ich " TypeError: unsupported operand type(s) for /: ‘str’ and ‘int’" als Fehlermeldung.

Sorry für meine Unwissenheit bin noch neu im HA - war die letzten 15Jahre im Homematic Universum gefangen :wink: und bin nun dabei fast alles auf HM umzustellen.

was wird dir ausgegeben, wenn du es so versuchst?

{{ (6560 - (( states('sensor.oeltank_sr04_distance') | int) * 350 * 125)/1000) | int }}
1 „Gefällt mir“

juhu das funktioniert - DANKE

Bedeutet man muss zwei mal als int deklarieren. OK

Das letzte int kannst du weglassen.