Rechnen in stateFormat/"set magic"?

Begonnen von Manul, 05 Mai 2017, 19:12:47

Vorheriges Thema - Nächstes Thema

Manul

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.

KernSani

#1
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"}}
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Manul

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?

zap

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Thorsten Pferdekaemper

FUIP

KernSani

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...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Manul

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)?

zap

Sorry, dachte du meinst die FHEM internen Perl Funktionen und nicht Perl i.A.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Manul

Das hattest Du schon richtig verstanden, vielen Dank für den link!