From 4f1d60b411e9873fe77c46cc5f64a8ac8999603f Mon Sep 17 00:00:00 2001 From: ntruchsess <> Date: Sun, 20 Oct 2013 15:38:28 +0000 Subject: [PATCH] Merge branch 'dev' git-svn-id: https://svn.fhem.de/fhem/trunk@4078 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_FRM.pm | 13 +++++++++++++ fhem/FHEM/20_FRM_AD.pm | 7 ------- fhem/FHEM/20_FRM_I2C.pm | 8 +------- fhem/FHEM/20_FRM_IN.pm | 19 ++++++------------- fhem/FHEM/20_FRM_LCD.pm | 7 ------- fhem/FHEM/20_FRM_OUT.pm | 8 +------- fhem/FHEM/20_FRM_PWM.pm | 8 +------- fhem/FHEM/20_FRM_SERVO.pm | 8 +------- 8 files changed, 23 insertions(+), 55 deletions(-) diff --git a/fhem/FHEM/10_FRM.pm b/fhem/FHEM/10_FRM.pm index 2e392d739..db8ab9027 100755 --- a/fhem/FHEM/10_FRM.pm +++ b/fhem/FHEM/10_FRM.pm @@ -402,6 +402,19 @@ sub FRM_Client_Undef($$) { my ($hash, $name) = @_; + my $pin = $hash->{PIN}; + eval { + my $firmata = FRM_Client_FirmataDevice($hash); + $firmata->pin_mode($pin,PIN_ANALOG); + }; + if ($@) { + eval { + my $firmata = FRM_Client_FirmataDevice($hash); + $firmata->pin_mode($pin,PIN_INPUT); + $firmata->digital_write($pin,0); + }; + } + return undef; } sub diff --git a/fhem/FHEM/20_FRM_AD.pm b/fhem/FHEM/20_FRM_AD.pm index 037bfa681..8b0d42280 100755 --- a/fhem/FHEM/20_FRM_AD.pm +++ b/fhem/FHEM/20_FRM_AD.pm @@ -23,7 +23,6 @@ FRM_AD_Initialize($) $hash->{GetFn} = "FRM_AD_Get"; $hash->{DefFn} = "FRM_Client_Define"; $hash->{InitFn} = "FRM_AD_Init"; - $hash->{UndefFn} = "FRM_AD_Undef"; $hash->{AttrList} = "IODev upper-threshold lower-threshold loglevel:0,1,2,3,4,5,6 $main::readingFnAttributes"; } @@ -100,12 +99,6 @@ FRM_AD_Get($) return undef; } -sub -FRM_AD_Undef($$) -{ - my ($hash, $name) = @_; -} - 1; =pod diff --git a/fhem/FHEM/20_FRM_I2C.pm b/fhem/FHEM/20_FRM_I2C.pm index 8cde8da75..927d2cd56 100755 --- a/fhem/FHEM/20_FRM_I2C.pm +++ b/fhem/FHEM/20_FRM_I2C.pm @@ -14,7 +14,7 @@ FRM_I2C_Initialize($) $hash->{DefFn} = "FRM_Client_Define"; $hash->{InitFn} = "FRM_I2C_Init"; - $hash->{UndefFn} = "FRM_I2C_Undef"; + $hash->{UndefFn} = "FRM_Client_Undef"; $hash->{AttrFn} = "FRM_I2C_Attr"; $hash->{AttrList} = "IODev loglevel:0,1,2,3,4,5 $main::readingFnAttributes"; @@ -50,12 +50,6 @@ sub FRM_I2C_Attr(@) { } } -sub -FRM_I2C_Undef($$) -{ - my ($hash, $name) = @_; -} - 1; =pod diff --git a/fhem/FHEM/20_FRM_IN.pm b/fhem/FHEM/20_FRM_IN.pm index f5750111e..30e73e691 100755 --- a/fhem/FHEM/20_FRM_IN.pm +++ b/fhem/FHEM/20_FRM_IN.pm @@ -30,7 +30,7 @@ FRM_IN_Initialize($) $hash->{AttrFn} = "FRM_IN_Attr"; $hash->{DefFn} = "FRM_Client_Define"; $hash->{InitFn} = "FRM_IN_Init"; - $hash->{UndefFn} = "FRM_IN_Undef"; + $hash->{UndefFn} = "FRM_Client_Undef"; $hash->{AttrList} = "IODev count-mode:none,rising,falling,both count-threshold reset-on-threshold-reached:yes,no internal-pullup:on,off loglevel:0,1,2,3,4,5 $main::readingFnAttributes"; } @@ -42,13 +42,12 @@ FRM_IN_Init($$) my $ret = FRM_Init_Pin_Client($hash,$args,PIN_INPUT); return $ret if (defined $ret); eval { - my $firmata = FRM_Client_FirmataDevice($hash); - $firmata->observe_digital($hash->{PIN},\&FRM_IN_observer,$hash); - if (defined (my $pullup = AttrVal($hash->{NAME},"internal-pullup",undef))) { - $firmata->digital_write($hash->{PIN},$pullup eq "on" ? 1 : 0); - } + my $firmata = FRM_Client_FirmataDevice($hash); + $firmata->observe_digital($hash->{PIN},\&FRM_IN_observer,$hash); + if (defined (my $pullup = AttrVal($hash->{NAME},"internal-pullup",undef))) { + $firmata->digital_write($hash->{PIN},$pullup eq "on" ? 1 : 0); + } }; - return $@ if (defined $@); if (! (defined AttrVal($hash->{NAME},"stateFormat",undef))) { $main::attr{$hash->{NAME}}{"stateFormat"} = "reading"; } @@ -192,12 +191,6 @@ FRM_IN_Attr($$$$) { } } -sub -FRM_IN_Undef($$) -{ - my ($hash, $name) = @_; -} - 1; =pod diff --git a/fhem/FHEM/20_FRM_LCD.pm b/fhem/FHEM/20_FRM_LCD.pm index 3bafc42b2..77e569d8e 100755 --- a/fhem/FHEM/20_FRM_LCD.pm +++ b/fhem/FHEM/20_FRM_LCD.pm @@ -28,7 +28,6 @@ FRM_LCD_Initialize($) $hash->{DefFn} = "FRM_Client_Define"; $hash->{InitFn} = "FRM_LCD_Init"; $hash->{SetFn} = "FRM_LCD_Set"; - $hash->{UndefFn} = "FRM_LCD_Undef"; $hash->{AttrFn} = "FRM_LCD_Attr"; $hash->{StateFn} = "FRM_LCD_State"; @@ -207,12 +206,6 @@ STATEHANDLER: { } } -sub -FRM_LCD_Undef($$) -{ - my ($hash, $name) = @_; -} - 1; =pod diff --git a/fhem/FHEM/20_FRM_OUT.pm b/fhem/FHEM/20_FRM_OUT.pm index 164f6c09a..ab56ad9ed 100755 --- a/fhem/FHEM/20_FRM_OUT.pm +++ b/fhem/FHEM/20_FRM_OUT.pm @@ -16,7 +16,7 @@ FRM_OUT_Initialize($) $hash->{SetFn} = "FRM_OUT_Set"; $hash->{DefFn} = "FRM_Client_Define"; $hash->{InitFn} = "FRM_OUT_Init"; - $hash->{UndefFn} = "FRM_OUT_Undef"; + $hash->{UndefFn} = "FRM_Client_Undef"; $hash->{StateFn} = "FRM_OUT_State"; $hash->{AttrList} = "restoreOnReconnect:on,off restoreOnStartup:on,off IODev loglevel:0,1,2,3,4,5 $main::readingFnAttributes"; @@ -74,12 +74,6 @@ STATEHANDLER: { } } -sub -FRM_OUT_Undef($$) -{ - my ($hash, $name) = @_; -} - 1; =pod diff --git a/fhem/FHEM/20_FRM_PWM.pm b/fhem/FHEM/20_FRM_PWM.pm index 32bf60228..7748e8b47 100755 --- a/fhem/FHEM/20_FRM_PWM.pm +++ b/fhem/FHEM/20_FRM_PWM.pm @@ -20,7 +20,7 @@ FRM_PWM_Initialize($) $hash->{SetFn} = "FRM_PWM_Set"; $hash->{DefFn} = "FRM_Client_Define"; $hash->{InitFn} = "FRM_PWM_Init"; - $hash->{UndefFn} = "FRM_PWM_Undef"; + $hash->{UndefFn} = "FRM_Client_Undef"; $hash->{StateFn} = "FRM_PWM_State"; $hash->{AttrList} = "restoreOnReconnect:on,off restoreOnStartup:on,off IODev loglevel:0,1,2,3,4,5 $main::readingFnAttributes"; @@ -77,12 +77,6 @@ STATEHANDLER: { } } -sub -FRM_PWM_Undef($$) -{ - my ($hash, $name) = @_; -} - 1; =pod diff --git a/fhem/FHEM/20_FRM_SERVO.pm b/fhem/FHEM/20_FRM_SERVO.pm index 9ed1e576b..806fc21c9 100755 --- a/fhem/FHEM/20_FRM_SERVO.pm +++ b/fhem/FHEM/20_FRM_SERVO.pm @@ -20,7 +20,7 @@ FRM_SERVO_Initialize($) $hash->{SetFn} = "FRM_SERVO_Set"; $hash->{DefFn} = "FRM_Client_Define"; $hash->{InitFn} = "FRM_SERVO_Init"; - $hash->{UndefFn} = "FRM_SERVO_Undef"; + $hash->{UndefFn} = "FRM_Client_Undef"; $hash->{AttrFn} = "FRM_SERVO_Attr"; $hash->{AttrList} = "min-pulse max-pulse IODev loglevel:0,1,2,3,4,5 $main::readingFnAttributes"; @@ -76,12 +76,6 @@ FRM_SERVO_Set($@) return $@; } -sub -FRM_SERVO_Undef($$) -{ - my ($hash, $name) = @_; -} - 1; =pod