Hallo
Wie bekomme ich die Einheiten richtig hin. Stromzähler passen. Gas und Wasser möchte ich gerne in (energy0 in cbm und power in L/Min) angezeigt haben. Alle Zähler bekommen die gleichen Zahlen durch power, das ist der Momentverbrauch und energy0 ist der Zählerstand als Zahlenwert. Stromzähler werden ja richtig mit Watt und kwh angezeigt. Bei Gas und Wasser muss der Zahlenwert für power noch mit 60 multipliziert werden um ihn in L/Min an zu zeigen. Geht sowas überhaupt und wenn wie. Suche und probiere schon seit Tagen.... :'(
Danke und Gruss
Patrick
du musst im valueFormat mapping die device namen mit berücksichtigen.
'<device>.<reading>' => '...', ...
gruss
andre
Hallo
Danke für die Hilfe. So habe ich es nun gemacht und die Einheiten passen. Jetzt noch die Frage, wie bekomme ich die power Werte für Wasser und Gas mit 60 multipliziert und angezeigt?
Beim Plot habe ich dies eingesetzt :::$val=($val*=60) damit es passt.
{"Hauptzaehler.power"=> "%.2f W", "Hauptzaehler.energy0"=> "%.1f kWh", "Gaszaehler.power"=> "%.2f L/Min", "Gaszaehler.energy0"=> "%.2f cbm", "Zwischenzaehler.power"=> "%.2f W", "Zwischenzaehler.energy0"=> "%.1f kWh", "Wasserzaehler.power"=> "%.2f L/Min", "Wasserzaehler.energy0"=> "%.2f cbm"}
Danke und Gruß
Patrick
z.b. so:
valueFormat: {..., "power"=> '{sprintf("%.2f",$VALUE*60)}', ...}
valueSuffix: {"Hauptzaehler.power" => "W", "Gaszaehler.power" => L/Min" }
Hi
Einfach perfekt! Bist heute mein Held des Tages! ;D
Falls noch jemand so ein Problem hat, hier mein ganzer Code:
define Verbrauch readingsGroup TYPE=EnOcean:power,energy0
attr Verbrauch mapping %ALIAS
attr Verbrauch room Verbrauch
attr Verbrauch sortby 1
attr Verbrauch style style="font-size:20px"
attr Verbrauch valueFormat {"Hauptzaehler.energy0"=> "%.1f kWh", "Gaszaehler.power"=>'{sprintf("%.2f"),$VALUE*60}', "Gaszaehler.energy0"=> "%.1f m³", "Zwischenzaehler.energy0"=> "%.1f kWh", "Wasserzaehler.power"=> '{sprintf("%.2f"),$VALUE*60}', "Wasserzaehler.energy0"=> "%.1f m³"}
attr Verbrauch valueStyle {($READING eq "power" && $VALUE > 1000)?'style="color:red"':'style="color:green"'}
attr Verbrauch valueSuffix {"Hauptzaehler.power" => " W", "Gaszaehler.power" => " l/min", "Wasserzaehler.power" => " l/min", "Zwischenzaehler.power" => " W" }
Vielen Dank und frohes Fest
Patrick
... nur noch kleine perfektionistische Anmerkungen:
- Volumen-Einheit ist m³ und nicht cbm
- Einheit für den Volumenstrom ist nicht L/Min sondern l/min oder noch besser umgerechnet in m³/s
Im Prinzip könntest Du den Energiegehalt beim Gas auch in kWh oder den Gaszaehler.power-Wert in W ausdrücken. Der Energiegehalt eines m³ Gas in kWh sollte in der Gasrechnung stehen. Dann kann man den Energieverbrauch durch Strom und Gas besser in Relation setzen.
Hallo
l/min und m³ habe ich schon geändert. Da ich aus der Installationsbranche komme, ist für mich l/min zur Überwachung des Kessels wichtig. Genauso wird l/min für Mischbatterien, elektr. Warmwassererzeugung usw benötigt. Und aus meinem täglichen Leben hantiere ich halt mit l/min. Da macht dieser Wert für mich am meisten Sinn.
Gruß
Patrick
noch eine kleine verbesserung :)
da das valueFormat für beide power readings jetzt identisch kannst du sie wieder zu einem power => zusammenfassen.
gruss
andre
Hi
Doch noch ein Problem. Es läuft wie gewünscht aber mein Log ist mit folgender Meldung voll:
1: PERL WARNING: Useless use of sprintf in void context at (eval 3797) line 1.
1: PERL WARNING: Missing argument in sprintf at (eval 3797) line 1.
Was bedeutet es?
Frohes Fest und Gruß
Patrick
Hallo
Kann mir niemand einen Rat geben?
MfG
Patrick
schalte mal global stacktrace ein und zeige wo die meldung genau her kommt.
gruss
andre
Hallo
So habe ich gemacht. Sagt mir aber nix... 2016.12.28 22:00:40 1: PERL WARNING: Useless use of sprintf in void context at (eval 30) line 1.
2016.12.28 22:00:40 1: stacktrace:
2016.12.28 22:00:40 1: main::__ANON__ called by (eval 30) (1)
2016.12.28 22:00:40 1: (eval) called by ./FHEM/33_readingsGroup.pm (373)
2016.12.28 22:00:40 1: main::lookup2 called by ./FHEM/33_readingsGroup.pm (526)
2016.12.28 22:00:40 1: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (1063)
2016.12.28 22:00:40 1: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1162)
2016.12.28 22:00:40 1: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (1664)
2016.12.28 22:00:40 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (916)
2016.12.28 22:00:40 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (457)
2016.12.28 22:00:40 1: main::FW_Read called by fhem.pl (3296)
2016.12.28 22:00:40 1: main::CallFn called by fhem.pl (673)
2016.12.28 22:00:40 1: PERL WARNING: Missing argument in sprintf at (eval 30) line 1.
2016.12.28 22:00:40 1: stacktrace:
2016.12.28 22:00:40 1: main::__ANON__ called by (eval 30) (1)
2016.12.28 22:00:40 1: (eval) called by ./FHEM/33_readingsGroup.pm (373)
2016.12.28 22:00:40 1: main::lookup2 called by ./FHEM/33_readingsGroup.pm (526)
2016.12.28 22:00:40 1: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (1063)
2016.12.28 22:00:40 1: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1162)
2016.12.28 22:00:40 1: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (1664)
2016.12.28 22:00:40 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (916)
2016.12.28 22:00:40 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (457)
2016.12.28 22:00:40 1: main::FW_Read called by fhem.pl (3296)
2016.12.28 22:00:40 1: main::CallFn called by fhem.pl (673)
2016.12.28 22:00:40 1: PERL WARNING: Useless use of sprintf in void context at (eval 39) line 1.
2016.12.28 22:00:40 1: stacktrace:
2016.12.28 22:00:40 1: main::__ANON__ called by (eval 39) (1)
2016.12.28 22:00:40 1: (eval) called by ./FHEM/33_readingsGroup.pm (373)
2016.12.28 22:00:40 1: main::lookup2 called by ./FHEM/33_readingsGroup.pm (526)
2016.12.28 22:00:40 1: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (1063)
2016.12.28 22:00:40 1: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1162)
2016.12.28 22:00:40 1: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (1664)
2016.12.28 22:00:40 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (916)
2016.12.28 22:00:40 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (457)
2016.12.28 22:00:40 1: main::FW_Read called by fhem.pl (3296)
2016.12.28 22:00:40 1: main::CallFn called by fhem.pl (673)
2016.12.28 22:00:40 1: PERL WARNING: Missing argument in sprintf at (eval 39) line 1.
2016.12.28 22:00:40 1: stacktrace:
2016.12.28 22:00:40 1: main::__ANON__ called by (eval 39) (1)
2016.12.28 22:00:40 1: (eval) called by ./FHEM/33_readingsGroup.pm (373)
2016.12.28 22:00:40 1: main::lookup2 called by ./FHEM/33_readingsGroup.pm (526)
2016.12.28 22:00:40 1: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (1063)
2016.12.28 22:00:40 1: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1162)
2016.12.28 22:00:40 1: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (1664)
2016.12.28 22:00:40 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (916)
2016.12.28 22:00:40 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (457)
2016.12.28 22:00:40 1: main::FW_Read called by fhem.pl (3296)
2016.12.28 22:00:40 1: main::CallFn called by fhem.pl (673)
2016.12.28 22:01:28 1: PERL WARNING: Useless use of sprintf in void context at (eval 485) line 1.
2016.12.28 22:01:28 1: stacktrace:
2016.12.28 22:01:28 1: main::__ANON__ called by (eval 485) (1)
2016.12.28 22:01:28 1: (eval) called by ./FHEM/33_readingsGroup.pm (373)
2016.12.28 22:01:28 1: main::lookup2 called by ./FHEM/33_readingsGroup.pm (526)
2016.12.28 22:01:28 1: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (1063)
2016.12.28 22:01:28 1: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1162)
2016.12.28 22:01:28 1: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (1664)
2016.12.28 22:01:28 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (916)
2016.12.28 22:01:28 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (457)
2016.12.28 22:01:28 1: main::FW_Read called by fhem.pl (3296)
2016.12.28 22:01:28 1: main::CallFn called by fhem.pl (673)
2016.12.28 22:01:28 1: PERL WARNING: Missing argument in sprintf at (eval 485) line 1.
2016.12.28 22:01:28 1: stacktrace:
2016.12.28 22:01:28 1: main::__ANON__ called by (eval 485) (1)
2016.12.28 22:01:28 1: (eval) called by ./FHEM/33_readingsGroup.pm (373)
2016.12.28 22:01:28 1: main::lookup2 called by ./FHEM/33_readingsGroup.pm (526)
2016.12.28 22:01:28 1: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (1063)
2016.12.28 22:01:28 1: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1162)
2016.12.28 22:01:28 1: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (1664)
2016.12.28 22:01:28 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (916)
2016.12.28 22:01:28 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (457)
2016.12.28 22:01:28 1: main::FW_Read called by fhem.pl (3296)
2016.12.28 22:01:28 1: main::CallFn called by fhem.pl (673)
2016.12.28 22:01:28 1: PERL WARNING: Useless use of sprintf in void context at (eval 494) line 1.
2016.12.28 22:01:28 1: stacktrace:
2016.12.28 22:01:28 1: main::__ANON__ called by (eval 494) (1)
2016.12.28 22:01:28 1: (eval) called by ./FHEM/33_readingsGroup.pm (373)
2016.12.28 22:01:28 1: main::lookup2 called by ./FHEM/33_readingsGroup.pm (526)
2016.12.28 22:01:28 1: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (1063)
2016.12.28 22:01:28 1: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1162)
2016.12.28 22:01:28 1: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (1664)
2016.12.28 22:01:28 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (916)
2016.12.28 22:01:28 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (457)
2016.12.28 22:01:28 1: main::FW_Read called by fhem.pl (3296)
2016.12.28 22:01:28 1: main::CallFn called by fhem.pl (673)
2016.12.28 22:01:28 1: PERL WARNING: Missing argument in sprintf at (eval 494) line 1.
2016.12.28 22:01:28 1: stacktrace:
2016.12.28 22:01:28 1: main::__ANON__ called by (eval 494) (1)
2016.12.28 22:01:28 1: (eval) called by ./FHEM/33_readingsGroup.pm (373)
2016.12.28 22:01:28 1: main::lookup2 called by ./FHEM/33_readingsGroup.pm (526)
2016.12.28 22:01:28 1: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (1063)
2016.12.28 22:01:28 1: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1162)
2016.12.28 22:01:28 1: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (1664)
2016.12.28 22:01:28 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (916)
2016.12.28 22:01:28 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (457)
2016.12.28 22:01:28 1: main::FW_Read called by fhem.pl (3296)
2016.12.28 22:01:28 1: main::CallFn called by fhem.pl (673)
Gruß
Patrick
mach mal bitte vor die beiden sprintf im value format noch ein return
Wie genau meinst du es?
Stehe gerade auf dem Schlauch.... Sorry..
Gruß
Patrick
sorry, ich habe gerade gesehen das die klammern falsch sind. so muss es aussehen:attr Verbrauch valueFormat {"Hauptzaehler.energy0"=> "%.1f kWh", "Gaszaehler.power"=>'{sprintf("%.2f",$VALUE*60)}', "Gaszaehler.energy0"=> "%.1f m³", "Zwischenzaehler.energy0"=> "%.1f kWh", "Wasserzaehler.power"=> '{sprintf("%.2f",$VALUE*60)}', "Wasserzaehler.energy0"=> "%.1f m³"}
Hi
Sieht gut aus. Zur Zeit kein Eintrag mehr im Log. Daaaaaanke. ;D
Gruß
Patrick