From bc6acd950779111a045adb3568cbd0ec3ba9b997 Mon Sep 17 00:00:00 2001 From: martinp876 <> Date: Sun, 16 Mar 2014 19:03:09 +0000 Subject: [PATCH] bugs with writing reg to fhem-channels, HMinfo filters git-svn-id: https://svn.fhem.de/fhem/trunk@5240 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 9 +++++---- fhem/FHEM/98_HMinfo.pm | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index fb197d989..134e4da61 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -3012,9 +3012,8 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ ||($peerChnIn)) {# and if requested by user return "Peer not specified" if ($peerChnIn eq ""); $peerId = CUL_HM_peerChId($peerChnIn,$dst); - $peerChn = ((length($peerId) == 8)?substr($peerId,6,2):"01"); - $peerId = substr($peerId,0,6); - return "Peer not valid" if (!$peerId); + ($peerId,$peerChn) = unpack 'A6A2',$peerId.'01'; + return "Peer not valid" if (length ($peerId) < 6); } elsif($list == 0){ $lChn = "00"; @@ -3223,7 +3222,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ F=>8,x9=>9,x10=>10,x11=>11,x12=>12,x13=>13,x14=>14,x15=>15); my @symbList = split(',',$symb); - my $symbAdd = ""; + my $symbAdd = 0; foreach my $symb (@symbList){ if (!defined($symbol{$symb})){# wrong parameter return "'$symb ' unknown. Select one of ".join(" ",sort keys(%symbol)); @@ -5031,6 +5030,8 @@ sub CUL_HM_name2Id(@) { #in: name or HMid ==>out: HMid, "" if no match return "000000" if($name eq "broadcast"); #broadcast return substr($idHash->{DEF},0,6).sprintf("%02X",$1) if($idHash && ($name =~ m/self(.*)/)); + return CUL_HM_IOid($idHash).sprintf("%02X",$1) + if($idHash && ($name =~ m/fhem(.*)/)); return AttrVal($name,"hmId",""); # could be IO device } sub CUL_HM_id2Name($) { #in: name or HMid out: name diff --git a/fhem/FHEM/98_HMinfo.pm b/fhem/FHEM/98_HMinfo.pm index be7a2a6fd..86b9592d0 100644 --- a/fhem/FHEM/98_HMinfo.pm +++ b/fhem/FHEM/98_HMinfo.pm @@ -739,7 +739,6 @@ sub HMinfo_GetFn($@) {######################################################### my ($hash,$name,$cmd,@a) = @_; my ($opt,$optEmpty,$filter) = ("",1,""); my $ret; - if (@a && ($a[0] =~ m/^-/) && ($a[0] !~ m/^-f$/)){# options provided $opt = $a[0]; $optEmpty = ($opt =~ m/e/)?1:0; @@ -1214,6 +1213,8 @@ sub HMinfo_SetFn($@) {######################################################### ### redirect set commands to get - thus the command also work in webCmd elsif(HMinfo_GetFn($hash,$name,"?") =~ m/\b$cmd\b/){##---------------- + unshift @a,$filter if ($filter); + unshift @a,$opt if ($opt); $ret = HMinfo_GetFn($hash,$name,$cmd,@a); }