From b3e0d066f27d0583ff5a4cb19f2ba298f34779db Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sun, 21 Sep 2014 14:19:50 +0000 Subject: [PATCH] SetExtension: toggle added for ZWave git-svn-id: https://svn.fhem.de/fhem/trunk@6588 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 1 + fhem/FHEM/SetExtensions.pm | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index 40f09b0f8..379f23c57 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # 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. + - feature: add toggle to SetExtensions (introduced for ZWave) - bugfix: plotEmbed FHEMWEB attribute (fix for an iOS8 bug) - feature: SHC: support for analog inputs (EnvSensor) and new device RGB_Dimmer added (rr2000) diff --git a/fhem/FHEM/SetExtensions.pm b/fhem/FHEM/SetExtensions.pm index 02572dd49..acd4d75e2 100644 --- a/fhem/FHEM/SetExtensions.pm +++ b/fhem/FHEM/SetExtensions.pm @@ -20,17 +20,20 @@ SetExtensions($$@) "off-till" => 1, "blink" => 2, "intervals" => 0, + "toggle" => 0 ); my $hasOn = ($list =~ m/\bon\b/); my $hasOff = ($list =~ m/\boff\b/); - if(!$hasOn || !$hasOff) { - my $em = AttrVal($name, "eventMap", undef); - if($em) { + my $value = Value($name); + my $em = AttrVal($name, "eventMap", undef); + if($em) { + if(!$hasOn || !$hasOff) { $hasOn = ($em =~ m/:on\b/) if(!$hasOn); $hasOff = ($em =~ m/:off\b/) if(!$hasOff); } $cmd = ReplaceEventMap($name, $cmd, 1) if($cmd ne "?"); # Fix B0-for-timer + (undef, $value) = ReplaceEventMap($name, [$name, $value], 0); } if(!$hasOn || !$hasOff) { # No extension return "Unknown argument $cmd, choose one of $list"; @@ -125,6 +128,9 @@ SetExtensions($$@) } } + } elsif($cmd eq "toggle") { + DoSet($name, $value =~ m/^on/ ? "off" : "on"); + } return undef;