2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 12:49:34 +00:00

stable normal transmit, add get reg all and bitwise aram setting

git-svn-id: https://svn.fhem.de/fhem/trunk@1998 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2012-10-21 15:46:34 +00:00
parent 15eaa12f03
commit c3f2d30e33
3 changed files with 3196 additions and 3124 deletions

View File

@ -45,6 +45,7 @@ HMLAN_Initialize($)
"loglevel:0,1,2,3,4,5,6 addvaltrigger " . "loglevel:0,1,2,3,4,5,6 addvaltrigger " .
"hmId hmKey " . "hmId hmKey " .
"hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger"; "hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger";
} }
##################################### #####################################
@ -191,6 +192,8 @@ HMLAN_ReadAnswer($$$)
} }
} }
my %lhash;
##################################### #####################################
sub sub
HMLAN_Write($$$) HMLAN_Write($$$)
@ -198,7 +201,7 @@ HMLAN_Write($$$)
my ($hash,$fn,$msg) = @_; my ($hash,$fn,$msg) = @_;
my $dst = substr($msg, 16, 6); my $dst = substr($msg, 16, 6);
if(hex(substr($msg, 6, 2))&0x01) { # wakeup flag set, shake actor awake { # occationally necessary. Works fine if we do it always
HMLAN_SimpleWrite($hash, "+$dst,00,00,"); HMLAN_SimpleWrite($hash, "+$dst,00,00,");
HMLAN_SimpleWrite($hash, "+$dst,00,00,"); HMLAN_SimpleWrite($hash, "+$dst,00,00,");
HMLAN_SimpleWrite($hash, "+$dst,00,00,"); HMLAN_SimpleWrite($hash, "+$dst,00,00,");
@ -207,16 +210,15 @@ HMLAN_Write($$$)
HMLAN_SimpleWrite($hash, "+$dst,00,00,"); HMLAN_SimpleWrite($hash, "+$dst,00,00,");
HMLAN_SimpleWrite($hash, "+$dst,00,00,"); HMLAN_SimpleWrite($hash, "+$dst,00,00,");
HMLAN_SimpleWrite($hash, "+$dst,00,00,"); HMLAN_SimpleWrite($hash, "+$dst,00,00,");
$lhash{$dst} = 1;
} }
my $tm = int(gettimeofday()*1000) % 0xffffffff; my $tm = int(gettimeofday()*1000) % 0xffffffff;
$msg = sprintf("S%08X,00,00000000,01,%08X,%s", $msg = sprintf("S%08X,00,00000000,01,%08X,%s",$tm, $tm, substr($msg, 4));
$tm, $tm, substr($msg, 4));
HMLAN_SimpleWrite($hash, $msg); HMLAN_SimpleWrite($hash, $msg);
# Avoid problems with structure set # Avoid problems with structure set
# TODO: rewrite it to use a queue+internaltimer like the CUL # TODO: rewrite it to use a queue+internaltimer like the CUL
select(undef, undef, undef, 0.01); # needed for structure set by meesus. select(undef, undef, undef, 0.01); # needed for structure set by meesus.
# may not be needed at all if acks are handled properly
} }
##################################### #####################################

File diff suppressed because it is too large Load Diff

View File

@ -3429,6 +3429,19 @@ A line ending with \ will be concatenated with the next one, so long lines
General commands (available to most hm devices): General commands (available to most hm devices):
<ul> <ul>
<li><B>actiondetect &lt;[hhh:mm]|off&gt;</B><a name="CUL_HMactiondetect"></a><br>
Supports 'alive' or better 'not alive' detection for devices. [hhh:mm] is the maxumin silent time for the device. Upon no message received in this period an event will be raised "&lt;device&gt; is dead". If the device sends again another notification is posted "&lt;device&gt; is alive". <br>
This actiondetect will be autocreated for each device with build in cyclic status report. <br>
Controlling entity is a pseudo device "ActionDetector" with HMId "000000". <br>
Due to performance considerations the report latency is set to 600sec (10min). It can be controlled by the attribute "actCycle" of "ActionDetector".<br>
Once entered to the supervision the HM device has 2 attributes:<br>
<ul>
actStatus: activity status of the device<br>
actCycle: detection period [hhh.mm]<br>
</ul>
Furthermore the overall function can be viewed checking out the "ActionDetector" entity. Here the status of all entities is present in the READING section. <br>
Note: This function can be enabled for devices with non-cyclic messages as well. It is up to the user to enter a reasonable cycletime.
</li>
<li><B>getConfig</B><a name="CUL_HMgetConfig"></a><br> <li><B>getConfig</B><a name="CUL_HMgetConfig"></a><br>
Will read major configuration items stored in the HM device. Executed Will read major configuration items stored in the HM device. Executed
on a channel it will read pair Inforamtion, List0, List1 and List3 of on a channel it will read pair Inforamtion, List0, List1 and List3 of