mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-12 16:46:35 +00:00
Hoermann module added
git-svn-id: https://svn.fhem.de/fhem/trunk@604 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
53ac7e1788
commit
b26b8a89cc
@ -582,3 +582,4 @@
|
||||
- bugfix: 99_SUNRISE_EL endless loop bug
|
||||
- feature: CUL: optional baudrate spec in definition
|
||||
- feature: CUL: sendpool attribute
|
||||
- feature: CUL_HOERMANN module added
|
||||
|
@ -44,7 +44,7 @@ my %sets = (
|
||||
"time" => ""
|
||||
);
|
||||
|
||||
my @ampllist = (24, 27, 30, 33, 36, 38, 40, 42);
|
||||
my @ampllist = (24, 27, 30, 33, 36, 38, 40, 42); # rAmpl(dB)
|
||||
|
||||
sub
|
||||
CUL_Initialize($)
|
||||
@ -55,7 +55,8 @@ CUL_Initialize($)
|
||||
$hash->{ReadFn} = "CUL_Read";
|
||||
$hash->{WriteFn} = "CUL_Write";
|
||||
$hash->{Clients} =
|
||||
":FS20:FHT:KS300:CUL_EM:CUL_WS:USF1000:HMS:CUL_FHTTK:CUL_RFR:FHT8V:";
|
||||
":FS20:FHT:KS300:CUL_EM:CUL_WS:USF1000:HMS:CUL_FHTTK:CUL_RFR:FHT8V".
|
||||
":CUL_HOERMANN";
|
||||
my %mc = (
|
||||
"1:USF1000" => "^81..(04|0c)..0101a001a5ceaa00....",
|
||||
"2:FS20" => "^81..(04|0c)..0101a001",
|
||||
@ -66,6 +67,7 @@ CUL_Initialize($)
|
||||
"7:HMS" => "^810e04....(1|5|9).a001",
|
||||
"8:CUL_FHTTK" => "^T........",
|
||||
"9:CUL_RFR" => "^[0-9A-F]{4}U.",
|
||||
"A:CUL_HOERMANN"=> "^R..........",
|
||||
);
|
||||
$hash->{MatchList} = \%mc;
|
||||
$hash->{ReadyFn} = "CUL_Ready";
|
||||
@ -811,6 +813,8 @@ CUL_Parse($$$$$)
|
||||
|
||||
} elsif($fn eq "E" && $len >= 11) { # CUL_EM / Native
|
||||
;
|
||||
} elsif($fn eq "R" && $len >= 11) { # CUL_EM / Native
|
||||
;
|
||||
} else {
|
||||
Log GetLogLevel($name,2), "$name: unknown message $dmsg";
|
||||
return;
|
||||
|
62
fhem/FHEM/18_CUL_HOERMANN.pm
Executable file
62
fhem/FHEM/18_CUL_HOERMANN.pm
Executable file
@ -0,0 +1,62 @@
|
||||
##############################################
|
||||
package main;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub
|
||||
CUL_HOERMANN_Initialize($)
|
||||
{
|
||||
my ($hash) = @_;
|
||||
|
||||
$hash->{Match} = "^R..........";
|
||||
$hash->{DefFn} = "CUL_HOERMANN_Define";
|
||||
$hash->{ParseFn} = "CUL_HOERMANN_Parse";
|
||||
$hash->{AttrList} = "IODev do_not_notify:1,0 ignore:0,1 " .
|
||||
"showtime:1,0 loglevel:0,1,2,3,4,5,6";
|
||||
|
||||
}
|
||||
|
||||
#############################
|
||||
sub
|
||||
CUL_HOERMANN_Define($$)
|
||||
{
|
||||
my ($hash, $def) = @_;
|
||||
my @a = split("[ \t][ \t]*", $def);
|
||||
|
||||
my $u = "wrong syntax: define <name> CUL_HOERMANN housecode " .
|
||||
"addr [fg addr] [lm addr] [gm FF]";
|
||||
|
||||
return "wrong syntax: define <name> CUL_HOERMANN 10-digit-hex-code"
|
||||
if(int(@a) != 3 || $a[2] !~ m/^[a-f0-9]{10}$/i);
|
||||
|
||||
$modules{CUL_HOERMANN}{defptr}{$a[2]} = $hash;
|
||||
$hash->{STATE} = "Defined";
|
||||
return undef;
|
||||
}
|
||||
|
||||
sub
|
||||
CUL_HOERMANN_Parse($$)
|
||||
{
|
||||
my ($hash, $msg) = @_;
|
||||
|
||||
# Msg format: RHHHHHHHH
|
||||
my $cde = substr($msg, 1, 8);
|
||||
my $def = $modules{CUL_HOERMANN}{defptr}{$cde};
|
||||
|
||||
if($def) {
|
||||
my $name = $def->{NAME};
|
||||
$def->{CHANGED}[0] = "toggle";
|
||||
$def->{READINGS}{state}{TIME} = TimeNow();
|
||||
$def->{READINGS}{state}{VAL} = "toggle";
|
||||
Log GetLogLevel($name,2), "CUL_HOERMANN $name toggle";
|
||||
return $name;
|
||||
|
||||
} else {
|
||||
Log 3, "CUL_HOERMANN Unknown device $cde, please define it";
|
||||
return "UNDEFINED CUL_HOERMANN_$cde CUL_HOERMANN $cde";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
1;
|
@ -73,6 +73,7 @@
|
||||
<a href="#CUL">CUL</a>
|
||||
<a href="#CUL_EM">CUL_EM</a>
|
||||
<a href="#CUL_FHTTK">CUL_FHTTK</a>
|
||||
<a href="#CUL_HOERMANN">CUL_HOERMANN</a>
|
||||
<a href="#CUL_RFR">CUL_RFR</a>
|
||||
<a href="#CUL_WS">CUL_WS</a>
|
||||
<a href="#DS18S20">DS18S20</a>
|
||||
@ -1888,6 +1889,39 @@ A line ending with \ will be concatenated with the next one, so long lines
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
<a name="CUL_HOERMANN"></a>
|
||||
<h3>CUL_HOERMANN</h3>
|
||||
<ul>
|
||||
The CUL_HOERMANN module registers the 868MHz Hoermann Garage-Door-Opener
|
||||
signals received by the CUL. <b>Note</b>: As the structure of this signal is
|
||||
not understood, no checksum is verified, so it is likely to receive bogus
|
||||
messages.
|
||||
<br><br>
|
||||
|
||||
<a name="CUL_HOERMANNdefine"></a>
|
||||
<b>Define</b>
|
||||
<ul>
|
||||
<code>define <name> CUL_HOERMANNEM <10-digit-hex-code></code>
|
||||
<br>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<a name="CUL_HOERMANNset"></a>
|
||||
<b>Set</b> <ul>N/A</ul><br>
|
||||
|
||||
<a name="CUL_HOERMANNEMget"></a>
|
||||
<b>Get</b> <ul>N/A</ul><br>
|
||||
|
||||
<b>Attributes</b>
|
||||
<ul>
|
||||
<li><a href="#do_not_notify">do_not_notify</a></li>
|
||||
<li><a href="#showtime">showtime</a></li>
|
||||
<li><a href="#loglevel">loglevel</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
|
||||
<a name="CUL_RFR"></a>
|
||||
<h3>CUL_RFR</h3>
|
||||
<ul>
|
||||
|
@ -467,7 +467,7 @@ FW_makeTable($$$$$$$$)
|
||||
my $row = 1;
|
||||
foreach my $v (sort keys %{$hash}) {
|
||||
my $r = ref($hash->{$v});
|
||||
next if($r && ($r ne "HASH" || !$hash->{$v}{VAL}));
|
||||
next if($r && ($r ne "HASH" || !defined($hash->{$v}{VAL})));
|
||||
pF " <tr class=\"%s\">", $row?"odd":"even";
|
||||
$row = ($row+1)%2;
|
||||
if($makelink && $__reldoc) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user