From 88c981d25c42b621382c118cf1b83459e5a08f3d Mon Sep 17 00:00:00 2001 From: martinp876 <> Date: Sun, 28 Jul 2013 12:08:21 +0000 Subject: [PATCH] enter rain sensor RD git-svn-id: https://svn.fhem.de/fhem/trunk@3520 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 32 ++++++++++++++++++++++++++++++++ fhem/FHEM/HMConfig.pm | 24 ++++++++++++++++-------- 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index d3b4c61a3..29451a4ec 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -422,6 +422,10 @@ sub CUL_HM_Attr(@) {################################# # translate level to readable my %lvlStr = ( md =>{ "HM-SEC-WDS" =>{"00"=>"dry" ,"64"=>"damp" ,"C8"=>"wet" } ,"HM-CC-SCD" =>{"00"=>"normal" ,"64"=>"added" ,"C8"=>"addedStrong"} + ,"HM-Sen-RD-O" =>{"00"=>"dry" ,"C8"=>"rain"} + } + ,mdCh=>{ "HM-Sen-RD-O01" =>{"00"=>"dry" ,"C8"=>"rain"} + ,"HM-Sen-RD-O02" =>{"00"=>"on" ,"C8"=>"off"} } ,st =>{ "smokeDetector" =>{"01"=>"no alarm","C7"=>"tone off","C8"=>"Smoke Alarm"} ,"threeStateSensor"=>{"00"=>"closed" ,"64"=>"tilted" ,"C8"=>"open"} @@ -836,6 +840,34 @@ sub CUL_HM_Parse($$) {############################## } } } + elsif($st eq "sensRain") {################################################### + if (($mTp eq "02" && $p =~ m/^01/) || #Ack_Status + ($mTp eq "10" && $p =~ m/^06/)) { #Info_Status + + my ($subType,$chn,$val,$err) = ($1,hex($2),$3,hex($4)) + if($p =~ m/^(..)(..)(..)(..)/); + $chn = sprintf("%02X",$chn&0x3f); + my $chId = $src.$chn; + $shash = $modules{CUL_HM}{defptr}{$chId} + if($modules{CUL_HM}{defptr}{$chId}); + my $mdCh = $model.$chn; + if($lvlStr{mdCh}{$mdCh} && $lvlStr{mdCh}{$mdCh}{$val}){ + $val = $lvlStr{mdCh}{$mdCh}{$val}; + } + else{ + $val = hex($val)/2; + } + push @event, "state:$val"; + } + elsif ($mTp eq "41") { #event + my ($chn,$bno) = (hex($1),hex($2)) if($p =~ m/^(..)(..)/); + $chn = sprintf("%02X",$chn&0x3f); + my $chId = $src.$chn; + $shash = $modules{CUL_HM}{defptr}{$chId} + if($modules{CUL_HM}{defptr}{$chId}); + push @event,"trigger:$bno"; + } + } elsif($st =~ m /^(switch|dimmer|blindActuator)$/) {########################## if (($mTp eq "02" && $p =~ m/^01/) || # handle Ack_Status ($mTp eq "10" && $p =~ m/^06/)) { # or Info_Status message here diff --git a/fhem/FHEM/HMConfig.pm b/fhem/FHEM/HMConfig.pm index fe827ac6b..3928ae434 100644 --- a/fhem/FHEM/HMConfig.pm +++ b/fhem/FHEM/HMConfig.pm @@ -195,7 +195,7 @@ my %culHmModel=( "00A4" => {name=>"HM-LC-Dim1T-Pl-2" ,st=>'dimmer' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",}, "00A5" => {name=>"HM-RC-Sec4-2" ,st=>'remote' ,cyc=>'' ,rxt=>'c:l' ,lst=>'1,4' ,chn=>"Btn:1:2,BTN_T:3:1,BTN_A:4:1",},#only 1 and 2 canbe peered??? "00A6" => {name=>"HM-RC-Key4-2" ,st=>'remote' ,cyc=>'' ,rxt=>'c:l' ,lst=>'1,4' ,chn=>"Btn:1:2,BTN_T:3:1,BTN_A:4:1",},#only 1 and 2 canbe peered??? - "00A7" => {name=>"HM-Sen-RD-O" ,st=>'' ,cyc=>'' ,rxt=>'' ,lst=>'1:1,4:1' ,chn=>"Rain:1:1,Sw:2:2",}, + "00A7" => {name=>"HM-Sen-RD-O" ,st=>'sensRain' ,cyc=>'' ,rxt=>'' ,lst=>'1:1,4:1' ,chn=>"Rain:1:1,Heating:2:2",}, "00A8" => {name=>"HM-WDS30-OT2-SM" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"Th:1:4,Weather:5:5",}, "00A9" => {name=>"HM-PB-6-WM55" ,st=>'remote' ,cyc=>'' ,rxt=>'c' ,lst=>'1,4' ,chn=>"Btn:1:6",}, "00AB" => {name=>"HM-LC-SW4-BA-PCB" ,st=>'switch' ,cyc=>'' ,rxt=>'b' ,lst=>'1,3' ,chn=>"Sw:1:4",}, @@ -580,10 +580,11 @@ my %culHmRegType = ( peerNeedsBurst =>1 }, threeStateSensor =>{cyclicInfoMsg =>1, transmDevTryMax =>1, - ,transmitTryMax =>1, + transmitTryMax =>1, peerNeedsBurst =>1,expectAES =>1 }, - tipTronic =>{cyclicInfoMsg =>1,cyclicInfoMsgDis=>1,localResDis =>1,RS485IdleTime =>1,} + sensRain =>{transmDevTryMax =>1,localResDis =>1}, + tipTronic =>{cyclicInfoMsg =>1,cyclicInfoMsgDis=>1,localResDis =>1,RS485IdleTime =>1} ); #clones - - - - - - - - - - - - - - - $culHmRegType{pushButton} = $culHmRegType{remote}; @@ -764,6 +765,7 @@ my %culHmRegChan = (# if channelspecific then enter them here }, "Schueco_263-xxx02" =>{transmitTryMax =>1,eventDlyTime =>1}, "Schueco_263-xxx03" =>{ttJtOn =>1,ttJtOff =>1}, + "HM-Sen-RD-O01" =>{eventFilterTime =>1,transmitTryMax =>1,peerNeedsBurst =>1,expectAES =>1}, ); #clones - - - - - - - - - - - - - - - $culHmRegChan{"HM-RC-19-B12"} = $culHmRegChan{"HM-RC-1912"}; @@ -908,12 +910,18 @@ my %culHmChanSets = ( controlMode => "[manual|auto|central|party]", decalcDay => "day", sysTime => "" }, - "HM-SEC-WIN01" =>{ stop =>"", - level =>" ..."}, - "HM-OU-CFM-PL01" =>{ led => "[,...] []"}, - "HM-OU-CFM-PL02" =>{ playTone => "[,...] []"}, + "HM-SEC-WIN01" =>{ stop =>"", + level =>" ..."}, + "HM-OU-CFM-PL01" =>{ led => "[,...] []"}, + "HM-OU-CFM-PL02" =>{ playTone => "[,...] []"}, - "WDF-solar01" =>{ peerChan =>" ... single [set|unset] [actor|remote|both]"} + "WDF-solar01" =>{ peerChan =>" ... single [set|unset] [actor|remote|both]"}, + "HM-Sen-RD-O01" =>{ peerChan =>" ... single [set|unset] [actor|remote|both]"}, + "HM-Sen-RD-O02" =>{ "on-for-timer" =>"" + ,"on-till" =>"