Ein Reading mit Minuten in Stunden und Minuten umrechnen

Begonnen von bigmo, 23 August 2017, 10:11:53

Vorheriges Thema - Nächstes Thema

bigmo

Ich habe ein Reading, das mir die Betriebszeit, des Brenners ausgibt, allerdings in Minuten.
Statt also 555921 Minuten hätte ich gerne die Ausgabe 9265h 21m oder auch 9265:21 zB.

Mit {sy_betriebsstunden => '{sprintf("%.2f",$VALUE/60)}'} habe ich die Stunden ausgerechnet, soweit so gut. Allerdings ist der Rest dann in Industrieminuten. Wie kann ich jetzt noch die Industrieminuten auf normale umrechnen?

DeeSPe

Z.B. so:

my $hours = sprintf("%.2f",$VALUE/60);
my $h = int($hours);
my $im = $hours - $h;
my $m = int($im * 60);
"$h:$m";



Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

bigmo


DeeSPe

Zitat von: bigmo am 23 August 2017, 10:34:10
Das muss dann aber in die 99_myutils oder?

Nö!

Wo hast Du es jetzt drin zu stehen?
Gib doch mal ein list vom Device.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

bigmo

IDS:
         /system/appliance/workingTime/totalSystem:
       MAX        16777215
       MIN        0
       TYPE       floatValue
       UNIT       minutes
       VALUE      555921
       WRITEABLE  0

Attributes:
   PollIds /system/appliance/workingTime/totalSystem:1:0:sy_betriebsstunden

DeeSPe

Zitat von: bigmo am 23 August 2017, 11:14:54
IDS:
         /system/appliance/workingTime/totalSystem:
       MAX        16777215
       MIN        0
       TYPE       floatValue
       UNIT       minutes
       VALUE      555921
       WRITEABLE  0

Attributes:
   PollIds /system/appliance/workingTime/totalSystem:1:0:sy_betriebsstunden

Das ist kein vollständiges list vom Device und damit kann man nichts anfangen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

betateilchen

In 98_uptime.pm werden Sekunden in Tage, Stunden und Minuten umgerechnet.
Schau doch mal dort nach, vielleicht kannst Du das einfach übernehmen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

bigmo

So hier das komplette...wollte dich nicht erschlagen  :D

DeeSPe

Zitat von: bigmo am 23 August 2017, 13:08:09
So hier das komplette...wollte dich nicht erschlagen  :D

Das hilft mehr!

Du hast aber immer noch nicht verraten was Du mit dem Code machen willst? Geht es um stateFormat, also die Anzeige der Betriebsstunden/-minuten in STATE, oder was?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

bigmo

Aso...zusammen mit anderen Werten in einer ReadingsGroup anzeigen lassen...nur eben formatiert mit Stunden und Minuten

DeeSPe

Mit readingsGroup kenne ich mich nicht so aus.

Mach Dir doch ein userReading.

attr Buderus userReadings Betriebsstunden:sy_betriebsstunden.* {my $hours=ReadingsNum($NAME,"sy_betriebsstunden",0)/60; my $h=int($hours); my $im=$hours - $h; my $m=int($im * 60); "$h:$m";}

Das neu erzeugte Reading kannst Du dann in der readingsGroup angeben.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

bigmo

Hm wenn ich das eintrage kommt folgender Fehler:
Unknown command my, try help. Unknown command my, try help. Unknown command my, try help. Unknown command }, try help.

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DeeSPe

Zitat von: CoolTux am 23 August 2017, 16:19:59
Eventuell das aller letzte Semikolon weg.

Nein, wenn Du das Attribut über die Eingabezeile vergeben willst, dann müssen die ; verdoppelt werden!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

bigmo

Ok so hat es funktioniert zumindest kommt beim speichern nun kein Fehler mehr. Aber wie kann ich den berechneten Wert nun in der readinggroup aufrufen? Buderus:<%clock>,<Betriebsstunden>,Betriebsstunden\ funktioniert nicht.