From ad0ca0156c4581ad574f4bd5d70d85c6e90cf86d Mon Sep 17 00:00:00 2001 From: martinp876 Date: Wed, 13 Aug 2014 06:42:14 +0000 Subject: [PATCH] bug fixing git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@6400 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 6 +++--- fhem/FHEM/98_HMinfo.pm | 36 ++++++++++++++++++------------------ fhem/FHEM/HMConfig.pm | 1 + 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index e05484202..d8d772b16 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -1920,7 +1920,7 @@ sub CUL_HM_Parse($$) {######################################################### $tName =~ s/,.*//; CUL_HM_updtSDTeam($tName,$name,$state); } - elsif ($mTp eq "40" || $mTp eq "41"){ #autonomous event + elsif ($mTp =~ m /^4[01]/){ #autonomous event CUL_HM_parseSDteam($mTp,$src,$dst,$p); } elsif ($mTp eq "01"){ #Configs @@ -5274,7 +5274,7 @@ sub CUL_HM_FWupdateSteps($){#steps for FW update if ($step == 0){#check bootloader entered - now change speed return "" if ($mIn =~ m/$mNoA..02$dst${id}00/); - Log3 $name,2,"CUL_HM fwUpdate $name entered mode - switch speed"; + Log3 $name,2,"CUL_HM fwUpdate $name entered mode. IO-speed: fast"; $mNo = (++$mNo)%256; $mNoA = sprintf("%02X",$mNo); CUL_HM_SndCmd($hash,"${mNoA}00CB$id${dst}105B11F81547"); # CUL_HM_SndCmd($hash,"${mNoA}20CB$id${dst}105B11F815470B081A1C191D1BC71C001DB221B623EA"); @@ -5356,6 +5356,7 @@ sub CUL_HM_FWupdateEnd($){#end FW update CUL_HM_respPendRm($hash); CUL_HM_protState($hash,"CMDs_done_FWupdate"); + Log3 $hash->{NAME},2,"CUL_HM fwUpdate $hash->{NAME} end. IO-speed: normal"; } sub CUL_HM_FWupdateSpeed($$){#set IO speed my ($name,$speed) = @_; @@ -7011,7 +7012,6 @@ sub CUL_HM_peerUsed($) {# are peers expected? if ( ($l =~ m/^(p|3|4)$/ && !$c ) # 3,4,p without chanspec ||($c && $c =~ m/$cNo/ )){ return (AttrVal($name,"peerIDs","") =~ m/00000000/?1:2); - return 1; } } } diff --git a/fhem/FHEM/98_HMinfo.pm b/fhem/FHEM/98_HMinfo.pm index bb11f162f..f573e1980 100644 --- a/fhem/FHEM/98_HMinfo.pm +++ b/fhem/FHEM/98_HMinfo.pm @@ -368,7 +368,6 @@ sub HMinfo_regCheck(@) { ###################################################### sub HMinfo_peerCheck(@) { ##################################################### my @entities = @_; my @peerIDsFail; - my @peerIDsEmpty; my @peerIDnotDef; my @peerIDsNoPeer; my @peerIDsTrigUnp; @@ -377,39 +376,41 @@ sub HMinfo_peerCheck(@) { ##################################################### my @peerIDsAES; foreach my $eName (@entities){ next if (!$defs{$eName}{helper}{role}{chn});#device has no channels - my $peersUsed = CUL_HM_peerUsed($eName); - next if ($peersUsed == 0); + my $peersUsed = CUL_HM_peerUsed($eName);# + next if ($peersUsed == 0);# no peers expected - my $peerIDs = AttrVal($eName,"peerIDs",undef); + my $peerIDs = AttrVal($eName,"peerIDs",""); $peerIDs =~ s/00000000,//; - my @failTrig = map {CUL_HM_name2Id(substr($_,8))} - grep /^trigDst_/, - keys %{$defs{$eName}{READINGS}}; - foreach (HMinfo_noDup(@failTrig)){ - next if (!$_); + foreach (grep /^......$/, HMinfo_noDup(map {CUL_HM_name2Id(substr($_,8))} + grep /^trigDst_/, + keys %{$defs{$eName}{READINGS}})){ push @peerIDsTrigUnp,"triggerUnpeered: ".$eName.":".$_ if( ($peerIDs && $peerIDs !~ m/$_/) ||("CCU-FHEM" ne AttrVal(CUL_HM_id2Name(substr($_,0,6)),"model",""))); push @peerIDsTrigUnd,"triggerUndefined: ".$eName.":".$_ if(!$modules{CUL_HM}{defptr}{$_}); } - - if (!$peerIDs){ # no peers - is this correct? - push @peerIDsEmpty,"empty: ".$eName if ($peersUsed != 3); - } - elsif($peersUsed == 2){#peerList incomplete + + if($peersUsed == 2){#peerList incomplete push @peerIDsFail,"incomplete: ".$eName.":".$peerIDs; } - else{# work on a valid list: + else{# work on a valid list my $id = $defs{$eName}{DEF}; my ($devId,$chn) = unpack 'A6A2',$id; my $devN = CUL_HM_id2Name($devId); my $st = AttrVal($devN,"subType","");# from Device my $md = AttrVal($devN,"model",""); next if ($st eq "repeater"); + if ($st eq 'smokeDetector'){ + push @peeringStrange,$eName." not peered!! add SD to any team !!" + if(!$peerIDs); + } foreach my $pId (split",",$peerIDs){ - next if ($pId eq "00000000" ||$pId =~m /$devId/); - + next if ($pId =~m /$devId/); + if (length($pId) != 8){ + push @peerIDnotDef,$eName." id:$pId invalid format"; + next; + } my ($pDid,$pChn) = unpack'A6A2',$pId; if (!$modules{CUL_HM}{defptr}{$pId} && (!$pDid || !$modules{CUL_HM}{defptr}{$pDid})){ @@ -453,7 +454,6 @@ sub HMinfo_peerCheck(@) { ##################################################### } } my $ret = ""; - $ret .="\n\n peer list not read. Use getConfig to read it." ."\n ".(join "\n ",sort @peerIDsEmpty )if(@peerIDsEmpty); $ret .="\n\n peer list incomplete. Use getConfig to read it." ."\n ".(join "\n ",sort @peerIDsFail )if(@peerIDsFail); $ret .="\n\n peer not defined" ."\n ".(join "\n ",sort @peerIDnotDef )if(@peerIDnotDef); $ret .="\n\n peer not verified. Check that peer is set on both sides"."\n ".(join "\n ",sort @peerIDsNoPeer )if(@peerIDsNoPeer); diff --git a/fhem/FHEM/HMConfig.pm b/fhem/FHEM/HMConfig.pm index b9061c8e3..64ecb34cf 100644 --- a/fhem/FHEM/HMConfig.pm +++ b/fhem/FHEM/HMConfig.pm @@ -874,6 +874,7 @@ $culHmRegType{pushButton} = $culHmRegType{remote}; "HM-LC-SW1-BA-PCB" =>{ lowBatLimitBA =>1,ledMode =>1}, "HM-LC-SW4-BA-PCB" =>{ lowBatLimitBA =>1,ledMode =>1,localResDis =>1}, "HM-MOD-Re-8" =>{ lowBatLimitBA3 =>1,ledMode =>1}, + "HM-ES-PMSw1-Pl" =>{sign =>1}, "HM-Sys-sRP-Pl" =>{ compMode =>1}, "KFM-Display" =>{ CtDlyOn =>1,CtDlyOff =>1