From 80212b56aeea82158d6bffa459d01b1e1e7d0285 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Mon, 4 Aug 2008 14:34:53 +0000 Subject: [PATCH] cum_kwh/cum_m3 by Peter git-svn-id: https://svn.fhem.de/fhem/trunk@223 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 1 + fhem/FHEM/61_EMWZ.pm | 4 ++++ fhem/FHEM/63_EMGZ.pm | 23 ++++++++--------------- fhem/fhem.pl | 12 ++++++------ 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index a04e0443b..572f5fa34 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -420,3 +420,4 @@ - feature: 90_at is using now InternalTimer, subsecond precision added - feature: HMS100-FIT added (01.01.08 by Peter and 22.01.08 by Juergen) - feature: 91_watchdog added to handle the HMS100-FIT + - feature: cum_kWh/cum_m3 added to EMWZ/EMGZ (11.01.08 by Peter) diff --git a/fhem/FHEM/61_EMWZ.pm b/fhem/FHEM/61_EMWZ.pm index 2ffdab79a..aa794c688 100755 --- a/fhem/FHEM/61_EMWZ.pm +++ b/fhem/FHEM/61_EMWZ.pm @@ -76,6 +76,10 @@ EMWZ_GetStatus($) $vals{"alarm_PA"} = w($d,45) . " Watt"; $vals{"price_CF"} = sprintf("%.3f", w($d,47)/10000); $vals{"RperKW_EC"} = $ec; + $hash->{READINGS}{cum_kWh}{VAL} = 0 if(!$hash->{READINGS}{cum_kWh}{VAL}); + $vals{"cum_kWh"} = sprintf("%0.3f", + $hash->{READINGS}{cum_kWh}{VAL} + $vals{"energy"}); + my $tn = TimeNow(); my $idx = 0; diff --git a/fhem/FHEM/63_EMGZ.pm b/fhem/FHEM/63_EMGZ.pm index 87ea2c715..e2cb41399 100644 --- a/fhem/FHEM/63_EMGZ.pm +++ b/fhem/FHEM/63_EMGZ.pm @@ -54,14 +54,8 @@ EMGZ_GetStatus($) } my $pulses=w($d,13); - my $ec=w($d,49) / 10; - if($ec < 0) { # war <= - my $msg = "EMGZ read error (GetStatus 2)"; - Log GetLogLevel($name,2), $msg; - return $msg; - } - $ec = 100; # fixed value + my $ec = 100; # fixed value my $cur_energy = $pulses / $ec; # ec = U/m^3 my $cur_power = $cur_energy / 5 * 60; # 5minute interval scaled to 1h @@ -75,10 +69,14 @@ EMGZ_GetStatus($) my %vals; $vals{"5min_pulses"} = $pulses; $vals{"act_flow_m3"} = sprintf("%0.3f", $cur_energy); - $vals{"m3ph"} = sprintf("%.3f", $cur_power); + $vals{"m3ph"} = sprintf("%.3f", $cur_power); $vals{"alarm_PA"} = w($d,45) . " Watt"; # nonsens $vals{"price_CF"} = sprintf("%.3f", w($d,47)/10000); $vals{"Rperm3_EC"} = $ec; + $hash->{READINGS}{cum_m3}{VAL} = 0 if(!$hash->{READINGS}{cum_m3}{VAL}); + $vals{"cum_m3"} = sprintf("%0.3f", + $hash->{READINGS}{cum_m3}{VAL} + $vals{"act_flow_m3"}); + my $tn = TimeNow(); my $idx = 0; @@ -125,7 +123,7 @@ EMGZ_Set($@) { my ($hash, @a) = @_; my $u = "Usage: set , " . - " is one of price,alarm,rperkw"; + " is price"; return $u if(int(@a) != 3); @@ -139,11 +137,6 @@ EMGZ_Set($@) if($a[1] eq "price") { $v *= 10000; # Make display and input the same $msg = sprintf("79%02x2f02%02x%02x", $d-1, $v%256, int($v/256)); - } elsif($a[1] eq "alarm") { - $msg = sprintf("79%02x2d02%02x%02x", $d-1, $v%256, int($v/256)); - } elsif($a[1] eq "rperkw") { - $v *= 10; # Make display and input the same - $msg = sprintf("79%02x3102%02x%02x", $d-1, $v%256, int($v/256)); } else { return $u; } @@ -151,7 +144,7 @@ EMGZ_Set($@) my $ret = IOWrite($hash, $msg); if(!defined($ret)) { - my $msg = "EMWZ $name read error (Set)"; + $msg = "EMWZ $name read error (Set)"; Log GetLogLevel($name,2), $msg; return $msg; } diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 85ae3d9d6..38128d753 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -143,7 +143,7 @@ my $nextat; # Time when next timer will be triggered. my $intAtCnt=0; my $reread_active = 0; my $AttrList = "room comment"; -my $cvsid = '$Id: fhem.pl,v 1.50 2008-08-04 13:47:53 rudolfkoenig Exp $'; +my $cvsid = '$Id: fhem.pl,v 1.51 2008-08-04 14:34:53 rudolfkoenig Exp $'; $init_done = 0; @@ -394,12 +394,12 @@ Log($$) my $nfile = ResolveDateWildcards($attr{global}{logfile}, @t); OpenLogfile($nfile) if($currlogfile && $currlogfile ne $nfile); -# my $tim = sprintf("%04d.%02d.%02d %02d:%02d:%02d", -# $t[5]+1900,$t[4]+1,$t[3], $t[2],$t[1],$t[0]); + my $tim = sprintf("%04d.%02d.%02d %02d:%02d:%02d", + $t[5]+1900,$t[4]+1,$t[3], $t[2],$t[1],$t[0]); - my ($seconds, $microseconds) = gettimeofday(); - my $tim = sprintf("%04d.%02d.%02d %02d:%02d:%02d.%03d", - $t[5]+1900,$t[4]+1,$t[3], $t[2],$t[1],$t[0], $microseconds/1000); +# my ($seconds, $microseconds) = gettimeofday(); +# my $tim = sprintf("%04d.%02d.%02d %02d:%02d:%02d.%03d", +# $t[5]+1900,$t[4]+1,$t[3], $t[2],$t[1],$t[0], $microseconds/1000); if($logopened) { print LOG "$tim $loglevel: $text\n";