2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

improve dummy handling

git-svn-id: https://svn.fhem.de/fhem/trunk@6403 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2014-08-13 18:33:04 +00:00
parent fc376368cb
commit dfa16d169f
2 changed files with 17 additions and 8 deletions

View File

@ -275,9 +275,15 @@ sub HMLAN_Attr(@) {############################################################
RemoveInternalTimer( "keepAliveCk:".$name);
RemoveInternalTimer( "keepAlive:".$name);
DevIo_CloseDev($defs{$name});
HMLAN_condUpdate($defs{$name},251);#set dummy
HMLAN_condUpdate($defs{$name},251);#state: dummy
}
else{
if ($cmd eq "set"){
$attr{$name}{$aName} = $aVal;
}
else{
delete $attr{$name}{$aName};
}
DevIo_OpenDev($defs{$name}, 1, "HMLAN_DoInit");
}
}
@ -433,7 +439,7 @@ sub HMLAN_Write($$$) {#########################################################
HMLAN_SimpleWrite($hash,$msg);
return;
}
elsif (length($msg)>22){
elsif (length($msg)>21){
my ($mtype,$src,$dst) = (substr($msg, 8, 2),
substr($msg, 10, 6),
substr($msg, 16, 6));
@ -752,8 +758,7 @@ sub HMLAN_Ready($) {###########################################################
}
sub HMLAN_SimpleWrite(@) {#####################################################
my ($hash, $msg, $nonl) = @_;
return if(!$hash || AttrVal($hash->{NAME}, "dummy", undef));
return if(!$hash || AttrVal($hash->{NAME}, "dummy", 0) != 0);
my $name = $hash->{NAME};
my $len = length($msg);

View File

@ -5028,8 +5028,11 @@ sub CUL_HM_sndIfOpen($) {
sub CUL_HM_SndCmd($$) {
my ($hash, $cmd) = @_;
$hash = CUL_HM_getDeviceHash($hash);
return if( AttrVal($hash->{NAME},"ignore","")
|| AttrVal($hash->{NAME},"dummy",""));
if( AttrVal($hash->{NAME},"ignore",0) != 0
|| AttrVal($hash->{NAME},"dummy" ,0) != 0){
CUL_HM_eventP($hash,"dummy");
return;
}
CUL_HM_assignIO($hash) ;
if(!defined $hash->{IODev} ||!defined $hash->{IODev}{NAME}){
CUL_HM_eventP($hash,"IOerr");
@ -5397,7 +5400,7 @@ sub CUL_HM_eventP($$) {#handle protocol events
my ($evntCnt,undef) = split(' last_at:',$evnt);
$nAttr->{"prot".$evntType} = ++$evntCnt." last_at:".TimeNow();
if ($evntType =~ m/(Nack|ResndFail|IOerr)/){# unrecoverable Error
if ($evntType =~ m/(Nack|ResndFail|IOerr|dummy)/){# unrecoverable Error
CUL_HM_UpdtReadSingle($hash,"state",$evntType,1);
$hash->{helper}{prt}{bErr}++;
$nAttr->{protCmdDel} = 0 if(!$nAttr->{protCmdDel});
@ -5423,6 +5426,7 @@ sub CUL_HM_eventP($$) {#handle protocol events
sub CUL_HM_protState($$){
my ($hash,$state) = @_;
my $name = $hash->{NAME};
my $sProcIn = $hash->{helper}{prt}{sProc};
if ($sProcIn == 3){#FW update processing
# do not change state - commandstack is bypassed