mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 18:59:33 +00:00
10_EnOcean: new EEP D2-05-04, D2-05-05
git-svn-id: https://svn.fhem.de/fhem/trunk@25863 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
b95152f250
commit
b1db99966e
@ -393,6 +393,8 @@ my %EnO_eepConfig = (
|
||||
"D2.05.00" => {attr => {subType => "blindsCtrl.00", webCmd => "opens:stop:closes:position"}, GPLOT => "EnO_position4angle4:Position/AnglePos,"},
|
||||
"D2.05.01" => {attr => {subType => "blindsCtrl.01", webCmd => "opens:stop:closes:position"}},
|
||||
"D2.05.02" => {attr => {subType => "blindsCtrl.00", defaultChannel => 1, webCmd => "opens:stop:closes:position"}, GPLOT => "EnO_position4angle4:Position/AnglePos,"},
|
||||
"D2.05.04" => {attr => {subType => "blindsCtrl.00", defaultChannel => 1, webCmd => "opens:stop:closes:position"}, GPLOT => "EnO_position4angle4:Position/AnglePos,"},
|
||||
"D2.05.05" => {attr => {subType => "blindsCtrl.01", webCmd => "opens:stop:closes:position"}},
|
||||
"D2.06.01" => {attr => {subType => "multisensor.01"}, GPLOT => "EnO_temp4humi4:Temp/Humi,EnO_brightness4:Brightness,"},
|
||||
"D2.06.50" => {attr => {subType => "multisensor.50"}},
|
||||
"D2.10.00" => {attr => {subType => "roomCtrlPanel.00", webCmd => "setpointTemp"}, GPLOT => "EnO_D2-10-xx:Temp/SPT/Humi,"},
|
||||
@ -11809,42 +11811,38 @@ sub EnOcean_Parse($$) {
|
||||
if ($cmd == 4) {
|
||||
# actuator status response
|
||||
if ($db[3] == 0) {
|
||||
push @event, "3:state:open";
|
||||
push @event, "3:endPosition" . sprintf('%02d', $channel) . ":open";
|
||||
push @event, "3:position" . sprintf('%02d', $channel) . ":" . $db[3];
|
||||
push @event, "3:position:" . $db[3];
|
||||
push @event, "1:state:open";
|
||||
push @event, "1:endPosition" . sprintf('%02d', $channel) . ":open";
|
||||
push @event, "1:position" . sprintf('%02d', $channel) . ":" . $db[3];
|
||||
push @event, "1:position:" . $db[3];
|
||||
} elsif ($db[3] == 100) {
|
||||
push @event, "3:state:closed";
|
||||
push @event, "3:endPosition" . sprintf('%02d', $channel) . ":closed";
|
||||
push @event, "3:position" . sprintf('%02d', $channel) . ":" . $db[3];
|
||||
push @event, "3:position:" . $db[3];
|
||||
push @event, "1:state:closed";
|
||||
push @event, "1:endPosition" . sprintf('%02d', $channel) . ":closed";
|
||||
push @event, "1:position" . sprintf('%02d', $channel) . ":" . $db[3];
|
||||
push @event, "1:position:" . $db[3];
|
||||
} elsif ($db[3] == 127) {
|
||||
push @event, "3:state:unknown";
|
||||
push @event, "3:endPosition" . sprintf('%02d', $channel) . ":unknown";
|
||||
push @event, "3:position" . sprintf('%02d', $channel) . ":unknown";
|
||||
push @event, "3:position:unknown";
|
||||
push @event, "1:state:unknown";
|
||||
push @event, "1:endPosition" . sprintf('%02d', $channel) . ":unknown";
|
||||
push @event, "1:position" . sprintf('%02d', $channel) . ":unknown";
|
||||
push @event, "1:position:unknown";
|
||||
} else {
|
||||
push @event, "3:state:" . $db[3];
|
||||
push @event, "3:endPosition" . sprintf('%02d', $channel) . ":not_reached";
|
||||
push @event, "3:position" . sprintf('%02d', $channel) . ":" . $db[3];
|
||||
push @event, "3:position:" . $db[3];
|
||||
push @event, "1:state:" . $db[3];
|
||||
push @event, "1:endPosition" . sprintf('%02d', $channel) . ":not_reached";
|
||||
push @event, "1:position" . sprintf('%02d', $channel) . ":" . $db[3];
|
||||
push @event, "1:position:" . $db[3];
|
||||
}
|
||||
if ($db[2] == 127) {
|
||||
push @event, "3:anglePos" . sprintf('%02d', $channel) . ":unknown";
|
||||
push @event, "3:anglePos:unknown";
|
||||
push @event, "1:anglePos" . sprintf('%02d', $channel) . ":unknown";
|
||||
push @event, "1:anglePos:unknown";
|
||||
} else {
|
||||
push @event, "3:anglePos" . sprintf('%02d', $channel) . ":" . $db[2];
|
||||
push @event, "3:anglePos:" . $db[2];
|
||||
}
|
||||
if ($db[1] == 0) {
|
||||
push @event, "3:block" . sprintf('%02d', $channel) . ":unlock";
|
||||
} elsif ($db[1] == 1) {
|
||||
push @event, "3:block" . sprintf('%02d', $channel) . ":lock";
|
||||
} elsif ($db[1] == 2) {
|
||||
push @event, "3:block" . sprintf('%02d', $channel) . ":alarm";
|
||||
} else {
|
||||
push @event, "3:block" . sprintf('%02d', $channel) . ":reserved";
|
||||
push @event, "1:anglePos" . sprintf('%02d', $channel) . ":" . $db[2];
|
||||
push @event, "1:anglePos:" . $db[2];
|
||||
}
|
||||
my %block = (0 => 'unlock', 1 => 'lock', 2 => 'alarm');
|
||||
my $block = exists($block{$db[1] & 7}) ? $block{$db[1] & 7} : 'reserved';
|
||||
push @event, "1:block" . sprintf('%02d', $channel) . ":" . $block;
|
||||
my %currentRun = (0 => 'stopped', 1 => 'up', 2 => 'down', 3 => 'unknown');
|
||||
push @event, "1:currentRun" . sprintf('%02d', $channel) . ":" . $currentRun{($db[1] & 24) >> 3};
|
||||
|
||||
} else {
|
||||
# unknown response
|
||||
@ -20309,8 +20307,8 @@ sub EnOcean_Delete($$) {
|
||||
</li>
|
||||
<br><br>
|
||||
|
||||
<li>Blind Control for Position and Angle (D2-05-00 - D2-05-01)<br>
|
||||
[AWAG Elektrotechnik AG OMNIO UPJ 230/12, REGJ12/04M ]<br>
|
||||
<li>Blind Control for Position and Angle (D2-05-00, D2-05-01, D2-05-02, D2-05-04, D2-05-05)<br>
|
||||
[AWAG Elektrotechnik AG OMNIO UPJ 230/12, REGJ12/04M, miniJ01]<br>
|
||||
<ul>
|
||||
<code>set <name> <value></code>
|
||||
<br><br>
|
||||
@ -20776,8 +20774,8 @@ sub EnOcean_Delete($$) {
|
||||
</li>
|
||||
<br><br>
|
||||
|
||||
<li>Blind Control for Position and Angle (D2-05-00)<br>
|
||||
[AWAG Elektrotechnik AG OMNIO UPJ 230/12, REGJ12/04M]<br>
|
||||
<li>Blind Control for Position and Angle (D2-05-00, D2-05-01, D2-05-02, D2-05-04, D2-05-05)<br>
|
||||
[AWAG Elektrotechnik AG OMNIO UPJ 230/12, REGJ12/04M, miniJ01]<br>
|
||||
<ul>
|
||||
<code>get <name> <value></code>
|
||||
<br><br>
|
||||
@ -23400,8 +23398,8 @@ sub EnOcean_Delete($$) {
|
||||
</li>
|
||||
<br><br>
|
||||
|
||||
<li>Blind Control for Position and Angle (D2-05-00)<br>
|
||||
[AWAG Elektrotechnik AG OMNIO UPJ 230/12]<br>
|
||||
<li>Blind Control for Position and Angle (D2-05-00, D2-05-01, D2-05-02, D2-05-04, D2-05-05)<br>
|
||||
[AWAG Elektrotechnik AG OMNIO UPJ 230/12, REGJ12/04M, miniJ01]<br>
|
||||
<ul>
|
||||
<li>open<br>
|
||||
The status of the device will become "open" after the TOP endpoint is
|
||||
@ -23415,6 +23413,7 @@ sub EnOcean_Delete($$) {
|
||||
The status of the device become "not_reached" between one of the endpoints.</li>
|
||||
<li>pos/% (Sensor Range: pos = 0 % ... 100 %)</li>
|
||||
<li>anglePos<channel>: α/% (Sensor Range: α = 0 % ... 100 %)</li>
|
||||
<li>currentRun<channel>: down|stopped|up|unknown</li>
|
||||
<li>block<channel>: unlock|lock|alarm</li>
|
||||
<li>endPosition<channel>: open|closed|not_reached|unknown</li>
|
||||
<li>position<channel>: unknown|pos/% (Sensor Range: pos = 0 % ... 100 %)</li>
|
||||
|
Loading…
Reference in New Issue
Block a user