From 5e8f7e2646a23eb32277085df6bf6e0966b79b86 Mon Sep 17 00:00:00 2001 From: immiimmi <> Date: Thu, 15 May 2014 18:53:58 +0000 Subject: [PATCH] THZ: improved simulated heat curve with roominfluence git-svn-id: https://svn.fhem.de/fhem/trunk@5870 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_THZ.pm | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/fhem/FHEM/00_THZ.pm b/fhem/FHEM/00_THZ.pm index 814131aed..12895c105 100644 --- a/fhem/FHEM/00_THZ.pm +++ b/fhem/FHEM/00_THZ.pm @@ -2,7 +2,7 @@ # 00_THZ # $Id$ # by immi 05/2014 -# v. 0.097 +# v. 0.098 # this code is based on the hard work of Robert; I just tried to port it # http://robert.penz.name/heat-pump-lwz/ # http://heatpumpmonitor.penz.name/heatpumpmonitorwiki/ @@ -100,7 +100,6 @@ my %sets = ( "p49SummerModeTemp" => {cmd2=>"0A0116", argMin => "11", argMax => "24" }, #threshold for summer mode !! "p50SummerModeHysteresis" => {cmd2=>"0A05A2", argMin => "0.5", argMax => "5" }, #Hysteresis for summer mode !! "p78DualModePoint" => {cmd2=>"0A01AC", argMin => "-10", argMax => "20" }, - "pHolidayBeginDay" => {cmd2=>"0A011B", argMin => "1", argMax => "31" }, "pHolidayBeginMonth" => {cmd2=>"0A011C", argMin => "1", argMax => "12" }, "pHolidayBeginYear" => {cmd2=>"0A011D", argMin => "12", argMax => "20" }, @@ -1263,17 +1262,15 @@ polyline { stroke:black; fill:none; } END - +my $insideTemp=(split ' ',ReadingsVal("Mythz","sGlobal",0))[81]; +$insideTemp="n.a." if ($insideTemp eq "-60"); #in case internal room sensor not connected my $roomSetTemp =(split ' ',ReadingsVal("Mythz","sHC1",0))[21]; my $p13GradientHC1 = ReadingsVal("Mythz","p13GradientHC1",0); my $heatSetTemp =(split ' ',ReadingsVal("Mythz","sHC1",0))[11]; my $p15RoomInfluenceHC1 = (split ' ',ReadingsVal("Mythz","p15RoomInfluenceHC1",0))[0]; my $outside_tempFiltered =(split ' ',ReadingsVal("Mythz","sGlobal",0))[65]; my $p14LowEndHC1 =(split ' ',ReadingsVal("Mythz","p14LowEndHC1",0))[0]; -my $a= 1 + ($roomSetTemp * (1 + $p13GradientHC1 * 0.87)) + $p14LowEndHC1; -my $b= -14 * $p13GradientHC1 / $roomSetTemp; -my $c= -1 * $p13GradientHC1 /75; -my $Simul_heatSetTemp; + #labels ###################### $ret .= ' --- heat curve' ; @@ -1283,7 +1280,14 @@ $ret .= $outside_tempFiltered . ' heatSetTemp=' . $heatSetTemp . ''; #title ###################### $ret .= ''; -$ret .= 'roomSetTemp=' . $roomSetTemp . ' p13GradientHC1=' . $p13GradientHC1 . ' p14LowEndHC1=' . $p14LowEndHC1 . ' p15RoomInfluenceHC1=' . $p15RoomInfluenceHC1 . ''; +$ret .= 'roomSetTemp=' . $roomSetTemp . ' p13GradientHC1=' . $p13GradientHC1 . ' p14LowEndHC1=' . $p14LowEndHC1 . ' p15RoomInfluenceHC1=' . $p15RoomInfluenceHC1 . " insideTemp=" . $insideTemp .' '; + +#equation#################### +$insideTemp=$roomSetTemp if ($insideTemp eq "n.a."); +my $a= 1 + ($roomSetTemp * (1 + $p13GradientHC1 * 0.87)) + $p14LowEndHC1 + $p15RoomInfluenceHC1 * $p13GradientHC1 * ($roomSetTemp - $insideTemp); +my $b= -14 * $p13GradientHC1 / $roomSetTemp; +my $c= -1 * $p13GradientHC1 /75; +my $Simul_heatSetTemp; #point ######################