2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

# profile gateway, switching and dimming: new reading block

# profile gateway, dimming: block function corrected

git-svn-id: https://svn.fhem.de/fhem/trunk@3725 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
klaus-schauer 2013-08-17 13:58:51 +00:00
parent bb6f3fb898
commit 4dfc60e169

View File

@ -640,18 +640,26 @@ EnOcean_Set($@)
$data = "E047FF80"; $data = "E047FF80";
} elsif ($cmd eq "on" || $cmd eq "B0") { } elsif ($cmd eq "on" || $cmd eq "B0") {
$setCmd = 9; $setCmd = 9;
readingsSingleUpdate($hash, "block", "unlock", 1);
if ($a[1]) { if ($a[1]) {
return "Usage: $cmd [lock|unlock]" if (($a[1] ne "lock") && ($a[1] ne "unlock")); return "Usage: $cmd [lock|unlock]" if (($a[1] ne "lock") && ($a[1] ne "unlock"));
$setCmd = $setCmd | 4 if ($a[1] eq "lock"); if ($a[1] eq "lock") {
$setCmd = $setCmd | 4 ;
readingsSingleUpdate($hash, "block", "lock", 1);
}
shift(@a); shift(@a);
} }
$updateState = 0; $updateState = 0;
$data = sprintf "%02X%04X%02X", $gwCmdID, $time, $setCmd; $data = sprintf "%02X%04X%02X", $gwCmdID, $time, $setCmd;
} elsif ($cmd eq "off" || $cmd eq "BI") { } elsif ($cmd eq "off" || $cmd eq "BI") {
$setCmd = 8; $setCmd = 8;
readingsSingleUpdate($hash, "block", "unlock", 1);
if ($a[1]) { if ($a[1]) {
return "Usage: $cmd [lock|unlock]" if (($a[1] ne "lock") && ($a[1] ne "unlock")); return "Usage: $cmd [lock|unlock]" if (($a[1] ne "lock") && ($a[1] ne "unlock"));
$setCmd = $setCmd | 4 if ($a[1] eq "lock"); if ($a[1] eq "lock") {
$setCmd = $setCmd | 4 ;
readingsSingleUpdate($hash, "block", "lock", 1);
}
shift(@a); shift(@a);
} }
$updateState = 0; $updateState = 0;
@ -672,7 +680,9 @@ EnOcean_Set($@)
$setCmd = 9; $setCmd = 9;
if ($cmd eq "teach") { if ($cmd eq "teach") {
# teach-in EEP A5-38-08, Manufacturer "Multi user Manufacturer ID" # teach-in EEP A5-38-08, Manufacturer "Multi user Manufacturer ID"
$data = "E047FF80"; #$data = "E047FF80";
# teach-in Eltako
$data = "02000000";
} elsif ($cmd eq "dim") { } elsif ($cmd eq "dim") {
return "Usage: $cmd dim/% [rampTime/s lock|unlock]" return "Usage: $cmd dim/% [rampTime/s lock|unlock]"
if(@a < 2 || $a[1] < 0 || $a[1] > 100 || $a[1] !~ m/^[+-]?\d+$/); if(@a < 2 || $a[1] < 0 || $a[1] > 100 || $a[1] !~ m/^[+-]?\d+$/);
@ -743,7 +753,7 @@ EnOcean_Set($@)
$dimVal = $dimValueOn; $dimVal = $dimValueOn;
} }
} }
$sendDimCmd = 1 $sendDimCmd = 1;
} elsif ($cmd eq "off" || $cmd eq "BI") { } elsif ($cmd eq "off" || $cmd eq "BI") {
$dimVal = 0; $dimVal = 0;
@ -756,14 +766,18 @@ EnOcean_Set($@)
return SetExtensions ($hash, $cmdList, $name, @a); return SetExtensions ($hash, $cmdList, $name, @a);
} }
if ($sendDimCmd) { if ($sendDimCmd) {
readingsSingleUpdate($hash, "block", "unlock", 1);
if (defined $a[1]) { if (defined $a[1]) {
return "Usage: $cmd dim/% [rampTime/s lock|unlock]" if ($a[1] ne "lock" && $a[1] ne "unlock"); return "Usage: $cmd dim/% [rampTime/s lock|unlock]" if ($a[1] ne "lock" && $a[1] ne "unlock");
# Eltako devices: lock dimming value # Eltako devices: lock dimming value
if ($manufID eq "OOD" && $a[1] eq "lock" ) {$setCmd = $setCmd | 4;} if ($manufID eq "00D" && $a[1] eq "lock" ) {
$setCmd = $setCmd | 4;
readingsSingleUpdate($hash, "block", "lock", 1);
}
shift(@a); shift(@a);
} else { } else {
# Dimming value relative # Dimming value relative
if ($manufID ne "OOD") {$setCmd = $setCmd | 4;} if ($manufID ne "00D") {$setCmd = $setCmd | 4;}
} }
if ($dimVal > 100) { $dimVal = 100; } if ($dimVal > 100) { $dimVal = 100; }
if ($dimVal <= 0) { $dimVal = 0; $setCmd = 8; } if ($dimVal <= 0) { $dimVal = 0; $setCmd = 8; }
@ -4620,7 +4634,7 @@ EnOcean_Undef($$)
<li>off</li> <li>off</li>
<li>executeTime: t/s (Sensor Range: t = 0.1 s ... 6553.5 s or 0 if no time specified)</li> <li>executeTime: t/s (Sensor Range: t = 0.1 s ... 6553.5 s or 0 if no time specified)</li>
<li>executeType: duration|delay</li> <li>executeType: duration|delay</li>
<li>lock: lock|unlock</li> <li>block: lock|unlock</li>
<li>state: on|off</li> <li>state: on|off</li>
</ul><br> </ul><br>
The attr subType must be gateway and gwCmd must be switching. This is done if the device was The attr subType must be gateway and gwCmd must be switching. This is done if the device was
@ -4635,6 +4649,7 @@ EnOcean_Undef($$)
<ul> <ul>
<li>on</li> <li>on</li>
<li>off</li> <li>off</li>
<li>block: lock|unlock</li>
<li>dimValue: dim/% (Sensor Range: dim = 0 % ... 100 %)</li> <li>dimValue: dim/% (Sensor Range: dim = 0 % ... 100 %)</li>
<li>dimValueLast: dim/%<br> <li>dimValueLast: dim/%<br>
Last value received from the bidirectional dimmer.</li> Last value received from the bidirectional dimmer.</li>