Prozentualer Fortschritt Waschmaschine und "Fertig in" beim Geschirrspüler

Hallo zusammen,

über die LG ThinQ Integration bekomme ich für unsere Waschmaschine folgende Zustände rein (hier während eines Waschvorgangs):

sensor.waschmaschine_verbleibende_zeit
Wert: 2026-01-07T10:01:20+00:00
device_class: timestamp
friendly_name: Waschmaschine Verbleibende Zeit

sensor.waschmaschine_gesamtdauer
Wert: 56
unit_of_measurement: min
device_class: duration
friendly_name: Waschmaschine Gesamtdauer

Wie kann ich mit diesen beiden Werten den prozentualen Fortschritt ermitteln, so dass ich mir das über eine Progress Bar im Dashboard anzeigen lassen kann?

Und gibt es die Möglichkeit, aus der verbleibenden Zeit auch ein “Fertig in …” zu erstellen?
Hintergrund ist, dass unser Geschirrspüler nur die Verbleibende Zeit zurück gibt, aber keine Gesamtdauer.

Danke im Voraus!

Für Problem 1: musst du now() bis verbleibende zeit die Minuten ermitteln und dann mit der gesamt dauer teilen

Für Problem 2: Kannst du easy time verwenden

{% set f = states('sensor.remainingprogramtime') %}
{% from 'easy_time.jinja' import easy_time %}
{{ easy_time(f) }}

Wie bzw. wo binde ich diesen Code ein? In einem Helper-Sensor? Wenn ja, welcher Typ?

Kannst ein Template Sensor nehmen oder einer Karte welcher Template unterstützt z.B. mushroom

Danke Dir, das hat schon mal funktioniert. Vielen lieben Dank.
Aber bei Problem 1 komme ich irgendwie nicht weiter :frowning:

Was hast du denn probiert? Wie sieht dein Code aus?

Ich habe versucht, den Template Sensor wie folgt zu definieren:

{% set ziel = now().replace(hour=15, minute=30, second=0) %}
{% set timestamp = now().strftime(‘%d.%m.%y / %H:%M’) %}
{% set verbleibend = states(sensor.waschmaschine_verbleibende_zeit) - now() %}
{% set sekunden = verbleibend.total_seconds() | int %}
{% set minuten = sekunden // 60 %}
{% set stunden = minuten // 60 %}
{{ “{:02d}:{:02d}”.format(stunden % 24, minuten % 60) }}

asddIch erhalte aber dabei die Fehlermeldung

UndefinedError: ‘sensor’ is undefined

Oder habe ich da jetzt einen Denkfehler?!

Statt:

Probier mal:

aus.

Hallo @hippoo ,

dann bekomme ich die Fehlermeldung

TypeError: unsupported operand type(s) for -: ‘str’ and ‘datetime.datetime’

Deine erste 2 Zeilen versteh ich nicht so ganz was du damit machen willst

Sorry, die stammen aus einem anderen Versuch. Habe die jetzt entfernt, die Fehlermeldung bleibt aber.

Hier eine Variante

{% set end = as_datetime('2026-01-07T17:50:00+01:00').timestamp() %}
{% set now_ts = now().timestamp() %}
{% set duration = 56 * 60 %}
{% set remaining = end - now_ts %}
{{ ((1 - remaining / duration) * 100) | round }}%

Habe das jetzt wie folgt mit meinem Zustand hinterlegt:

{% set end = as_datetime(states(‘sensor.waschmaschine_verbleibende_zeit’)).timestamp() %}
{% set now_ts = now().timestamp() %}
{% set duration = 56 * 60 %}
{% set remaining = end - now_ts %}
{{ ((1 - remaining / duration) * 100) | round }}%

Aber ich bekomme nun den Fehler “UndefinedError: ‘None’ has no attribute ‘timestamp’“ Der Zustandsname ist aber korrekt.

Ja was hat denn der Sensor für eine Zustand wenn die Maschine aus ist?

Und deine Dauer Sensor fehlt auch noch

1 „Gefällt mir“

Mist, jetzt bin ich total durcheinander.
Habe jetzt die Maschine mal angestellt, scheinbar habe ich die Werte falsch interpretiert. Folgende Zustände bekomme ich von der Maschine:

sensor.waschmaschine_verbleibende_zeit
2026-01-07T18:02:32+00:00

Hier ist der Titel bzw. die Bezeichnung irreführend. Das ist quasi die Startzeit, wenn das Programm beginnt.

sensor.waschmaschine_gesamtdauer
56
Das ist die Dauer des Waschprogramms in Minuten (Unit of measurement ist wohl in Minuten).

Den obigen Sensor setze ich dann bei duration ein korrekt?
Aber die Fehlermeldung bleibt dennoch :frowning:

Vielleicht ist er schon ein timestamp schick mal alle Attribute von dem sensor

Danke für Deine Geduld mit mir :slight_smile:

Hier die wesentlichen Zustände:

Und hier die Sensoransicht direkt im Gerät:

Aber du hast die Laufzeit doch schon nehm doch einfach Laufzeit und Gesamt Dauer einmal teilen und fertig. Bisschen Strange das dort Minuten mit drin stehen. Muss man nur den Sensor richtig erstellen dann würde ich den nehmen

Ansonsten dein Sensor ist schon ein timestamp dann brauch das as date time und timestamp nicht er hat ja schon den richtigen datentyp

Das Minuten kann ich ja rausfiltern oder?
Also Laufzeit durch Gesamtdauer teilen und dann mal 100 nehmen oder?

Wer stellt den Sensor. Der sieht aus wie wenn er von dir kommt. Würde den einfach sauber machen und unit_measurement auf min setzen fertig

Du kannst das super in den Entwicklungswerkzeugen im Template Editor auch testen:

{% set laufzeit = 40 %}
{% set dauer = 56 %}
{{ (laufzeit/dauer) | round(2)  * 100 }}%

oder als ganzzahl

{% set laufzeit = 40 %}
{% set dauer = 56 %}
{{ (laufzeit/dauer * 100 ) | int }}%