From d2f8255cccecaaf742d0627ad6243facedbf7a87 Mon Sep 17 00:00:00 2001 From: justme-1968 Date: Fri, 15 Feb 2019 19:18:13 +0000 Subject: [PATCH] 30_tradfri.pm, 39_alexa.pm: stop and start CoProcess on events from npmjs module git-svn-id: https://svn.fhem.de/fhem/trunk@18602 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/30_tradfri.pm | 17 +++++++++++++---- fhem/FHEM/39_alexa.pm | 16 +++++++++++++--- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/fhem/FHEM/30_tradfri.pm b/fhem/FHEM/30_tradfri.pm index 58e15c461..2988f1304 100644 --- a/fhem/FHEM/30_tradfri.pm +++ b/fhem/FHEM/30_tradfri.pm @@ -7,7 +7,6 @@ use strict; use warnings; use CoProcess; -#require "30_HUEBridge.pm"; require "$attr{global}{modpath}/FHEM/30_HUEBridge.pm"; use JSON; @@ -78,7 +77,7 @@ tradfri_Define($$) tradfri_AttrDefaults($hash); - $hash->{NOTIFYDEV} = "global"; + $hash->{NOTIFYDEV} = "global,global:npmjs.*tradfri-fhem.*"; if( !AttrVal($name, 'devStateIcon', undef ) ) { CommandAttr(undef, "$name createGroupReadings 0"); @@ -107,9 +106,19 @@ tradfri_Notify($$) my ($hash,$dev) = @_; return if($dev->{NAME} ne "global"); - return if(!grep(m/^INITIALIZED|REREADCFG$/, @{$dev->{CHANGED}})); - CoProcess::start($hash); + if( grep(m/^npmjs:BEGIN.*tradfri-fhem.*/, @{$dev->{CHANGED}}) ) { + CoProcess::stop($hash); + return undef; + + } elsif( grep(m/^npmjs:FINISH.*tradfri-fhem.*/, @{$dev->{CHANGED}}) ) { + CoProcess::start($hash); + return undef; + + } elsif( grep(m/^INITIALIZED|REREADCFG$/, @{$dev->{CHANGED}}) ) { + CoProcess::start($hash); + return undef; + } return undef; } diff --git a/fhem/FHEM/39_alexa.pm b/fhem/FHEM/39_alexa.pm index 91c0a42d1..005c5ffe8 100644 --- a/fhem/FHEM/39_alexa.pm +++ b/fhem/FHEM/39_alexa.pm @@ -129,7 +129,7 @@ alexa_Define($$) alexa_AttrDefaults($hash); - $hash->{NOTIFYDEV} = "global"; + $hash->{NOTIFYDEV} = "global,global:npmjs.*alexa-fhem.*"; if( $attr{global}{logdir} ) { CommandAttr(undef, "$name alexaFHEM-log %L/alexa-%Y-%m-%d.log") if( !AttrVal($name, 'alexaFHEM-log', undef ) ); @@ -163,9 +163,19 @@ alexa_Notify($$) my ($hash,$dev) = @_; return if($dev->{NAME} ne "global"); - return if(!grep(m/^INITIALIZED|REREADCFG$/, @{$dev->{CHANGED}})); - CoProcess::start($hash); + if( grep(m/^npmjs:BEGIN.*alexa-fhem.*/, @{$dev->{CHANGED}}) ) { + CoProcess::stop($hash); + return undef; + + } elsif( grep(m/^npmjs:FINISH.*alexa-fhem.*/, @{$dev->{CHANGED}}) ) { + CoProcess::start($hash); + return undef; + + } elsif( grep(m/^INITIALIZED|REREADCFG$/, @{$dev->{CHANGED}}) ) { + CoProcess::start($hash); + return undef; + } return undef; }