From dac0506ab5892a541920af174a9a89b9f3a4b439 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Fri, 18 Mar 2011 20:33:08 +0000 Subject: [PATCH] Create shadow device even in dummy mode git-svn-id: https://svn.fhem.de/fhem/trunk@868 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_HMLAN.pm | 8 ++++---- fhem/FHEM/10_CUL_HM.pm | 33 +++++++++++++++++---------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/fhem/FHEM/00_HMLAN.pm b/fhem/FHEM/00_HMLAN.pm index 5fa9e860f..97c3111c3 100755 --- a/fhem/FHEM/00_HMLAN.pm +++ b/fhem/FHEM/00_HMLAN.pm @@ -63,7 +63,7 @@ HMLAN_Define($$) my $name = $a[0]; my $dev = $a[2]; $dev .= ":1000" if($dev !~ m/:/); - $attr{$name}{hmId} = sprintf("%06X", time()&0xffffff); + $attr{$name}{hmId} = sprintf("%06X", time() % 0xffffff); if($dev eq "none") { Log 1, "$name device is none, commands will be echoed only"; @@ -200,12 +200,12 @@ HMLAN_Write($$$) my $dst = substr($msg, 16, 6); if(!$lhash{$dst} && $dst ne "000000") { - HMLAN_SimpleWrite($hash, "+$dst,00,00,\r\n+$dst,00,00,\r\n+112A29"); + HMLAN_SimpleWrite($hash, "+$dst,00,00,\r\n+$dst,00,00,\r\n+$dst"); HMLAN_SimpleWrite($hash, "-$dst"); - HMLAN_SimpleWrite($hash, "+$dst,00,00,\r\n+$dst,00,00,\r\n+112A29"); + HMLAN_SimpleWrite($hash, "+$dst,00,00,\r\n+$dst,00,00,\r\n+$dst"); $lhash{$dst} = 1; } - my $tm = int(gettimeofday()*1000) & 0xffffffff; + my $tm = int(gettimeofday()*1000) % 0xffffffff; $msg = sprintf("S%08X,00,00000000,01,%08X,%s", $tm, $tm, substr($msg, 4)); HMLAN_SimpleWrite($hash, $msg); diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index d642b046a..a408e7091 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -360,7 +360,7 @@ CUL_HM_Parse($$) } - } elsif($model eq "KS550" || $model eq "HM-WDS100-C6-O") { + } elsif($model eq "KS550" || $model eq "HM-WDS100-C6-O") { ############ if($cmd eq "8670" && $p =~ m/^(....)(..)(....)(....)(..)(..)(..)/) { @@ -392,7 +392,7 @@ CUL_HM_Parse($$) } - } elsif($model eq "HM-CC-TC") { + } elsif($model eq "HM-CC-TC") { #################################### if($cmd eq "8670" && $p =~ m/^(....)(..)/) { my ( $t, $h) = @@ -430,7 +430,7 @@ CUL_HM_Parse($$) if($id eq $dst && $cmd ne "8002"); - } elsif($st eq "KFM" && $model eq "KFM-Sensor") { + } elsif($st eq "KFM" && $model eq "KFM-Sensor") { ################### if($p =~ m/814(.)0200(..)(..)(..)/) { my ($k_cnt, $k_v1, $k_v2, $k_v3) = ($1,$2,$3,$4); @@ -731,6 +731,19 @@ CUL_HM_Pair(@) "CUL_HM pair: $name $stt, model $attr{$name}{model} ". "serialNr $attr{$name}{serialNr}"; + # Create shadow device for multi-channel + if($stn eq "switch" && + $attr{$name}{devInfo} =~ m,(..)(..)(..), ) { + my ($b1, $b2, $b3) = (hex($1), hex($2), $3); + for(my $i = $b2+1; $i<=$b1; $i++) { + my $nSrc = sprintf("%s%02X", $src, $i); + if(!defined($modules{CUL_HM}{defptr}{$nSrc})) { + delete($defs{"global"}{INTRIGGER}); # Hack + DoTrigger("global", "UNDEFINED ${name}_CHN_$i CUL_HM $nSrc"); + } + } + } + # Abort if we are not authorized if($dst eq "000000") { if(!$iohash->{hmPair}) { @@ -767,19 +780,6 @@ CUL_HM_Pair(@) } - # Create shadow device for multi-channel - if($stn eq "switch" && - $attr{$name}{devInfo} =~ m,(..)(..)(..), ) { - my ($b1, $b2, $b3) = (hex($1), hex($2), $3); - for(my $i = $b2+1; $i<=$b1; $i++) { - my $nSrc = sprintf("%s%02X", $src, $i); - if(!defined($modules{CUL_HM}{defptr}{$nSrc})) { - delete($defs{"global"}{INTRIGGER}); # Hack - DoTrigger("global", "UNDEFINED ${name}_CHN_$i CUL_HM $nSrc"); - } - } - } - return ""; } @@ -834,6 +834,7 @@ CUL_HM_Resend($) { my $hash = shift; my $name = $hash->{NAME}; + return if(!$hash->{ackCmdSent}); # Double timer? if($hash->{ackCmdSent} == 3) { delete($hash->{ackCmdSent}); delete($hash->{ackWaiting});