(solved) Laufzeiten Kompressor und Heizkartusche einer Wärmepumpe erfassen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 14539
Registriert: 11. Apr 2018 18:05
Answers: 227
Wohnort: Darmstadt

Re: Laufzeiten Kompressor und Heizkartusche einer Wärmepumpe erfassen

Beitrag von udo1toni »

Stunden/Minuten ist tatsächlich nur mit Aufwand möglich, Du könntest aber einfach als state Description pattern "%.2f h" angeben, die Ausgabe erfolgt dann in Stunden mit zwei Nachkommastellen, also z.B. 12,25 für 12 Stunden/15 Minuten. Gerade für Betriebsstunden ist die Angabe der Stundenbruchteile als Dezimalbruch sehr üblich.
Alternativ kannst Du auch Im Label das Pattern "[%1$tT]" setzen, dann bekommst Du die Ausgabe in HHHHHH:MM:SS, allerdings funktioniert diese Formatierung nur in der Sitemap, nicht in der Main UI. Es liefe also auf eine Rule heraus, welche sich um die Formatierung kümmert und den Wert dafür in ein anderes Item übernimmt, wahlweise auch die direkte Übernahme in ein anderes Item und Umwandlung per Transformation Service, potentiell unter Verlust der Möglichkeit, auf den Zahlenwert zuzugreifen...
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.7, LXC), mit openHABian eingerichtet

mike69
Beiträge: 56
Registriert: 17. Nov 2020 22:38
Answers: 0

Re: Laufzeiten Kompressor und Heizkartusche einer Wärmepumpe erfassen

Beitrag von mike69 »

Hab mir was zusammen gedragedanddroped, könntne von Dir sein. :)
sec2min2hour.js

Code: Alles auswählen

(function(seconds){
    var retval = "";
    var minutes = Math.floor(seconds / 60)
    var hours = Math.floor(minutes / 60)
    seconds = seconds % 60
    minutes = minutes % 60
    if (hours < 10)
        retval = retval + "0";
    retval = retval + hours + "'";
    if (minutes < 10)
        retval = retval + "0";
    retval = retval + minutes + "'";
    if (seconds < 10)
        retval = retval + "0";
    retval = retval + seconds + "\"";
    return retval;
})(input)
hier Teil der .items:

Code: Alles auswählen

Number         NibeCounter_1 "Kompressor [JS(sec2min2hour.js):%s]"   <time>   (gNibeCount)
Sieht so aus:

Code: Alles auswählen

 00'16'31" 
Nutze nur sitemaps, deswegen für mich optimal.
Leider funktioniert das mit dem UoM nicht, deswegen kein Number:Time

Wenn das mit einem "[%1$tT]" hin haut, würde mir reichen :)

edit:
Der Tip mit dem "[%1$tT]" ist sogar noch besser. :lol:
In welcher Doku steht sowas?

Der Betriebszähler läuft geschmeidig und ist Neustartfest. Am 01.01.2025 wird zurückgesetzt und dann sehen wir was das Jahr so bringt.

Danke Dir, Udo.
openHAB 4.2.0 auf Debian 12 als VM unter Proxmox

Benutzeravatar
udo1toni
Beiträge: 14539
Registriert: 11. Apr 2018 18:05
Answers: 227
Wohnort: Darmstadt

Re: (solved) Laufzeiten Kompressor und Heizkartusche einer Wärmepumpe erfassen

Beitrag von udo1toni »

Ja, gut möglich, dass das irgendwann mal auf meinem Mist gewachsen ist. Die Schreibweise mit ' und " ist nicht so weit verbreitet...

Die Formatierung im Label ist "uralt", noch aus OH1-Zeiten.
Die meisten Sachen in openHAB sind aus Java übernommen (oftmals indirekt, funktioniert aber trotzdem...), entsprechend kann man vieles in der offiziellen Doku von Java nachschlagen, z.B. String-Formatter: https://docs.oracle.com/en/java/javase/ ... atter.html
Leider funktioniert dieses Format nicht im Pattern, oder zumindest nicht bei Number:Time, da hier die Unit zum Einsatz kommt.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.7, LXC), mit openHABian eingerichtet

Antworten