ReadingsGroup - Wert mehrfach zur Berechnung verwenden?

Begonnen von errazzor, 15 Dezember 2015, 13:53:48

Vorheriges Thema - Nächstes Thema

errazzor

Hallo,

ich möchte mir in einer Readingsgroup verschiedene Werte eines FBDECT Devices anzeigen lassen und die Werte entsprechend Formatieren.

Es handelt sich um ein DECT-200. Ich möchte Aktuellen Stromverbrauch (Watt), Gesamtverbrauch(kWh), Gesamkosten (€) und Temperatur darstellen.

Soweit klappt es auch, mein Problem ist nur, dass ich Gesamtverbrauch und Gesamtkosten aus dem selben Reading berechnen muss (energy).
Dadurch wird in der Darstellung aber immer nur die zuletzt angegebene Berechnung bei beiden Werten angezeigt.


define TestGroup readingsGroup FBDECT_FBEG_16:<Aktuell>,power,<Gesamt>,energy,<Kosten>,energy,<Temperatur>,temperature
attr TestGroup alias Stromverbrauch
attr TestGroup room Test
attr TestGroup valueFormat {power => "%.1f W", energy => '{sprintf("%.2f kWh",$VALUE/1000)}', energy => '{sprintf("%.2f €",$VALUE*0.00029)}', temperature => "%.1f &deg;;C"}


Siehe angehängten Screenshot - der Wert der zuletzt durchgeführte Berechnung (Kosten) wird dann auch bei "Gesamt" eingefügt (anstatt der kWh)

Versuchsweise habe ich, wie im Codeschnipsel oben zu sehen, den energy-Wert auch 2x ausgelesen - bringt aber keine Veränderung.

Wie ist die richtige Syntax?

errazzor

Hm, habe jetzt zusätzlich noch folgende Fehler im Logfile...


2015.12.15 15:48:05 1: PERL WARNING: Argument "3.93 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 525.
2015.12.15 15:48:05 1: PERL WARNING: Argument "15745 Wh" isn't numeric in multiplication (*) at (eval 8593) line 1.
2015.12.15 15:48:05 1: PERL WARNING: Argument "15745 Wh" isn't numeric in multiplication (*) at (eval 8595) line 1.


bräuchte also auch noch die korrekte Syntax, damit er nur den Zahlenwert aus den Readings liest ohne die Zusätze "w" und "wh" ...

Kann jemand helfen? Ich bekomms einfach nicht hin, auch das obige Problem besteht noch immer.

Wzut

Zitat von: errazzor am 15 Dezember 2015, 13:53:48
mein Problem ist nur, dass ich Gesamtverbrauch und Gesamtkosten aus dem selben Reading berechnen muss (energy).
und wenn du dir die Kosten als userReading zuerst in die DECT200 packst , ala :
attr FBDECT_FBEG_16 userReadings Kosten {my @a = split(" ",ReadingsVal($name,"energy",0));; sprintf("%.2f", $a[0]*0.00029);;}
dann hast du nachher in der ReadingsGroup die beiden Werte schon einzeln ?
   
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher