Unterstützt das stateFormat bzw. die "set magic" einfache Rechnungen? Hintergrund: Ich würde einen Energieverbrauch gern in kWh anzeigen, das reading liefert aber Wh.
Ja, rechnen in Perl geht auf jeden Fall. Einfach ausprobieren
Edit: Hier ein Beispiel (vor set magic):
{if(ReadingVal($name,"power".0)<1000) {sprintf("%i", $VALUE)." W"} else {sprintf("%.2f",ReadingVal($name,"power".0)/1000)." KW"}}
Danke! Hast Du evtl. auch noch einen Tip, wie ich die ReadingsTimestamp() nach meinen Wünschen formatieren kann? Wo sind die Perl-Funktionen eigentlich dokumentiert?
Einige Funktionen sind hier beschrieben:
https://wiki.fhem.de/wiki/DevelopmentModuleAPI
Zitat von: Manul am 06 Mai 2017, 09:31:16
Wo sind die Perl-Funktionen eigentlich dokumentiert?
Hier:
https://fhem.de/commandref.html#perl
und hier:
http://perldoc.perl.org/
Gruß,
Thorsten
Zitat von: KernSani am 05 Mai 2017, 19:23:47
Ja, rechnen in Perl geht auf jeden Fall. Einfach ausprobieren
Edit: Hier ein Beispiel (vor set magic):
{if(ReadingVal($name,"power".0)<1000) {sprintf("%i", $VALUE)." W"} else {sprintf("%.2f",ReadingVal($name,"power".0)/1000)." KW"}}
Edit: mir fällt gersde auf, dass $VALUE noch durch ReadingsValue(..) ersetzt werden muss...
Danke Euch allen! Dank der perl-links habe ich jetzt folgendes stateFormat:
{ sprintf "Aktuell: %.1f W, Verbrauch: %i kWh seit %s.",ReadingsVal($name,"power",0),ReadingsVal($name,"energy",0)/1000,POSIX::strftime("%-d.%-m., %H:%M",localtime(time_str2num(ReadingsTimestamp($name,"energyOffset",0)))); }
Ist das wirklich die einfachste Art, einen beliebig formatierten Zeitstring zu bekommen? Kann ich die locale fürs strftime irgendwie umstellen (hätte gerne den deutschen Monatsnamen drin)?
Sorry, dachte du meinst die FHEM internen Perl Funktionen und nicht Perl i.A.
Das hattest Du schon richtig verstanden, vielen Dank für den link!