mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-01 20:20:10 +00:00
14_SD_RSL.PM: support for setExtensions added
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@20671 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
75bcac9842
commit
a38553ecef
1
CHANGED
1
CHANGED
@ -1,5 +1,6 @@
|
|||||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||||
# Do not insert empty lines here, update check depends on it.
|
# Do not insert empty lines here, update check depends on it.
|
||||||
|
- feature: 14_SD_RSL.PM: support for setExtensions added
|
||||||
- change: 59_Weather: delete table options in commandref
|
- change: 59_Weather: delete table options in commandref
|
||||||
- bugfix: 73_AutoShuttersControl: fix Commandref, skip ExternalTrigger Drive
|
- bugfix: 73_AutoShuttersControl: fix Commandref, skip ExternalTrigger Drive
|
||||||
from adv check
|
from adv check
|
||||||
|
@ -7,15 +7,19 @@
|
|||||||
# 2019 - Ralf9 & Sidey79
|
# 2019 - Ralf9 & Sidey79
|
||||||
#
|
#
|
||||||
# Supports following devices:
|
# Supports following devices:
|
||||||
# - Conrad RSL
|
# - Conrad RSL
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
package main;
|
package main;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
use SetExtensions;
|
||||||
|
|
||||||
my %sets = ( "on:noArg" => "", "off:noArg" => "");
|
my %sets = (
|
||||||
|
"on" => sub { return $_[0]->{OnCode}; },
|
||||||
|
"off" => sub { return $_[0]->{OffCode}; }
|
||||||
|
);
|
||||||
|
|
||||||
my @RSLCodes;
|
my @RSLCodes;
|
||||||
|
|
||||||
@ -113,35 +117,25 @@ sub SD_RSL_Define($$) {
|
|||||||
|
|
||||||
##########################################################
|
##########################################################
|
||||||
sub SD_RSL_Set($@) {
|
sub SD_RSL_Set($@) {
|
||||||
my ($hash, $name, @a) = @_;
|
my ($hash, $name, @a) = @_;
|
||||||
my $ioHash = $hash->{IODev};
|
my $cmd = $a[0];
|
||||||
my $ioName = $ioHash->{NAME};
|
return "\"set $name\" needs at least one argument" unless(defined($cmd));
|
||||||
my $cmd = $a[0];
|
|
||||||
my $c;
|
|
||||||
my $message;
|
|
||||||
my $device = substr($hash->{DEF},0,6);
|
|
||||||
|
|
||||||
return join(" ", sort keys %sets) if((@a < 1) || ($cmd eq "?"));
|
my $cmdList= join(" ", map { "$_:noArg" } sort keys %sets);
|
||||||
|
if (exists($sets{$cmd})) {
|
||||||
$c = $hash->{OnCode} if ($cmd eq "on") ;
|
my $ioHash = $hash->{IODev};
|
||||||
$c = $hash->{OffCode} if ($cmd eq "off");
|
my $ioName = $ioHash->{NAME};
|
||||||
|
my $device = substr($hash->{DEF},0,6);
|
||||||
return "Unknown argument $cmd, choose on or off" if(!$c);
|
my $c= $sets{$cmd}->($hash,@a);
|
||||||
|
my $message = 'P1#0x' . $c . $device . '#R' . AttrVal($name, "RSLrepetition", 6);
|
||||||
## Send Message to IODev using IOWrite
|
Log3 $name, 3, "$ioName RSL_set: $name $cmd -> sendMsg: $message";
|
||||||
$message = 'P1#0x' . $c . $device . '#R' . AttrVal($name, "RSLrepetition", 6);
|
IOWrite($hash, 'sendMsg', $message);
|
||||||
Log3 $name, 3, "$ioName RSL_set: $name $cmd -> sendMsg: $message";
|
readingsSingleUpdate($hash,"state",$cmd,1);
|
||||||
IOWrite($hash, 'sendMsg', $message);
|
} else {
|
||||||
#my $ret = IOWrite($hash, 'sendMsg', $c."_".AttrVal($name, "RSLrepetition", 6));
|
return SetExtensions($hash, $cmdList, $name, @a)
|
||||||
#Log3 $hash, 5, "$name Set return : $ret";
|
}
|
||||||
|
|
||||||
#if (($cmd eq "on") && ($hash->{STATE} eq "off")){$cmd = "stop";}
|
return undef;
|
||||||
#if (($cmd eq "off") && ($hash->{STATE} eq "on")) {$cmd = "stop";}
|
|
||||||
|
|
||||||
#$hash->{CHANGED}[0] = $cmd;
|
|
||||||
#$hash->{STATE} = $cmd;
|
|
||||||
readingsSingleUpdate($hash,"state",$cmd,1);
|
|
||||||
return undef;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
###################################################################
|
###################################################################
|
||||||
@ -207,7 +201,7 @@ sub SD_RSL_Parse($$) {
|
|||||||
|
|
||||||
Log3 $hash, 4, "$name: SD_RSL_Parse - Device: $deviceCode Action: $action";
|
Log3 $hash, 4, "$name: SD_RSL_Parse - Device: $deviceCode Action: $action";
|
||||||
|
|
||||||
$modules{SD_RSL}{defptr}{ioname} = $name;
|
$modules{SD_RSL}{defptr}{ioname} = $name;
|
||||||
my $def = $modules{SD_RSL}{defptr}{$hash->{NAME} . "." . $deviceCode};
|
my $def = $modules{SD_RSL}{defptr}{$hash->{NAME} . "." . $deviceCode};
|
||||||
$def = $modules{SD_RSL}{defptr}{$deviceCode} if(!$def);
|
$def = $modules{SD_RSL}{defptr}{$deviceCode} if(!$def);
|
||||||
|
|
||||||
@ -243,6 +237,7 @@ sub SD_RSL_Parse($$) {
|
|||||||
########################################################
|
########################################################
|
||||||
sub SD_RSL_Undef($$) {
|
sub SD_RSL_Undef($$) {
|
||||||
my ($hash, $name) = @_;
|
my ($hash, $name) = @_;
|
||||||
|
SetExtensionsCancel($hash);
|
||||||
delete($modules{SD_RSL}{defptr}{$hash->{DEF}}) if($hash && $hash->{DEF});
|
delete($modules{SD_RSL}{defptr}{$hash->{DEF}}) if($hash && $hash->{DEF});
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
@ -296,13 +291,11 @@ If autocreate is used, a device "<code>_ALL" like RSL_74A400_ALL
|
|||||||
<a name="SD_RSL_Set"></a>
|
<a name="SD_RSL_Set"></a>
|
||||||
<b>Set</b>
|
<b>Set</b>
|
||||||
<ul>
|
<ul>
|
||||||
<code>set <name> <value></code>
|
<code>set <name> <[on|off|toggle]></code><br>
|
||||||
|
Switches the device on or off.<br><br>
|
||||||
|
<code>set <name> <[on-for-timer|off-for-timer|on-till|off-till|blink|intervals]></code><br>
|
||||||
|
Switches the socket for a specified duration. For Details see <a href="#setExtensions">set extensions</a>.<br><br>
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<code><value></code> can be one of the following values:<br>
|
|
||||||
<pre>
|
|
||||||
off
|
|
||||||
on
|
|
||||||
</pre>
|
|
||||||
</ul>
|
</ul>
|
||||||
<a name="SD_RSL_Get"></a>
|
<a name="SD_RSL_Get"></a>
|
||||||
<b>Get</b>
|
<b>Get</b>
|
||||||
@ -350,13 +343,11 @@ Beim Verwendung von Autocreate wird bei der Taste All anstatt channel und button
|
|||||||
<a name="SD_RSL_Set"></a>
|
<a name="SD_RSL_Set"></a>
|
||||||
<b>Set</b>
|
<b>Set</b>
|
||||||
<ul>
|
<ul>
|
||||||
<code>set <name> <value></code>
|
<code>set <name> <[on|off|toggle]></code><br
|
||||||
|
Schaltet das Gerät ein oder aus.<br><br>
|
||||||
|
<code>set <name> <[on-for-timer|off-for-timer|on-till|off-till|blink|intervals]></code><br>
|
||||||
|
Schaltet das Gerät für einen bestimmten Zeitraum. Weitere Infos hierzu unter <a href="#setExtensions">set extensions</a>.<br><br>
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<code><value></code> kann einer der folgenden Werte sein:<br>
|
|
||||||
<pre>
|
|
||||||
off
|
|
||||||
on
|
|
||||||
</pre>
|
|
||||||
</ul>
|
</ul>
|
||||||
<a name="SD_RSL_Get"></a>
|
<a name="SD_RSL_Get"></a>
|
||||||
<b>Get</b>
|
<b>Get</b>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user