diff --git a/fhem/contrib/EBUS/Vaillant_eBUS_v0.6.0_mod.pdf b/fhem/contrib/EBUS/Vaillant_eBUS_v0.6.0_mod.pdf new file mode 100644 index 000000000..6d5fb743e Binary files /dev/null and b/fhem/contrib/EBUS/Vaillant_eBUS_v0.6.0_mod.pdf differ diff --git a/fhem/contrib/EBUS/Vaillant_routines.pl b/fhem/contrib/EBUS/Vaillant_routines.pl new file mode 100644 index 000000000..895d87234 --- /dev/null +++ b/fhem/contrib/EBUS/Vaillant_routines.pl @@ -0,0 +1,402 @@ +######################################################################################## +# +# Vaillant_routines.pl ===> Insert into 99_myUtils.pm +# +# Collection of various routines for Vaillant heating systems +# +# KEEP THE NAME AND COPYRIGHT +# +# Prof. Dr. Peter A. Henning +# +# $Id: 99_myUtils.pm 2014-12 - pahenning $ +# +######################################################################################## +# +# This programm is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The GNU General Public License can be found at +# http://www.gnu.org/copyleft/gpl.html. +# A copy is found in the textfile GPL.txt and important notices to the license +# from the author is found in LICENSE.txt distributed with these scripts. +# +# This script is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +######################################################################################## + +############################################################################### +# +# Vaillant_HWC_mode_postproc +# +# postprocessing of +# "get HWC OperatingMode\n\000get HWC Param1" +# "read HWC Status2\n\000read SOL Status2" +# +############################################################################### + +sub Vaillant_HWC_mode_postproc($$){ + + my ($name,$str)=@_; + my $hash = $defs{"$name"}; + my (@values,$day,$night,$off,$min,$max,$mode,$zval); + + if( $str =~ /.*;.*/){ + # target;mode target;0;0;0;131;22;0;min;max;0 + @values = split(/[; \n]/,$str); + $day = sprintf("%4.1f",$values[0]); + $mode = $values[1]; + $night = sprintf("%4.1f",$values[6]); + $off = sprintf("%4.1f",$values[7]); + $min = sprintf("%4.1f",$values[9]); + $max = sprintf("%4.1f",$values[10]); + } else { + @values = split(' ',$str); + $day = sprintf("%4.1f",$values[0]); + $night = sprintf("%4.1f",$values[4]); + $off = sprintf("%4.1f",$values[5]); + $min = sprintf("%4.1f",$values[6]); + $max = sprintf("%4.1f",$values[7]); + if( $values[1]==0 ){ + $mode="disabled" + }elsif( $values[1]==1 ){ + $mode="on" + }elsif( $values[1]==2 ){ + $mode="off" + }elsif( $values[1]==3 ){ + $mode="auto" + }elsif( $values[1]==4 ){ + $mode="eco" + }elsif( $values[1]==5 ){ + $mode="low" + } + } + readingsBeginUpdate($hash); + readingsBulkUpdate($hash, "postproc", $str); + readingsBulkUpdate($hash, "mode", $mode); + readingsBulkUpdate($hash, "Storage.day", $day); + readingsBulkUpdate($hash, "Storage.min", $min); + readingsBulkUpdate($hash, "Storage.max", $max); + readingsEndUpdate($hash,1); + $mode; + } + +############################################################################### +# +# Vaillant_HWC_state_postproc +# +# postprocessing of +# "get HWC Status2\n\000get SOL Status2" +# "read HWC Status2\n\000read SOL Status2" +# +############################################################################### + +sub Vaillant_HWC_state_postproc($$){ + + my ($name,$str)=@_; + my $hash = $defs{"$name"}; + my (@values,$rval,$tval,$bval,$pval,$xval,$zval,$sp2,$sp3); + + if( $str =~ /.*;.*/){ + # status;ladung;SP1;target SP1;SP2;SP3 + @values = split(/[; \n]/,$str); + $rval = sprintf("%5.2f",$values[2]); + $tval = sprintf("%4.1f",$values[3]); + $bval = ($values[0] == 80) ? "ON (WW)" : "OFF"; + $pval = ($values[1] == 1) ? "ON" : "OFF"; + $xval = sprintf("%5.2f %5.2f %5.2f %d %d", $values[2],0.0,$values[3],$values[0],$values[1]); + $zval = sprintf("SP1.T %5.2f °C, %s", $values[2],$pval); + $sp2 = sprintf("%5.2f",$values[5]); + $sp3 = sprintf("%5.2f",$values[6]); + + }else{ + # SP1 target status ladung SP1 SP2 SP3 + @values = split(' ',$str); + $rval = sprintf("%5.2f",$values[0]); + $tval = sprintf("%4.1f",$values[1]); + $bval = ($values[2] == 80) ? "ON (WW)" : "OFF"; + $pval = ($values[3] == 1) ? "ON" : "OFF"; + $xval = sprintf("%5.2f %5.2f %5.2f %d %d", $values[0],0.0,$values[1],$values[2],$values[3]); + $zval = sprintf("SP1.T %5.2f °C, %s", $values[0],$pval); + $sp2 = sprintf("%5.2f",$values[5]); + $sp3 = sprintf("%5.2f",$values[6]); + + } + readingsBeginUpdate($hash); + readingsBulkUpdate($hash, "postproc", $str); + readingsBulkUpdate($hash, "Storage.SP1.T", $rval); + readingsBulkUpdate($hash, "Storage.SP2.T", $sp2); + readingsBulkUpdate($hash, "Storage.SP3.T", $sp3); + readingsBulkUpdate($hash, "Storage.target", $tval); + readingsBulkUpdate($hash, "Burner", $bval); + readingsBulkUpdate($hash, "Pump", $pval); + readingsBulkUpdate($hash, "reading", $xval); + readingsEndUpdate($hash,1); + $zval; +} + + +############################################################################### +# +# Vaillant_HWC_broadcast_postproc +# +# postprocessing of +# "get cyc broad StatusHWC\n" +# "read broad StatusHWC +# +############################################################################### + +sub Vaillant_HWC_broadcast_postproc($$){ + + my ($name,$str)=@_; + my $hash = $defs{"$name"}; + my (@values,$rval,$tval,$bval,$pval,$xval,$zval); + + if( ($str eq "")||($str eq "no data stored") ){ + $rval = "err"; + $tval = "err"; + $bval = "err"; + $pval = "err"; + $xval = "err"; + $zval = "err"; + } elsif( $str =~ /.*;.*/){ + # status;ladung;SP1;target + @values = split(';',$str); + $rval = sprintf("%5.2f",$values[2]); + $tval = sprintf("%4.1f",$values[3]); + $bval = ($values[0] == 80) ? "ON (WW)" : "OFF"; + $pval = ($values[1] == 1) ? "ON" : "OFF"; + $xval = sprintf("%5.2f %5.2f %5.2f %d %d", $values[2],0.0,$values[3],$values[0],$values[1]); + $zval = sprintf("SP1.T %5.2f °C, %s", $values[2],$pval); + } else { + @values=split(' ',$str); + if( $values[1] < 15 ){ + $rval = "err"; + $tval = "err"; + $bval = "err"; + $pval = "err"; + $xval = "err"; + $zval = "err"; + }else { + $rval = sprintf("%5.2f",$values[0]); + $tval = sprintf("%4.1f",$values[1]); + $bval = ($values[2] == 80) ? "ON (WW)" : "OFF"; + $pval = ($values[3] == 1) ? "ON" : "OFF"; + $xval = sprintf("%5.2f %5.2f %5.2f %d %d",$values[0],0.0,$values[1],$values[2],$values[3]); + $zval = sprintf("SP1.T %5.2f °C, %s",$values[0],$pval); + } + } + readingsBeginUpdate($hash); + readingsBulkUpdate($hash, "postproc", $str); + readingsBulkUpdate($hash, "Storage.SP1.T", $rval); + readingsBulkUpdate($hash, "Storage.target", $tval); + readingsBulkUpdate($hash, "Burner", $bval); + readingsBulkUpdate($hash, "Pump", $pval); + readingsBulkUpdate($hash, "reading", $xval); + readingsEndUpdate($hash,1); + $zval; +} + +############################################################################### +# +# Vaillant_HC_mode_postproc +# +# postprocessing of +# "get HC OperatingMode\n\000get HC Param1\n\000get vrs620 NameHC" +# "read HC OperatingMode\n\000read HC Param1\n\000read vrs620 NameHC" +# +############################################################################### + +sub Vaillant_HC_mode_postproc($$$){ + + my ($name,$str,$circuit)=@_; + my $hash = $defs{"$name"}; + my (@values,$room,$night,$off,$add,$min,$max,$pre,$cname,$mode); + + $circuit="" + if ( $circuit == 1); + + if( $str =~ /.*;.*/){ + # room;mode room;night;off;add;min;max;pre cname + @values = split(/[; \n]/,$str); + $room = sprintf("%4.1f",$values[0]); + $mode = $values[1]; + $night = sprintf("%4.1f",$values[3]); + $off = sprintf("%4.1f",$values[4]); + $add = sprintf("%4.1f",$values[5]); + $min = sprintf("%4.1f",$values[6]); + $max = sprintf("%4.1f",$values[7]); + $pre = sprintf("%4.1f",$values[8]); + $cname = sprintf("%s",$values[9]); + } else { + @values = split(' ',$str); + $room = sprintf("%4.1f",$values[0]); + $night = sprintf("%4.1f",$values[4]); + $off = sprintf("%4.1f",$values[5]); + $add = sprintf("%4.1f",$values[6]); + $min = sprintf("%4.1f",$values[7]); + $max = sprintf("%4.1f",$values[8]); + $pre = sprintf("%4.1f",$values[9]); + $cname = sprintf("%s",$values[10]); + if( $values[1]==0 ){ + $mode="disabled" + }elsif( $values[1]==1 ){ + $mode="on" + }elsif( $values[1]==2 ){ + $mode="off" + }elsif( $values[1]==3 ){ + $mode="auto" + }elsif( $values[1]==4 ){ + $mode="eco" + }elsif( $values[1]==5 ){ + $mode="low" + } + } + readingsBeginUpdate($hash); + readingsBulkUpdate($hash, "postproc", $str); + readingsBulkUpdate($hash, "mode".$circuit, $mode); + readingsBulkUpdate($hash, "mode".$circuit.".off", $off); + readingsBulkUpdate($hash, "Room".$circuit.".T", $room); + readingsBulkUpdate($hash, "Room".$circuit.".night", $night); + readingsBulkUpdate($hash, "Room".$circuit.".add", $add); + readingsBulkUpdate($hash, "VL".$circuit.".T.min", $min); + readingsBulkUpdate($hash, "VL".$circuit.".T.max", $max); + readingsBulkUpdate($hash, "name".$circuit, $cname); + readingsEndUpdate($hash,1); + $mode; +} + +############################################################################### +# +# Vaillant_HC_mode_postproc +# +# postprocessing of +# "read HC Status1\n\000read HC Status2a\n\000read broad StatusHC" +# +# +############################################################################### + +sub Vaillant_HC_state_postproc($$){ + + my ($name,$str)=@_; + my $hash = $defs{"$name"}; + my (@values,$vval,$rval,$bval,$pval, $qval,$xval,$zval); + + if( ($str eq "")||($str eq "no data stored") ){ + $vval = "err"; + $rval = "err"; + $bval = "err"; + $pval = "err"; + $qval = "err"; + $xval = "err"; + $zval = "err"; + }elsif( $str =~ /.*;.*/){ + # + @values = split(/[; \n]/,$str); + $vval = sprintf("%4.1f",$values[10]); + $rval = sprintf("%4.1f",$values[11]); + if( $values[14] == 0 ){ + $pval = "OFF"; + $qval = "0 0"; + }elsif( $values[14] == 1 ){ + $pval = "ON (HK)"; + $qval = "80 0"; + }elsif( $values[14] == 2 ){ + $pval = "ON (WW)"; + $qval = "0 80"; + }else{ + $pval = "unknown"; + $qval = "err"; + } + + }else{ + # + @values = split(' ',$str); + $vval = sprintf("%4.1f",$values[5]); + $rval = sprintf("%4.1f",$values[6]); + if( $values[2] == 0 ){ + $pval = "OFF"; + $qval = "0 0"; + }elsif( $values[2] == 1 ){ + $pval = "ON (HK)"; + $qval = "80 0"; + }elsif( $values[2] == 2 ){ + $pval = "ON (WW)"; + $qval = "0 80"; + }else{ + $pval = "unknown"; + $qval = "err"; + } + } + + $bval = HzBedarf(); + $xval = sprintf("%5.2f %5.2f %s %5.2f",$vval,$rval,$qval,$bval); + $zval = sprintf("VL.T %5.2f °C, RL.T %5.2f °C, %s",$vval,$rval,$pval); + + if( ($vval < 5) ){ + $vval = "err"; + $rval = "err"; + $bval = "err"; + $pval = "err"; + $qval = "err"; + $xval = ""; + $zval = "err"; + } + + readingsBeginUpdate($hash); + readingsBulkUpdate($hash, "postproc", $str); + readingsBulkUpdate($hash, "VL.T", $vval); + readingsBulkUpdate($hash, "RL.T", $rval); + readingsBulkUpdate($hash, "pump", $pval); + readingsBulkUpdate($hash, "pump.P", $qval); + readingsBulkUpdate($hash, "consumption", $bval); + readingsBulkUpdate($hash, "reading", $xval) + if( $xval ne "" ); + readingsEndUpdate($hash,1); + $zval +} + +############################################################################### +# +# Vaillant_SOL_mode_postproc +# +# postprocessing of +# "get HC OperatingMode\n\000get HC Param1\n\000get vrs620 NameHC" +# "read HC OperatingMode\n\000read HC Param1\n\000read vrs620 NameHC" +# +############################################################################### + +sub Vaillant_SOL_state_postproc($$){ + + my ($name,$str)=@_; + my $hash = $defs{"$name"}; + readingsBeginUpdate($hash); + readingsBulkUpdate($hash, "postproc", $str); + readingsEndUpdate($hash,1); +} + + +############################################################################### +# +# Vaillant_Timer +# +############################################################################### + +sub Vaillant_Timer($) +{ + my @values=split(/[; ]/,$_); + #-- suppress leading zero ? + for(my $i=0;$i<6;$i++){ + $values[$i]=~s/^0//; + } + my $sval=sprintf("%s-%s",$values[0],$values[1]); + $sval .=sprintf(", %s-%s",$values[2],$values[3]) + if($values[2] ne $values[3]); + $sval .=sprintf(", %s-%s",$values[4],$values[5]) + if($values[4] ne $values[5]); + return $sval; +} \ No newline at end of file diff --git a/fhem/contrib/EBUS/ebus_hz.cfg b/fhem/contrib/EBUS/ebus_hz.cfg new file mode 100644 index 000000000..367dc1d12 --- /dev/null +++ b/fhem/contrib/EBUS/ebus_hz.cfg @@ -0,0 +1,45 @@ +# Außentemperatur +get Outside.T cmd {"read broad OutsideTempB"} +get Outside.T expect ".*" + +# Heizkeis HC +get mode cmd {"read HC OperatingMode\n\000read HC Param1\n\000read vrs620 NameHC"} +get mode expect ".*" +get mode postproc { Vaillant_HC_mode_postproc("%NAME",$_,1) } + +# Mischerkreis MIX +get mode2 cmd {"read MIX OperatingMode\n\000read MIX Param1\n\000read vrs620 NameMIX"} +get mode2 expect ".*" +get mode2 postproc { Vaillant_HC_mode_postproc("%NAME",$_,2) } + +get state cmd {"read HC Status1\n\000read HC Status2a\n\000read broad StatusHC"} +get state expect ".*" +get state postproc { Vaillant_HC_state_postproc("%NAME",$_) } + +get progMonday cmd {"read HC TimerProgMonday"} +get progMonday expect ".*" +get progMonday postproc { Vaillant_Timer($_); } + +get progTuesday cmd {"read HC TimerProgTuesday"} +get progTuesday expect ".*" +get progTuesday postproc { Vaillant_Timer($_); } + +get progWednesday cmd {"read HC TimerProgWednesday"} +get progWednesday expect ".*" +get progWednesday postproc { Vaillant_Timer($_); } + +get progThursday cmd {"read HC TimerProgThursday"} +get progThursday expect ".*" +get progThursday postproc { Vaillant_Timer($_); } + +get progFriday cmd {"read HC TimerProgFriday"} +get progFriday expect ".*" +get progFriday postproc { Vaillant_Timer($_); } + +get progSaturday cmd {"read HC TimerProgSaturday"} +get progSaturday expect ".*" +get progSaturday postproc { Vaillant_Timer($_); } + +get progSunday cmd {"read HC TimerProgSunday"} +get progSunday expect ".*" +get progSunday postproc { Vaillant_Timer($_); } diff --git a/fhem/contrib/EBUS/ebus_solar.cfg b/fhem/contrib/EBUS/ebus_solar.cfg new file mode 100644 index 000000000..2c7c0c15e --- /dev/null +++ b/fhem/contrib/EBUS/ebus_solar.cfg @@ -0,0 +1,4 @@ +# Solarkreis +get state cmd {"read broad StatusSOL\n"} +get state expect ".*" +get state postproc { Vaillant_SOL_state_postproc("%NAME",$_) } diff --git a/fhem/contrib/EBUS/ebus_test.cfg b/fhem/contrib/EBUS/ebus_test.cfg new file mode 100644 index 000000000..40258a968 --- /dev/null +++ b/fhem/contrib/EBUS/ebus_test.cfg @@ -0,0 +1,171 @@ +get RoomTemp cmd {"read vrs620 RoomTemp \n"} +get RoomTemp expect ".*" +get RoomTemp postproc {$_} + +get OutTemp cmd {"read vrs620 OutTemp \n"} +get OutTemp expect ".*" +get OutTemp postproc {$_} + +get Temp2 cmd {"read vrs620 Temp2 \n"} +get Temp2 expect ".*" +get Temp2 postproc {$_} + +get Sensor03 cmd {"read vrs620 Sensor03 \n"} +get Sensor03 expect ".*" +get Sensor03 postproc {$_} + +get Sensor04 cmd {"read vrs620 Sensor04 \n"} +get Sensor04 expect ".*" +get Sensor04 postproc {$_} + +get Sensor05 cmd {"read vrs620 Sensor05 \n"} +get Sensor05 expect ".*" +get Sensor05 postproc {$_} + +get SolarYield cmd {"read vrs620 SolarYield \n"} +get SolarYield expect ".*" +get SolarYield postproc {$_} + +get Sensor07 cmd {"read vrs620 Sensor07 \n"} +get Sensor07 expect ".*" +get Sensor07 postproc {$_} + +get Sensor08 cmd {"read vrs620 Sensor08 \n"} +get Sensor08 expect ".*" +get Sensor08 postproc {$_} + +get Sensor0a cmd {"read vrs620 Sensor0a \n"} +get Sensor0a expect ".*" +get Sensor0a postproc {$_} + +get Sensor0b cmd {"read vrs620 Sensor0b \n"} +get Sensor0b expect ".*" +get Sensor0b postproc {$_} + +get Sensor0c cmd {"read vrs620 Sensor0c \n"} +get Sensor0c expect ".*" +get Sensor0c postproc {$_} + +get Sensor0d cmd {"read vrs620 Sensor0d \n"} +get Sensor0d expect ".*" +get Sensor0d postproc {$_} + +get isInHoliday cmd {"read vrs620 isInHoliday \n"} +get isInHoliday expect ".*" +get isInHoliday postproc {$_} + +get Sensor0f cmd {"read vrs620 Sensor0f \n"} +get Sensor0f expect ".*" +get Sensor0f postproc {$_} + +get Sensor10 cmd {"read vrs620 Sensor10 \n"} +get Sensor10 expect ".*" +get Sensor10 postproc {$_} + +get Sensor11 cmd {"read vrs620 Sensor11 \n"} +get Sensor11 expect ".*" +get Sensor11 postproc {$_} + +get Sensor12 cmd {"read vrs620 Sensor12 \n"} +get Sensor12 expect ".*" +get Sensor12 postproc {$_} + +get Sensor13 cmd {"read vrs620 Sensor13 \n"} +get Sensor13 expect ".*" +get Sensor13 postproc {$_} + +get Sensor14 cmd {"read vrs620 Sensor14 \n"} +get Sensor14 expect ".*" +get Sensor14 postproc {$_} + +get Sensor15 cmd {"read vrs620 Sensor15 \n"} +get Sensor15 expect ".*" +get Sensor15 postproc {$_} + +get Sensor16 cmd {"read vrs620 Sensor16 \n"} +get Sensor16 expect ".*" +get Sensor16 postproc {$_} + +get Sensor17 cmd {"read vrs620 Sensor17 \n"} +get Sensor17 expect ".*" +get Sensor17 postproc {$_} + +get Sensor18 cmd {"read vrs620 Sensor18 \n"} +get Sensor18 expect ".*" +get Sensor18 postproc {$_} + +get Sensor19 cmd {"read vrs620 Sensor19 \n"} +get Sensor19 expect ".*" +get Sensor19 postproc {$_} + +get Sensor1a cmd {"read vrs620 Sensor1a \n"} +get Sensor1a expect ".*" +get Sensor1a postproc {$_} + +get Sensor1b cmd {"read vrs620 Sensor1b \n"} +get Sensor1b expect ".*" +get Sensor1b postproc {$_} + +get Sensor1c cmd {"read vrs620 Sensor1c \n"} +get Sensor1c expect ".*" +get Sensor1c postproc {$_} + +get Sensor1d cmd {"read vrs620 Sensor1d \n"} +get Sensor1d expect ".*" +get Sensor1d postproc {$_} + +get Sensor1e cmd {"read vrs620 Sensor1e \n"} +get Sensor1e expect ".*" +get Sensor1e postproc {$_} + +get RoomTempOffset cmd {"read vrs620 RoomTempOffset \n"} +get RoomTempOffset expect ".*" +get RoomTempOffset postproc {$_} + +get OutTempOffset cmd {"read vrs620 OutTempOffset \n"} +get OutTempOffset expect ".*" +get OutTempOffset postproc {$_} + +get RoomTempHoliday cmd {"read vrs620 RoomTempHoliday \n"} +get RoomTempHoliday expect ".*" +get RoomTempHoliday postproc {$_} + +get MinTempBurner cmd {"read vrs620 MinTempBurner \n"} +get MinTempBurner expect ".*" +get MinTempBurner postproc {$_} + +get ServiceDate cmd {"read vrs620 ServiceDate \n"} +get ServiceDate expect ".*" +get ServiceDate postproc {$_} + +get Password cmd {"read vrs620 Password \n"} +get Password expect ".*" +get Password postproc {$_} + +get LcdContrast cmd {"read vrs620 LcdContrast \n"} +get LcdContrast expect ".*" +get LcdContrast postproc {$_} + +get NameHC cmd {"read vrs620 NameHC \n"} +get NameHC expect ".*" +get NameHC postproc {$_} + +get NameHC2 cmd {"read vrs620 NameMIX \n"} +get NameHC2 expect ".*" +get NameHC2 postproc {$_} + +get HolidayPeriod cmd {"read vrs620 HolidayPeriod \n"} +get HolidayPeriod expect ".*" +get HolidayPeriod postproc {$_} + +get Sensor57 cmd {"read vrs620 Sensor57 \n"} +get Sensor57 expect ".*" +get Sensor57 postproc {$_} + +get Sensor75 cmd {"read vrs620 Sensor75 \n"} +get Sensor75 expect ".*" +get Sensor75 postproc {$_} + +get Sensor88 cmd {"read vrs620 Sensor88 \n"} +get Sensor88 expect ".*" +get Sensor88 postproc {$_} diff --git a/fhem/contrib/EBUS/ebus_ww.cfg b/fhem/contrib/EBUS/ebus_ww.cfg new file mode 100644 index 000000000..7464debb9 --- /dev/null +++ b/fhem/contrib/EBUS/ebus_ww.cfg @@ -0,0 +1,68 @@ +# Warmwasserkeis HWC +get state cmd {"read HWC Status2\n\000read SOL Status2"} +get state expect ".*" +get state postproc { Vaillant_HWC_state_postproc("%NAME",$_) } + +get mode cmd {"read HWC OperatingMode\n\000read HWC Param1"} +get mode expect ".*" +get mode postproc { Vaillant_HWC_mode_postproc("%NAME",$_) } + +get broadcast cmd {"read broad StatusHWC\n"} +get broadcast expect ".*" +get broadcast postproc { Vaillant_HWC_broadcast_postproc("%NAME",$_) } + +get progMonday cmd {"read HWC TimerProgMonday"} +get progMonday expect ".*" +get progMonday postproc { Vaillant_Timer($_); } + +get progTuesday cmd {"read HWC TimerProgTuesday"} +get progTuesday expect ".*" +get progTuesday postproc { Vaillant_Timer($_); } + +get progWednesday cmd {"read HWC TimerProgWednesday"} +get progWednesday expect ".*" +get progWednesday postproc { Vaillant_Timer($_); } + +get progThursday cmd {"read HWC TimerProgThursday"} +get progThursday expect ".*" +get progThursday postproc { Vaillant_Timer($_); } + +get progFriday cmd {"read HWC TimerProgFriday"} +get progFriday expect ".*" +get progFriday postproc { Vaillant_Timer($_); } + +get progSaturday cmd {"read HWC TimerProgSaturday"} +get progSaturday expect ".*" +get progSaturday postproc { Vaillant_Timer($_); } + +get progSunday cmd {"read HWC TimerProgSunday"} +get progSunday expect ".*" +get progSunday postproc { Vaillant_Timer($_); } + +get circMonday cmd {"read CIR TimerProgMonday"} +get circMonday expect ".*" +get circMonday postproc { Vaillant_Timer($_); } + +get circTuesday cmd {"read CIR TimerProgTuesday"} +get circTuesday expect ".*" +get circTuesday postproc { Vaillant_Timer($_); } + +get circWednesday cmd {"read CIR TimerProgWednesday"} +get circWednesday expect ".*" +get circWednesday postproc { Vaillant_Timer($_); } + +get circThursday cmd {"read CIR TimerProgThursday"} +get circThursday expect ".*" +get circThursday postproc { Vaillant_Timer($_); } + +get circFriday cmd {"read CIR TimerProgFriday"} +get circFriday expect ".*" +get circFriday postproc { Vaillant_Timer($_); } + +get circSaturday cmd {"read CIR TimerProgSaturday"} +get circSaturday expect ".*" +get circSaturday postproc { Vaillant_Timer($_); } + +get circSunday cmd {"read CIR TimerProgSunday"} +get circSunday expect ".*" +get circSunday postproc { Vaillant_Timer($_); } diff --git a/fhem/contrib/EBUS/vrs620.csv b/fhem/contrib/EBUS/vrs620.csv new file mode 100644 index 000000000..f8520c626 --- /dev/null +++ b/fhem/contrib/EBUS/vrs620.csv @@ -0,0 +1,46 @@ +# type (r;w;u;1-9),class,name,comment,QQ,ZZ,PBSB,ID,field,part (m;s),type / templates,divider / values,unit,comment,field,part (m;s),type / templates,divider / values,unit,comment +*r,vrs620,,,,15,B509,0D,,,,,,,,,,,, +*w,vrs620,,,,15,B509,0E,,,,,,,,,,,, +r,,RoomTemp,Raumtemperatur,,,,0000,,,tempsensor,,,,,,,,, +r,,OutsideTemp,Außentemperatur ,,,,0100,,,tempsensor,,,,,,,,, +r,,SolarYield,Solarer Ertrag,,,,0600,,,energy4,,kWh,,,,,,, +r,,HolidayRoomSetTemp,Ferien Solltemperatur,,,,2200,,,temp,,,,,,,,, +r,,ServiceDate,Servicedatum,,,,2B00,,,date,,,,,,,,, +r,,Password,Passwort,,,,2C00,,,pin1-4,,,,,,,,, +r,,LcdContrast,Kontrast Display,,,,3600,,,uch,,,,,,,,, +r,,NameHC,Name Heizkreis,,,,4100,,,str:10,,,,,,IGN:1,,, +r,,NameMIX,Name Mischerkreis,,,,4108,,,str:10,,,,,,IGN:1,,, +r,,HolidayPeriod,Ferien Zeitraum,,,,4300,,,holiday,,,,,,,,, +r,,Time,Uhrzeit,,,,5F00,,,hti,,,,,,,,, +r,,Date,Datum,,,,6100,,,hda,,,,,,,,, +#################################,,,,,,,,,,,,,,,,,,, +*ra,CIR,,,,23,B504,,,,,,,,,,,,, +*rb,HWC,,,,25,B504,,,,,,,,,,,,, +*rc,HC,,,,26,B504,,,,,,,,,,,,, +*rd,MIX,,,,50,B504,,,,,,,,,,,,, +*re,SOL,,,,EC,B504,,,,,,,,,,,,, +rb,,OperatingMode,,,,,01,,,temp0;hwmode,,,,,,,,, +rc;rd,,OperatingMode,,,,,01,,,temp0;mcmode,,,,,,,,, +ra;rb;rc,,TimerProgMonday,Schaltzeiten Montag,,,,02,,,slot1-3;days,,,,,,,,, +ra;rb;rc,,TimerProgTuesday,Schaltzeiten Dienstag,,,,03,,,slot1-3;days,,,,,,,,, +ra;rb;rc,,TimerProgWednesday,Schaltzeiten Mittwoch,,,,04,,,slot1-3;days,,,,,,,,, +ra;rb;rc,,TimerProgThursday,Schaltzeiten Donnerstag,,,,05,,,slot1-3;days,,,,,,,,, +ra;rb;rc,,TimerProgFriday,Schaltzeiten Freitag,,,,06,,,slot1-3;days,,,,,,,,, +ra;rb;rc,,TimerProgSaturday,Schaltzeiten Samstag,,,,07,,,slot1-3;days,,,,,,,,, +ra;rb;rc,,TimerProgSunday,Schaltzeiten Sonntag,,,,08,,,slot1-3;days,,,,,,,,, +rb,,Param1,SP1; ?; ?; ?; SP1.min; SP1.max; ?,,,,09,,,temp0;status;status;status;temp0;temp0;status;temp0;temp0;status,,,,,,,,, +rc;rd,,Param1,RaumTemp AbsenkTemp / 8c 00 85 /AbschaltTemp Raumaufschaltung MinVL MaxVL VorHeiz,,,,09,,,temp0;temp0;skip;skip;skip;temp0;temp0;temp0;temp0;status,,,,,,,,, +rb,,Status2,Status Warmwasserkreis:Status; Ladung; SP1; Target; ,,,,0D,,,status;status;temp;temp0,,,,,,,,, +rc, ,Status1,Vorlauf VL; Pumpe,,,,0A,,,status;status;status;status;status;temp0,,,,,,,,, +rc, ,Status2a,Status Heizkreis,,,,0D,,,temp0;status;temp;status,,,,,,,,, +re,,Status2,Speicher SP1 – SP3,,,,0F,,,temp;temp;temp,,,,,,,,, +re,,ParmSOL,SOL1 Max/HystOnOff SOL2 Max/HystOnOff SOL3(?) Max/HystOnOff Status,,,,11,,,temp0;temp0;temp0;temp0;temp0;temp0;temp0;temp0;temp0,,,,,,,,, +re,,StatusSOL1,SOL1 KollTemp; Status. PumpenLZ; dto für SOL2,,,,12,,,temp;status;energy;temp;status;energy,,,,,,,,, +re,,StatusSOL2,Solarer Ertrag; Fluss; Pumpe (?),,,,13,,,energy;skip;energy;skip;status,,,,,,,,, +re,,StatusSOL3,KollTemp; Status; Füllung; Power,,,,21,,,temp1;skip;status;percent;percent,,,,,,,,, +# Broadcast Parameters,,,,,,,,,,,,,,,,,,, +u,broad,OutsideTempB,Außentemperatur ,10,FE,B516,01,,,D2B,,,,,,,,, +u,broad,DateTimeB,Uhrzeit; Datum,10,FE,B516,00,,,BTI,,,,,,HDA,,, +u,broad,StatusHWC,Status Warmwasserkreis:Status; Ladung; SP1; Target; ,10,25,B504,0D,,,status;status;temp;temp0,,,,,,,,, +u,broad,StatusSOL ,KollTemp; Status; Füllung; Power,10,EC,B504,21,,,temp1;skip;status;percent;percent,,,,,,,,, +u,broad,StatusHC,VL RL status,10,08,B511,01, ,,temp1;temp1;status;status;skip;skip;status,,,,,,,,, diff --git a/fhem/contrib/EBUS/vrs620.ods b/fhem/contrib/EBUS/vrs620.ods new file mode 100644 index 000000000..b4fa89843 Binary files /dev/null and b/fhem/contrib/EBUS/vrs620.ods differ