exchange_on_off
git-svn-id: https://fhem.svn.sourceforge.net/svnroot/fhem/trunk/fhem@750 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
@@ -109,7 +109,7 @@ FS20_Initialize($)
|
||||
$hash->{DefFn} = "FS20_Define";
|
||||
$hash->{UndefFn} = "FS20_Undef";
|
||||
$hash->{ParseFn} = "FS20_Parse";
|
||||
$hash->{AttrList} = "IODev follow-on-for-timer:1,0 do_not_notify:1,0 ignore:0,1 dummy:1,0 showtime:1,0 model;fs20hgs,fs20hgs,fs20pira,fs20piri,fs20s20,fs20s8,fs20s4,fs20s4a,fs20s4m,fs20s4u,fs20s4ub,fs20sd,fs20sn,fs20sr,fs20ss,fs20str,fs20tfk,fs20tfk,fs20tk,fs20uts,fs20ze,fs20as1,fs20as4,fs20di,fs20du,fs20ls,fs20ms2,fs20rst,fs20sa,fs20sig,fs20st,fs20sv,fs20usr loglevel:0,1,2,3,4,5,6";
|
||||
$hash->{AttrList} = "IODev follow-on-for-timer:1,0 do_not_notify:1,0 ignore:0,1 dummy:1,0 showtime:1,0 model;fs20hgs,fs20hgs,fs20pira,fs20piri,fs20s20,fs20s8,fs20s4,fs20s4a,fs20s4m,fs20s4u,fs20s4ub,fs20sd,fs20sn,fs20sr,fs20ss,fs20str,fs20tfk,fs20tfk,fs20tk,fs20uts,fs20ze,fs20as1,fs20as4,fs20di,fs20du,fs20ls,fs20ms2,fs20rst,fs20sa,fs20sig,fs20st,fs20sv,fs20usr exchange_on_off loglevel:0,1,2,3,4,5,6";
|
||||
|
||||
}
|
||||
|
||||
@@ -162,6 +162,14 @@ FS20_Set($@)
|
||||
return "no set value specified" if($na < 2 || $na > 3);
|
||||
return "Readonly value $a[1]" if(defined($readonly{$a[1]}));
|
||||
|
||||
if($attr{$a[0]} && $attr{$a[0]}{exchange_on_off}) {
|
||||
if($a[1] =~ m/off/) {
|
||||
$a[1] =~ s/off/on/;
|
||||
} else {
|
||||
$a[1] =~ s/on/off/;
|
||||
}
|
||||
}
|
||||
|
||||
my $c = $fs20_c2b{$a[1]};
|
||||
if(!defined($c)) {
|
||||
|
||||
@@ -339,7 +347,7 @@ FS20_Parse($$)
|
||||
|
||||
my $dur = 0;
|
||||
my $cx = hex($cde);
|
||||
if($cx & 0x20) {
|
||||
if($cx & 0x20) { # Timed command
|
||||
$dur = hex(substr($msg, 26, 2));
|
||||
my $i = ($dur & 0xf0) / 16;
|
||||
my $j = ($dur & 0xf);
|
||||
@@ -351,6 +359,7 @@ FS20_Parse($$)
|
||||
$v = "unknown_$cde" if(!defined($v));
|
||||
$v .= " $dur" if($dur);
|
||||
|
||||
|
||||
my $def = $modules{FS20}{defptr}{"$dev $btn"};
|
||||
if($def) {
|
||||
my @list;
|
||||
@@ -358,6 +367,14 @@ FS20_Parse($$)
|
||||
my $lh = $def->{$n};
|
||||
$n = $lh->{NAME}; # It may be renamed
|
||||
|
||||
if($attr{$n} && $attr{$n}{exchange_on_off}) {
|
||||
if($v =~ m/off/) {
|
||||
$v =~ s/off/on/;
|
||||
} else {
|
||||
$v =~ s/on/off/;
|
||||
}
|
||||
}
|
||||
|
||||
return "" if(IsIgnored($n)); # Little strange.
|
||||
|
||||
$lh->{CHANGED}[0] = $v;
|
||||
|
||||
Reference in New Issue
Block a user