mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-12 22:56:34 +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
|
- bugfix: 99_SUNRISE_EL endless loop bug
|
||||||
- feature: CUL: optional baudrate spec in definition
|
- feature: CUL: optional baudrate spec in definition
|
||||||
- feature: CUL: sendpool attribute
|
- feature: CUL: sendpool attribute
|
||||||
|
- feature: CUL_HOERMANN module added
|
||||||
|
@ -44,7 +44,7 @@ my %sets = (
|
|||||||
"time" => ""
|
"time" => ""
|
||||||
);
|
);
|
||||||
|
|
||||||
my @ampllist = (24, 27, 30, 33, 36, 38, 40, 42);
|
my @ampllist = (24, 27, 30, 33, 36, 38, 40, 42); # rAmpl(dB)
|
||||||
|
|
||||||
sub
|
sub
|
||||||
CUL_Initialize($)
|
CUL_Initialize($)
|
||||||
@ -55,7 +55,8 @@ CUL_Initialize($)
|
|||||||
$hash->{ReadFn} = "CUL_Read";
|
$hash->{ReadFn} = "CUL_Read";
|
||||||
$hash->{WriteFn} = "CUL_Write";
|
$hash->{WriteFn} = "CUL_Write";
|
||||||
$hash->{Clients} =
|
$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 = (
|
my %mc = (
|
||||||
"1:USF1000" => "^81..(04|0c)..0101a001a5ceaa00....",
|
"1:USF1000" => "^81..(04|0c)..0101a001a5ceaa00....",
|
||||||
"2:FS20" => "^81..(04|0c)..0101a001",
|
"2:FS20" => "^81..(04|0c)..0101a001",
|
||||||
@ -66,6 +67,7 @@ CUL_Initialize($)
|
|||||||
"7:HMS" => "^810e04....(1|5|9).a001",
|
"7:HMS" => "^810e04....(1|5|9).a001",
|
||||||
"8:CUL_FHTTK" => "^T........",
|
"8:CUL_FHTTK" => "^T........",
|
||||||
"9:CUL_RFR" => "^[0-9A-F]{4}U.",
|
"9:CUL_RFR" => "^[0-9A-F]{4}U.",
|
||||||
|
"A:CUL_HOERMANN"=> "^R..........",
|
||||||
);
|
);
|
||||||
$hash->{MatchList} = \%mc;
|
$hash->{MatchList} = \%mc;
|
||||||
$hash->{ReadyFn} = "CUL_Ready";
|
$hash->{ReadyFn} = "CUL_Ready";
|
||||||
@ -811,6 +813,8 @@ CUL_Parse($$$$$)
|
|||||||
|
|
||||||
} elsif($fn eq "E" && $len >= 11) { # CUL_EM / Native
|
} elsif($fn eq "E" && $len >= 11) { # CUL_EM / Native
|
||||||
;
|
;
|
||||||
|
} elsif($fn eq "R" && $len >= 11) { # CUL_EM / Native
|
||||||
|
;
|
||||||
} else {
|
} else {
|
||||||
Log GetLogLevel($name,2), "$name: unknown message $dmsg";
|
Log GetLogLevel($name,2), "$name: unknown message $dmsg";
|
||||||
return;
|
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">CUL</a>
|
||||||
<a href="#CUL_EM">CUL_EM</a>
|
<a href="#CUL_EM">CUL_EM</a>
|
||||||
<a href="#CUL_FHTTK">CUL_FHTTK</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_RFR">CUL_RFR</a>
|
||||||
<a href="#CUL_WS">CUL_WS</a>
|
<a href="#CUL_WS">CUL_WS</a>
|
||||||
<a href="#DS18S20">DS18S20</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>
|
<br>
|
||||||
</ul>
|
</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>
|
<a name="CUL_RFR"></a>
|
||||||
<h3>CUL_RFR</h3>
|
<h3>CUL_RFR</h3>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -467,7 +467,7 @@ FW_makeTable($$$$$$$$)
|
|||||||
my $row = 1;
|
my $row = 1;
|
||||||
foreach my $v (sort keys %{$hash}) {
|
foreach my $v (sort keys %{$hash}) {
|
||||||
my $r = ref($hash->{$v});
|
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";
|
pF " <tr class=\"%s\">", $row?"odd":"even";
|
||||||
$row = ($row+1)%2;
|
$row = ($row+1)%2;
|
||||||
if($makelink && $__reldoc) {
|
if($makelink && $__reldoc) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user