Betriebsstundenzähler ETA-Heizung

klappstuhl

New member
Hallo Forum,

ich bin ein absoluter Anfänger in dem ganzen Thema Heimautomatisierung. Deshalb war ich angenehm überrascht wie schnell man mit HomeAssistant sinnvolle Fortschritte macht. Allerdings bin ich jetzt an einer Stelle angekommen, an der ich nicht weiterkomme. Vielleicht könnt Ihr mir weiterhelfen, bisher habe ich den Weiten des Internets nichts sinnvolles gefunden.

Der Betriebsstundenzähler meiner Heizung gibt mir die Dauer in Betrieb im Format hh:(m)m über die REST-API. Also irgendwas in der Form:
<value uri="/user/var/40/10021/0/0/12153" strValue="11695h 2m" unit="" decPlaces="0" scaleFactor="1" advTextOffset="0">42102170</value>

Mein Value_Template sieht so aus:
value_template: '{{ value_json.eta.value["@strValue"] | replace("h ", ".") | replace("m", "") |float }}'

Das funktioniert allerdings nur so leidlich, denn immer beim Stundenwechsel springt der Wert. Zum einen gehen die Minuten nur bis ".59", zum anderen durch die fehlende "0" bei den Minuten laufen zuerst die zehntel, dann die hunderstel los.

Eigenlich möchte ich aus dem Wert "Dezimalstunden" Stunden machen, damit ich das schön im Verlauf sehe.
Also irgendwas in der Form <hh>h <m>m = hh, <m/60*100>

Wie kriege ich das hin?


Vielen Dank für eure Hilfe.
 
Möglich, dass es durchaus eleganter machbar wäre, aber funktionieren würde es so zumindest:
YAML:
{% set string = '11695h 2m' %}
{{ string | regex_replace('h.*','') ~ ',' ~ (string | regex_replace('.*h ','') | regex_replace('m','')) | int / 60 * 100 }}
Einmal für die Stunden alles ab h abschneiden, dann ein Komma dahinter setzen, für die Minuten erst alles vor und inklusive h und Leerzeichen entfernen, dann nochmal das m dahinter, dann berechnen und an Stunde + Komma anhängen. Runden müsstest noch nach Bedarf.
 
Danke für die schnelle Antwort.
Mein Template sieht jetzt so aus und funktioniert:
sensor:
- platform: rest
name: "ETA Volllaststunden"
scan_interval: 120
resource: http://<Pelletskessel-IP>:8080/user/var/40/10021/0/0/12153
value_template: >
{% set etaOpHours = value_json.eta.value["@strValue"] %}
{% set etaOpHoursHours = etaOpHours | regex_replace('h.*','') | float %}
{% set etaOpHoursMinutes = (etaOpHours | regex_replace('.*h ','') | regex_replace('m','')) | float / 60 %}
{{ etaOpHoursHours + etaOpHoursMinutes }}
unit_of_measurement: "h"

Ich habe es auseinandergezogen und in 2 Variablen geschrieben. Für die Minuten habe ich es durch 60 geteilt und einfach zu den Stunden addiert.
Vielen Dank @Nival .
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Letzte Anleitungen

Statistik des Forums

Themen
6.152
Beiträge
59.872
Mitglieder
6.222
Neuestes Mitglied
Int17
Zurück
Oben