From d72ca7703e1456cbb625f095335b84d29f9edbb0 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Sun, 24 Oct 2010 18:36:54 +0000 Subject: [PATCH] Special fhtsoftbuffer handling for CUL git-svn-id: https://fhem.svn.sourceforge.net/svnroot/fhem/trunk/fhem@735 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- FHEM/11_FHT.pm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/FHEM/11_FHT.pm b/FHEM/11_FHT.pm index cb97a68e0..472ab8a74 100755 --- a/FHEM/11_FHT.pm +++ b/FHEM/11_FHT.pm @@ -565,7 +565,6 @@ doSoftBuffer($) $count++; my $h = $io->{SOFTBUFFER}{$key}; my $name = $h->{HASH}->{NAME}; - if($h->{NSENT}) { next if($now-$h->{SENDTIME} < $retryafter); my $retry = $attr{$name}{retrycount}; @@ -575,6 +574,21 @@ doSoftBuffer($) delete($io->{SOFTBUFFER}{$key}); next; } + + } + # Check if it is still in th CUL buffer. + if($io->{TYPE} eq "CUL") { + my $cul = CallFn($io->{NAME}, "GetFn", $io, (" ", "raw", "T02")); + my $arg = uc($h->{ARG}); + $arg =~ s/^020183//; + $arg =~ s/(....)/,$1/g; + $arg =~ s/,(....),/$1:/; + $arg = uc($arg); + if($cul =~ m/$arg/) { + Log GetLogLevel($name,3), + "$name set $h->{CMD}: still in the culfw buffer, wont send"; + next; + } } $fhzbuflen = getFhtBuffer($io) if($fhzbuflen == -999); @@ -587,7 +601,6 @@ doSoftBuffer($) $fhzbuflen -= $arglen; $h->{SENDTIME} = $now; $h->{NSENT}++; - } if($count && !$io->{SOFTBUFFERTIMER}) {