From dd4bd1e4d78022ee622739f7f703c8b30981bb33 Mon Sep 17 00:00:00 2001 From: martinp876 Date: Sat, 4 Jan 2014 16:01:09 +0000 Subject: [PATCH] bug fixing git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@4560 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index e3721acbe..fc3ec8513 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -4254,15 +4254,17 @@ sub CUL_HM_getAssChnIds($) { #in: name out:ID list of assotiated channels # if device and no channel my ($name) = @_; my @chnIdList; - my $hash = $defs{$name}; - foreach my $channel (grep /^channel_/, keys %{$hash}){ - my $chnHash = $defs{$hash->{$channel}}; - push @chnIdList,$chnHash->{DEF} if ($chnHash); + if ($defs{$name}){ + my $hash = $defs{$name}; + foreach my $channel (grep /^channel_/, keys %{$hash}){ + my $chnHash = $defs{$hash->{$channel}}; + push @chnIdList,$chnHash->{DEF} if ($chnHash); + } + my $dId = CUL_HM_name2Id($name); + + push @chnIdList,$dId."01" if (length($dId) == 6 && !$hash->{channel_01}); + push @chnIdList,$dId if (length($dId) == 8); } - my $dId = CUL_HM_name2Id($name); - - push @chnIdList,$dId."01" if (length($dId) == 6 && !$hash->{channel_01}); - push @chnIdList,$dId if (length($dId) == 8); return sort(@chnIdList); } @@ -5332,16 +5334,20 @@ sub CUL_HM_autoReadReady($){# capacity for autoread available? sub CUL_HM_getAttrInt($@){#return attrValue as integer my ($name,$attrName,$default) = @_; $default = 0 if (!defined $default); - my $val = ($attr{$name} && - $attr{$name}{$attrName}) + if($defs{$name}){ + my $val = ($attr{$name}{$attrName}) ?$attr{$name}{$attrName} :""; - no warnings 'numeric'; - my $devN = $defs{$name}{device}?$defs{$name}{device}:$name; - $val = int($attr{$devN}{$attrName}?$attr{$devN}{$attrName}:$default)+0 - if($val eq ""); - use warnings 'numeric'; - return substr($val,0,1); + no warnings 'numeric'; + my $devN = $defs{$name}{device}?$defs{$name}{device}:$name; + $val = int($attr{$devN}{$attrName}?$attr{$devN}{$attrName}:$default)+0 + if($val eq ""); + use warnings 'numeric'; + return substr($val,0,1); + } + else{ + return $default; + } } #+++++++++++++++++ external use +++++++++++++++++++++++++++++++++++++++++++++++