FHEM Forum

FHEM => Frontends => readingsGroup / readingsHistory => Thema gestartet von: aorta am 22 Dezember 2016, 22:56:38

Titel: readingsGroup mit Strom und Gas
Beitrag von: aorta am 22 Dezember 2016, 22:56:38
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
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: justme1968 am 23 Dezember 2016, 09:28:02
du musst im valueFormat mapping die device namen mit berücksichtigen.

  '<device>.<reading>' => '...', ...

gruss
  andre
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: aorta am 23 Dezember 2016, 17:57:53
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
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: justme1968 am 23 Dezember 2016, 18:17:51
z.b. so:

valueFormat: {..., "power"=> '{sprintf("%.2f",$VALUE*60)}', ...}

valueSuffix: {"Hauptzaehler.power" => "W", "Gaszaehler.power" => L/Min" }
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: aorta am 23 Dezember 2016, 19:17:23
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
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: hartenthaler am 23 Dezember 2016, 21:45:48
... nur noch kleine perfektionistische Anmerkungen:
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.
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: aorta am 23 Dezember 2016, 22:38:52
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
Titel: readingsGroup mit Strom und Gas
Beitrag von: justme1968 am 24 Dezember 2016, 01:18:03
noch eine kleine verbesserung :)

da das valueFormat für beide power readings jetzt identisch kannst du sie wieder zu einem power => zusammenfassen.

gruss
  andre
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: aorta am 24 Dezember 2016, 14:27:52
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
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: aorta am 28 Dezember 2016, 20:22:05
Hallo
Kann mir niemand einen Rat geben?
MfG
Patrick
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: justme1968 am 28 Dezember 2016, 21:36:21
schalte mal global stacktrace ein und zeige wo die meldung genau her kommt.

gruss
  andre
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: aorta am 28 Dezember 2016, 22:02:59
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
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: justme1968 am 28 Dezember 2016, 22:06:30
mach mal bitte vor die beiden sprintf im value format noch ein return

Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: aorta am 28 Dezember 2016, 22:09:23
Wie genau meinst du es?
Stehe gerade auf dem Schlauch.... Sorry..

Gruß
Patrick
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: justme1968 am 28 Dezember 2016, 22:22:19
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³"}
Titel: Antw:readingsGroup mit Strom und Gas
Beitrag von: aorta am 28 Dezember 2016, 22:41:51
Hi
Sieht gut aus. Zur Zeit kein Eintrag mehr im Log. Daaaaaanke.  ;D

Gruß
Patrick