From 88f2fa14a6ca3455bd28a93d5882d988160eb951 Mon Sep 17 00:00:00 2001 From: ntruchsess Date: Wed, 30 Jan 2013 14:31:49 +0000 Subject: [PATCH] use SetExtensions git-svn-id: https://fhem.svn.sourceforge.net/svnroot/fhem/trunk/fhem@2605 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- FHEM/20_FRM_OUT.pm | 15 ++++++++++----- FHEM/SetExtensions.pm | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/FHEM/20_FRM_OUT.pm b/FHEM/20_FRM_OUT.pm index 35f716864..342644386 100755 --- a/FHEM/20_FRM_OUT.pm +++ b/FHEM/20_FRM_OUT.pm @@ -5,6 +5,7 @@ use strict; use warnings; use Device::Firmata; use Device::Firmata::Constants qw/ :all /; +use SetExtensions; ##################################### sub @@ -39,21 +40,25 @@ sub FRM_OUT_Set($@) { my ($hash, @a) = @_; + my $name = $hash->{NAME}; + shift @a; + my $cmd = $a[0]; my $value; - if ($a[1] eq "on") { + if ($cmd eq "on") { $value=PIN_HIGH; - } elsif ($a[1] eq "off") { + } elsif ($cmd eq "off") { $value=PIN_LOW; } else { - return "illegal value '".$a[1]."', allowed are 'on' and 'off'"; + my $list = "on off"; + return SetExtensions($hash, $list, $name, @a); } my $iodev = $hash->{IODev}; if (defined $iodev and defined $iodev->{FirmataDevice} and defined $iodev->{FD}) { $iodev->{FirmataDevice}->digital_write($hash->{PIN},$value); main::readingsSingleUpdate($hash,"state",$a[1], 1); } else { - return $hash->{NAME}." no IODev assigned" if (!defined $iodev); - return $hash->{NAME}.", ".$iodev->{NAME}." is not connected"; + return $name." no IODev assigned" if (!defined $iodev); + return $name.", ".$iodev->{NAME}." is not connected"; } return undef; } diff --git a/FHEM/SetExtensions.pm b/FHEM/SetExtensions.pm index 789139dfb..2e68c5080 100644 --- a/FHEM/SetExtensions.pm +++ b/FHEM/SetExtensions.pm @@ -23,7 +23,7 @@ SetExtensions($$@) ); my $hasOn = ($list =~ m/\bon\b/); - my $hasOff = ($list =~ m/\bon\b/); + my $hasOff = ($list =~ m/\boff\b/); if(!$hasOn || !$hasOff) { my $em = AttrVal($name, "eventMap", undef); if($em) {