From 32eab213bb8404650bf76c35d992f1e137fc9d92 Mon Sep 17 00:00:00 2001 From: martinp876 <> Date: Sun, 2 Jun 2013 17:53:42 +0000 Subject: [PATCH] add TC battery reading git-svn-id: https://svn.fhem.de/fhem/trunk@3242 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index 64db4eefb..b52f53c1f 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -557,8 +557,8 @@ sub CUL_HM_Parse($$) {############################## elsif(($mTp eq '02' &&$sType eq '01')|| # ackStatus ($mTp eq '10' &&$sType eq '06')){ # infoStatus $chn = substr($p,2,2); - my $temp = substr($p,4,2); + my $err = hex(substr($p,6,2)); my $dTemp = ($temp eq '00')?'off': (($temp eq 'C8')?'on' : sprintf("%0.1f", hex($temp)/2)); @@ -573,6 +573,7 @@ sub CUL_HM_Parse($$) {############################## # CUL_HM_Set($chnHash,$chnName,"desired-temp",$dTemp) if($mode =~ m /central/ && $mTp eq '10'); } push @event, "desired-temp:" .$dTemp; + push @event, "battery:".($err&0x80?"low":"ok"); } elsif($mTp eq "10"){ # Config change report $chn = substr($p,2,2); @@ -1881,6 +1882,7 @@ sub CUL_HM_Set($@) { CUL_HM_PushCmdStack($hash,'++'.$flag.'01'.$id.$dst.$chn.$set. substr($pID,0,6).$pCh1.$pCh2); } + CUL_HM_queueAutoRead($name) if (2 < CUL_HM_getAttrInt($name,"autoReadReg")); } elsif($cmd =~ m/^(regBulk|getRegRaw)$/) { ############################### reg my ($list,$addr,$data,$peerID); @@ -2513,6 +2515,7 @@ sub CUL_HM_Set($@) { "++".$flag."01${id}${dst}${bStr}$cmdB${peerDst}${peerChn}00"); CUL_HM_pushConfig($hash,$id, $dst,$b,$peerDst,hex($peerChn),4,$burst) if($md ne "HM-CC-TC"); + CUL_HM_queueAutoRead($name) if (2 < CUL_HM_getAttrInt($name,"autoReadReg")); } } } @@ -2525,6 +2528,8 @@ sub CUL_HM_Set($@) { my $peerFlag = CUL_HM_getFlag($peerHash); CUL_HM_PushCmdStack($peerHash, sprintf("++%s01%s%s%s%s%s%02X%02X", $peerFlag,$id,$peerDst,$peerChn,$cmdB,$dst,$b2,$b1 )); + CUL_HM_queueAutoRead($peerHash->{name}) + if (2 < CUL_HM_getAttrInt($peerHash->{name},"autoReadReg")); } } return ("",1) if ($target && $target eq "remote");#Nothing to transmit for actor