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

Irgendwie will es noch nicht.

Die Waschmaschine läuft gerade, die Zustände sehen so aus:

sensor.waschmaschine_gesamtdauer
56

sensor.laufzeit_waschmaschine
55 Minuten

sensor.fortschritt_waschmaschine
0%

Ich vermute dass sensor.fortschritt_waschmaschine 0% anzeigt weil bei sensor.laufzeit_waschmaschine noch das “Minuten” hinter steht? Wie bekomme ich das denn rausgefitert vor der Berechnung?

Mein Template Sensor sieht aktuell so aus:

{% set laufzeit = states(‘sensor.waschmaschine_verbleibende_zeit’)|int(default=0) %}
{% set dauer = states(‘sensor.waschmaschine_gesamtdauer’)|int(default=0) %}
{{ (laufzeit/dauer * 100 ) | int }}%

{% set laufzeit = “55 Minuten” | int(0)%}
{% set dauer = 56 %}
{{ (laufzeit/dauer * 100 ) | int }}%

–> 0%

versus
{% set laufzeit = “55” | int(0)%}
{% set dauer = 56 %}
{{ (laufzeit/dauer * 100 ) | int }}%

–> 98%

Hallo MelleD,

vielen Dank für Deine Geduld mit mir. Als Umsteiger vom ioBroker gibts noch so einiges zu lernen :slight_smile:

Aber es funktioniert jetzt, ich musste allerdings das Wort “Minuten” in meinem Template heraus filtern und für einen korrekten Wert den errechneten Wert von 100 abziehen. Sonst hat er die Prozente verringert.
Muss halt irgendwann nochmal schauen, was passiert wenn Gesamtdauer und/oder Laufzeit mal mehr als Minuten sind, also im Stundenbereich.

So sieht mein Template Sensor jetzt dank Dir aus:

{% set laufzeit = states(‘sensor.laufzeit_waschmaschine’)|replace(‘Minuten’, ‘’)|int(default=0) %}
{% set dauer = states(‘sensor.waschmaschine_gesamtdauer’)|int(default=0) %}
{{ 100-(laufzeit/dauer * 100 ) | int }}

Und so meine Dashboard Card inkl. Fortschrittsbalken:

Wie in meinem Beispiel gezeigt, wie bereits gesagt kannst du einfach in den Entwicklertools testen

Wie auch schon gesagt korrigiere dein Sensor da sollten keine Minuten im state stehen dafür gibt es Attribute –> unit_of_measurement

Der Sensor mit dem Wort Minuten kommt aus der ThinQ Integration.
Nach meiner Logik kann das ja überschrieben werden bei einem Update, wenn ich das ändere oder?

Ja das ist blöd. Schick mal von dem Gerät alle Entitäten auch die nicht aktivierten vielleicht ist da was anderes noch dabei.

Falls nicht kannst du glaub mit dem oben genannten macro dir auch ein sensor daraus bauen der kann dann auch stunden usw. dann bist auf jeden fall auf der sicheren seite. Muss ich aber selber testen

Geht nur per Screenshot oder gibts ne Art Exportmöglichkeit ausgewählter Zustände?

Screenshot reicht ja erstmal

OK, bitte sehr:

Nee leider nichts dabei außer es sind welche deaktiviert

Schade, nein, deaktiviert oder ausgeblendet sind keine mehr.

Hallo @MelleD ,

jetzt brauche ich doch nochmal Unterstützung.
Mein Template Sensor sieht ja aktuell wie folgt aus:

{% set laufzeit = states(‘sensor.laufzeit_waschmaschine’)|replace(‘Minuten’, ‘’)|int(default=0) %}
{% set dauer = states(‘sensor.waschmaschine_gesamtdauer’)|int(default=0) %}
{{ 100-(laufzeit/dauer * 100 ) | int }}

Das funktioniert auch soweit super, so lange die Laufzeit eines Waschprogramms unter einer Stunde ist.
Heute hatten wir mal ein Waschprogramm mit 1:07h Laufzeit. Da wird mir im Zustand “sensor.laufzeit.waschmaschine” dann “1 Stunde und 7 Minuten” angezeigt.

Kann ich das irgendwie abfangen und verarbeiten? So zeigt er mir dann - wegen Falschberechnung - dann immer 100% an.

Kann man das “1 Stunde un 7 Minuten” irgendwie in eine berechenbare Zeitangabe umwandeln?

Am Besten ja in einer Minutenzahl oder?

Nein nicht mit dem Sensor. Dann musst du den timestamp Sensor nehmen und dir die Dauer damit ausrechnen dann funktioniert es immer

Du meinst mir den Laufzeit Wert erst in einen Timestamp Sensor schreiben und mit dem dann in meinem Template Sensor rechnen?

Nein du hast bereits in deiner Liste einen den musst du dann nehmen und rechnen

Jetzt bin ich überfordert :frowning:
Welchen Sensor? in welcher liste?

Wenn es für den Sensor sensor.laufzeit_waschmaschine keine alternative gibt.
Und der Wert immer in dem Format
X Stunde(n) und X Minute(n)
oder
X Minute(n)
Ausgegeben wird

Lässt sich die Laufzeit in Minuten folgendermassen ermitteln

{% set laufzeit = states('sensor.laufzeit_waschmaschine') %}
{% if laufzeit.split(' ')[1] == "Stunde" or "Stunden" %}
{% set laufzeit = (laufzeit.split(' ')[0] | int ) * 60 + (laufzeit.split(' ')[3] | int ) %}
{% else %}
{% set laufzeit = (laufzeit.split(' ')[0] | int(0) ) %}
{% endif %}

Gruß Osorkon

Hallo @Osorkon ,

danke Dir, das werde ich beim nächsten “Waschgang” mal testen und melde mich wieder :slight_smile:

Du hast doch Bilder geschickt.

Hallo Osorkon,

das scheint nicht zu funktionieren. Hier die Inhalte der Zustände:

`sensor.waschmaschine_gesamtdauer: 56`
`sensor.laufzeit_waschmaschine: 47 Minuten`
`sensor.fortschritt_waschmaschine: unavailable (das sollte die Prozentzahl sein)`

Und hier mein Template Sensor:

`{% set laufzeit = states(‘sensor.laufzeit_waschmaschine’) %}`
`{% if laufzeit.split(’ ‘)[1] == “Stunde” or “Stunden” %}`
`{% set laufzeit = (laufzeit.split(’ ‘)[0] | int ) * 60 + (laufzeit.split(’ ‘)[3] | int ) %}`
`{% else %}`
`{% set laufzeit = (laufzeit.split(’ ')[0] | int(0) ) %}`
`{% endif %}`
`{% set dauer = states(‘sensor.waschmaschine_gesamtdauer’)|int(default=0) %}`
`{{ 100-(Laufzeit/Dauer * 100 ) | int }}`

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)