2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-05-02 00:48:53 +00:00

Ack repeated requests

git-svn-id: https://svn.fhem.de/fhem/trunk@3268 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2013-06-09 18:22:21 +00:00
parent aada07f1c1
commit f6dacf4d2a
2 changed files with 20 additions and 20 deletions

View File

@ -454,15 +454,17 @@ sub CUL_HM_Parse($$) {##############################
my $msgX = "No:$mNo - t:$mTp s:$src d:$dst ".($p?$p:""); my $msgX = "No:$mNo - t:$mTp s:$src d:$dst ".($p?$p:"");
if($shash->{lastMsg} && $shash->{lastMsg} eq $msgX) { #duplicate -lost 'ack'? if($shash->{lastMsg} && $shash->{lastMsg} eq $msgX) { #duplicate -lost 'ack'?
if($shash->{helper}{rpt} && #was responded if( $shash->{helper}{rpt} #was responded
$shash->{helper}{rpt}{IO} eq $ioName && #from same IO && $shash->{helper}{rpt}{IO} eq $ioName #from same IO
$shash->{helper}{rpt}{msg} eq $msg && #not from repeater && $shash->{helper}{rpt}{flg} eq substr($msg,5,1) #not from repeater
$shash->{helper}{rpt}{ts} < gettimeofday()-0.5){#todo: hack since HMLAN sends duplicate status messages # && $shash->{helper}{rpt}{ts} < gettimeofday()-0.5 #todo: hack since HMLAN sends duplicate status messages
){
my $ack = $shash->{helper}{rpt}{ack};#shorthand my $ack = $shash->{helper}{rpt}{ack};#shorthand
my $i=0; my $i=0;
CUL_HM_SndCmd(${$ack}[$i++],${$ack}[$i++]) while ($i<@{$ack}); CUL_HM_SndCmd(${$ack}[$i++],${$ack}[$i++]) while ($i<@{$ack});
$shash->{helper}{rpt}{ts} = gettimeofday(); $shash->{helper}{rpt}{ts} = gettimeofday();
Log GetLogLevel($name,4), "CUL_HM $name dup: repeat ack, dont process"; Log GetLogLevel($name,4), "CUL_HM $name dup: repeat ack, dont process";
Log 1,"General ############ duplicate";
} }
else{ else{
Log GetLogLevel($name,4), "CUL_HM $name dup: dont process"; Log GetLogLevel($name,4), "CUL_HM $name dup: dont process";
@ -1272,7 +1274,7 @@ sub CUL_HM_Parse($$) {##############################
if (@ack) {# send acks and store for repeat if (@ack) {# send acks and store for repeat
my $sRptHash = $modules{CUL_HM}{defptr}{$src}{helper}{rpt}; my $sRptHash = $modules{CUL_HM}{defptr}{$src}{helper}{rpt};
$sRptHash->{IO} = $ioName; $sRptHash->{IO} = $ioName;
$sRptHash->{msg} = $msg; $sRptHash->{flg} = substr($msg,5,1);
$sRptHash->{ack} = \@ack; $sRptHash->{ack} = \@ack;
$sRptHash->{ts} = gettimeofday(); $sRptHash->{ts} = gettimeofday();
my $i=0; my $i=0;

View File

@ -530,42 +530,40 @@ sub HMinfo_post($) {###########################################################
even though the commands are more a get funktion they are implemented even though the commands are more a get funktion they are implemented
as set to allow simple web interface usage<br> as set to allow simple web interface usage<br>
<ul> <ul>
<li><a href="#models">models</a><br> <li><a name="#models">models</a><br>
list all HM models that are supported in FHEM list all HM models that are supported in FHEM
</li> </li>
<li><a href="#param">param &lt;name&gt; &lt;name&gt;...</a><br> <li><a name="#param">param &lt;name&gt; &lt;name&gt;...</a><br>
returns a table parameter values (attribute, readings,...) returns a table parameter values (attribute, readings,...)
for all entities as a table for all entities as a table
</li> </li>
<li><a href="#regCheck">regCheck</a><br> <li><a name="#regCheck">regCheck</a><br>
performs a consistancy check on register readings for completeness performs a consistancy check on register readings for completeness
</li> </li>
<li><a href="#peerCheck">peerCheck</a><br> <li><a name="#peerCheck">peerCheck</a><br>
performs a consistancy check on peers. If a peer is set in one channel performs a consistancy check on peers. If a peer is set in one channel
this funktion will search wether the peer also exist on the opposit side. this funktion will search wether the peer also exist on the opposit side.
</li> </li>
<li><a href="#configCheck">configCheck</a><br> <li><a name="#configCheck">configCheck</a><br>
performs a consistancy check of HM settings. It includes regCheck and peerCheck performs a consistancy check of HM settings. It includes regCheck and peerCheck
</li> </li>
<li><a href="#peerXref">peerXref</a><br> <li><a name="#peerXref">peerXref</a><br>
provides a cross-reference on peerings, a kind of who-with-who summary over HM provides a cross-reference on peerings, a kind of who-with-who summary over HM
</li> </li>
<li><a href="#saveConfig">saveConfig</a><br> <li><a name="#saveConfig">saveConfig</a><br>
performs a save for all HM register setting. performs a save for all HM register setting and peers. See <a href="#CUL_HMsaveConfig">CUL_HM saveConfig</a>.
</li> </li>
<li><a href="#clearProtocol">clearProtocol</a><br> <li><a name="#clearProtocol">clearProtocol</a><br>
executes a set clear msgEvents on all HM devices executes a set clear msgEvents on all HM devices
</li> </li>
<li><a href="#clearReadings">clearReadings</a><br> <li><a name="#clearReadings">clearReadings</a><br>
executes a set clear readings on all HM devices executes a set clear readings on all HM devices
</li> </li>
<li><a href="#clearRssi">clearRssi</a><br> <li><a name="#clearRssi">clearRssi</a><br>
executes a set clear rssi on all HM devices executes a set clear rssi on all HM devices
</li> </li>
<li><a href="#autoReadReg">autoReadReg</a><br> <li><a name="#autoReadReg">autoReadReg</a><br>
stimulates a read of the configuration for the devices. stimulates a read of the configuration for the CUL_HM devices with attribut autoReadReg set to 1 or higher.
</li>
<li><a href="#sys">sys</a><br>
</li> </li>
</ul> </ul>
</ul> </ul>