2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 13:29:26 +00:00

10_EnOcean: new EnOcean devices can be alternatively defined by EEP now

git-svn-id: https://svn.fhem.de/fhem/trunk@9235 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
klaus-schauer 2015-09-12 10:05:53 +00:00
parent f3fc7beeb6
commit 14b51fa3a4

View File

@ -514,16 +514,44 @@ EnOcean_Define($$)
$def = EnOcean_CheckSenderID("getNextID", $hash->{IODev}{NAME}, "00000000"); $def = EnOcean_CheckSenderID("getNextID", $hash->{IODev}{NAME}, "00000000");
$hash->{DEF} = $def; $hash->{DEF} = $def;
$modules{EnOcean}{defptr}{$def} = $hash; $modules{EnOcean}{defptr}{$def} = $hash;
$attr{$name}{manufID} = "7FF";
$attr{$name}{room} = "EnOcean";
} elsif ($a[2] =~ m/^[A-Fa-f0-9]{8}$/i) { } elsif ($a[2] =~ m/^[A-Fa-f0-9]{8}$/i) {
$def = uc($a[2]); $def = uc($a[2]);
$hash->{DEF} = $def; $hash->{DEF} = $def;
$modules{EnOcean}{defptr}{$def} = $hash; $modules{EnOcean}{defptr}{$def} = $hash;
AssignIoPort($hash); AssignIoPort($hash);
$attr{$name}{manufID} = "7FF";
$attr{$name}{room} = "EnOcean";
} elsif ($a[2] =~ m/^([A-Fa-f0-9]{2})-([A-Fa-f0-9]{2})-([A-Fa-f0-9]{2})$/i) {
AssignIoPort($hash);
$defs{$name}{DEF} = $def;
$def = EnOcean_CheckSenderID("getNextID", $hash->{IODev}{NAME}, "00000000");
$hash->{DEF} = $def;
$modules{EnOcean}{defptr}{$def} = $hash;
my ($rorg, $func, $type) = (uc($1), uc($2), uc($3));
$rorg = "F6" if ($rorg eq "05");
$rorg = "D5" if ($rorg eq "06");
$rorg = "A5" if ($rorg eq "07");
my $eep = "$rorg.$func.$type";
if (exists $EnO_eepConfig{$eep}) {
foreach my $attrCntr (keys %{$EnO_eepConfig{$eep}{attr}}) {
if ($attrCntr ne "subDef") {
$attr{$name}{$attrCntr} = $EnO_eepConfig{$eep}{attr}{$attrCntr};
}
}
$attr{$name}{eep} = "$rorg-$func-$type";
$attr{$name}{manufID} = "7FF";
$attr{$name}{room} = "EnOcean";
return undef;
} else {
return "EEP $rorg-$func-$type not supported";
}
} else { } else {
return "wrong syntax: define <name> EnOcean 8-digit-hex-code"; return "wrong syntax: define <name> EnOcean <8-digit-hex-code>|getNextID|<EEP>";
} }
} else { } else {
return "wrong syntax: define <name> EnOcean 8-digit-hex-code"; return "wrong syntax: define <name> EnOcean <8-digit-hex-code>|getNextID|<EEP>";
} }
# Help FHEMWEB split up devices # Help FHEMWEB split up devices
$attr{$name}{subType} = $1 if($name =~ m/EnO_(.*)_$def/); $attr{$name}{subType} = $1 if($name =~ m/EnO_(.*)_$def/);
@ -10943,9 +10971,10 @@ EnOcean_Undef($$)
using the RF Protocol provided by the EnOcean Alliance.<br><br> using the RF Protocol provided by the EnOcean Alliance.<br><br>
Depending on the function of the device an specific device profile is used, called Depending on the function of the device an specific device profile is used, called
EnOcean Equipment Profile (EEP). The specific definition of a device is referenced by EnOcean Equipment Profile (EEP). The specific definition of a device is referenced by
the EEP number (RORG, FUNC, TYPE). Basically three profiles will be differed, e. g. the EEP (RORG-FUNC-TYPE). Basically four groups (RORG) will be differed, e. g.
switches, contacts, sensors. Some manufacturers use additional proprietary RPS (switches), 1BS (contacts), 4BS, VLD (sensors and controller). Some manufacturers use
extensions. Further technical information can be found at the additional proprietary extensions. RORG MSC is not supported except for few exceptions.
Further technical information can be found at the
<a href="http://www.enocean-alliance.org/de/enocean_standard/">EnOcean Alliance</a>, <a href="http://www.enocean-alliance.org/de/enocean_standard/">EnOcean Alliance</a>,
see in particular the see in particular the
<a href="http://www.enocean-alliance.org/eep/">EnOcean Equipment Profiles (EEP)</a> <a href="http://www.enocean-alliance.org/eep/">EnOcean Equipment Profiles (EEP)</a>
@ -11105,7 +11134,7 @@ EnOcean_Undef($$)
<a name="EnOceandefine"></a> <a name="EnOceandefine"></a>
<b>Define</b> <b>Define</b>
<ul> <ul>
<code>define &lt;name&gt; EnOcean &lt;DEF&gt;|getNextID</code> <code>define &lt;name&gt; EnOcean &lt;DEF&gt;|getNextID|&lt;EEP&gt;</code>
<br><br> <br><br>
Define an EnOcean device, connected via a <a href="#TCM">TCM</a> modul. The Define an EnOcean device, connected via a <a href="#TCM">TCM</a> modul. The
@ -11125,6 +11154,10 @@ EnOcean_Undef($$)
<ul><br> <ul><br>
<code>define switch1 EnOcean getNextID</code><br> <code>define switch1 EnOcean getNextID</code><br>
</ul><br> </ul><br>
If the EEP is known, the appropriate device can be created with the basic parameters, for example
<ul><br>
<code>define sensor1 EnOcean A5-02-05</code><br>
</ul><br>
The <a href="#autocreate">autocreate</a> module may help you if the actor or sensor send The <a href="#autocreate">autocreate</a> module may help you if the actor or sensor send
acknowledge messages or teach-in telegrams. In order to control this devices e. g. switches with acknowledge messages or teach-in telegrams. In order to control this devices e. g. switches with
additional SenderIDs you can use the attributes <a href="#subDef">subDef</a>, additional SenderIDs you can use the attributes <a href="#subDef">subDef</a>,