2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-19 00:26:03 +00:00

COC state init support

git-svn-id: https://svn.fhem.de/fhem/trunk@4126 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2013-10-28 19:22:49 +00:00
parent 6399ccf6b2
commit eea49ac89e

View File

@ -1036,7 +1036,7 @@ sub CUL_HM_Parse($$) {##############################
$eventName = "motor" if($st eq "blindActuator"); $eventName = "motor" if($st eq "blindActuator");
$eventName = "dim" if($st eq "dimmer"); $eventName = "dim" if($st eq "dimmer");
my $action; #determine action my $action; #determine action
push @event, "timedOn:".($err&0x40)?"running":"off"; push @event, "timedOn:".(($err&0x40)?"running":"off");
if ($st ne "switch"){ if ($st ne "switch"){
push @event, "$eventName:up:$vs" if(($err&0x30) == 0x10); push @event, "$eventName:up:$vs" if(($err&0x30) == 0x10);
@ -3329,6 +3329,7 @@ sub CUL_HM_pushConfig($$$$$$$$@) {#generate messages to config data to register
$change .= $_." " if ($nrRd !~ m /$_/);# filter only changes $change .= $_." " if ($nrRd !~ m /$_/);# filter only changes
} }
next if (!$change);#no changes next if (!$change);#no changes
$change =~ s/00:00//;
$change =~ s/(\ |:)//g; $change =~ s/(\ |:)//g;
my $peerN; my $peerN;
$changed = 1;# yes, we did $changed = 1;# yes, we did
@ -3336,15 +3337,21 @@ sub CUL_HM_pushConfig($$$$$$$$@) {#generate messages to config data to register
if ($peerN){($peerAddr,$peerChn) = unpack('A6A2', CUL_HM_name2Id($peerN,$hash));} if ($peerN){($peerAddr,$peerChn) = unpack('A6A2', CUL_HM_name2Id($peerN,$hash));}
else {($peerAddr,$peerChn) = ('000000','00');} else {($peerAddr,$peerChn) = ('000000','00');}
CUL_HM_updtRegDisp($hash,$list,$peerAddr.$peerChn); CUL_HM_updtRegDisp($hash,$list,$peerAddr.$peerChn);
CUL_HM_PushCmdStack($hash, "++".$flag.'01'.$src.$dst.$chn.'05'. ############partition
$peerAddr.$peerChn.$list); # my @chSplit = unpack('(A28)*',$change);
$tl = length($change); my @chSplit = unpack('(A1120)*',$change);# makes max 40 lines, 280 byte
for(my $l = 0; $l < $tl; $l+=28) { foreach my $chSpl(@chSplit){
my $ml = $tl-$l < 28 ? $tl-$l : 28; CUL_HM_PushCmdStack($hash, "++".$flag.'01'.$src.$dst.$chn.'05'.
CUL_HM_PushCmdStack($hash, "++A001".$src.$dst.$chn."08". $peerAddr.$peerChn.$list);
substr($change,$l,$ml)); $tl = length($chSpl);
} for(my $l = 0; $l < $tl; $l+=28) {
CUL_HM_PushCmdStack($hash,"++A001".$src.$dst.$chn."06"); my $ml = $tl-$l < 28 ? $tl-$l : 28;
CUL_HM_PushCmdStack($hash, "++A001".$src.$dst.$chn."08".
substr($chSpl,$l,$ml));
}
CUL_HM_PushCmdStack($hash,"++A001".$src.$dst.$chn."06");
}
#########
} }
CUL_HM_qAutoRead($hash->{NAME},3) if ($changed); CUL_HM_qAutoRead($hash->{NAME},3) if ($changed);
} }
@ -3656,7 +3663,7 @@ sub CUL_HM_respPendTout($) {
delete $pHash->{mmcS}; delete $pHash->{mmcS};
} }
if ($hash->{IODev}->{STATE} ne "opened"){#IO errors if ($hash->{IODev}->{STATE} !~ m/^(opened|Initialized)$/){#IO errors
CUL_HM_eventP($hash,"IOerr"); CUL_HM_eventP($hash,"IOerr");
readingsSingleUpdate($hash,"state","IOerr",1); readingsSingleUpdate($hash,"state","IOerr",1);
} }