readingsGroup mit Strom und Gas

Begonnen von aorta, 22 Dezember 2016, 22:56:38

Vorheriges Thema - Nächstes Thema

aorta

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

justme1968

du musst im valueFormat mapping die device namen mit berücksichtigen.

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

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

aorta

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

justme1968

#3
z.b. so:

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

valueSuffix: {"Hauptzaehler.power" => "W", "Gaszaehler.power" => L/Min" }
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

aorta

#4
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

hartenthaler

... 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.
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

aorta

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

justme1968

noch eine kleine verbesserung :)

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

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

aorta

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

aorta

Hallo
Kann mir niemand einen Rat geben?
MfG
Patrick

justme1968

schalte mal global stacktrace ein und zeige wo die meldung genau her kommt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

aorta

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

justme1968

mach mal bitte vor die beiden sprintf im value format noch ein return

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

aorta

Wie genau meinst du es?
Stehe gerade auf dem Schlauch.... Sorry..

Gruß
Patrick

justme1968

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³"}
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968