diff --git a/fhem/FHEM/30_HUEBridge.pm b/fhem/FHEM/30_HUEBridge.pm index fb1e1989b..41e47df1b 100644 --- a/fhem/FHEM/30_HUEBridge.pm +++ b/fhem/FHEM/30_HUEBridge.pm @@ -26,6 +26,7 @@ sub HUEBridge_Initialize($) #Consumer $hash->{DefFn} = "HUEBridge_Define"; + $hash->{NOTIFYDEV} = "global"; $hash->{NotifyFn} = "HUEBridge_Notify"; $hash->{SetFn} = "HUEBridge_Set"; $hash->{GetFn} = "HUEBridge_Get"; @@ -91,7 +92,6 @@ HUEBridge_Define($$) } if( $init_done ) { - delete $modules{$hash->{TYPE}}{NotifyFn}; HUEBridge_OpenDev( $hash ); } @@ -109,13 +109,7 @@ HUEBridge_Notify($$) return if($attr{$name} && $attr{$name}{disable}); - delete $modules{$type}{NotifyFn}; - delete $hash->{NTFY_ORDER} if($hash->{NTFY_ORDER}); - - foreach my $d (keys %defs) { - next if($defs{$d}{TYPE} ne "$type"); - HUEBridge_OpenDev($defs{$d}); - } + HUEBridge_OpenDev($hash); return undef; } diff --git a/fhem/FHEM/32_mailcheck.pm b/fhem/FHEM/32_mailcheck.pm index 8e731888c..88a3b841b 100755 --- a/fhem/FHEM/32_mailcheck.pm +++ b/fhem/FHEM/32_mailcheck.pm @@ -32,6 +32,7 @@ mailcheck_Initialize($) $hash->{ReadFn} = "mailcheck_Read"; $hash->{DefFn} = "mailcheck_Define"; + $hash->{NOTIFYDEV} = "global"; $hash->{NotifyFn} = "mailcheck_Notify"; $hash->{UndefFn} = "mailcheck_Undefine"; #$hash->{SetFn} = "mailcheck_Set"; @@ -80,7 +81,6 @@ mailcheck_Define($$) $hash->{HAS_MIME} = $mailcheck_hasMIME; if( $init_done ) { - delete $modules{mailcheck}->{NotifyFn}; mailcheck_Disconnect($hash); mailcheck_Connect($hash); } elsif( $hash->{STATE} ne "???" ) { @@ -98,12 +98,7 @@ mailcheck_Notify($$) return if($dev->{NAME} ne "global"); return if(!grep(m/^INITIALIZED|REREADCFG$/, @{$dev->{CHANGED}})); - delete $modules{$hash->{TYPE}}->{NotifyFn}; - - foreach my $d (keys %defs) { - next if($defs{$d}{TYPE} ne $hash->{TYPE}); - mailcheck_Connect($defs{$d}); - } + mailcheck_Connect($hash); } sub diff --git a/fhem/FHEM/32_withings.pm b/fhem/FHEM/32_withings.pm index 99ebad8ef..5bc5ce2c7 100644 --- a/fhem/FHEM/32_withings.pm +++ b/fhem/FHEM/32_withings.pm @@ -40,6 +40,7 @@ withings_Initialize($) my ($hash) = @_; $hash->{DefFn} = "withings_Define"; + $hash->{NOTIFYDEV} = "global"; $hash->{NotifyFn} = "withings_Notify"; $hash->{UndefFn} = "withings_Undefine"; #$hash->{SetFn} = "withings_Set"; @@ -117,7 +118,6 @@ withings_Define($$) $hash->{STATE} = "Initialized"; if( $init_done ) { - delete $modules{withings}->{NotifyFn}; withings_initUser($hash) if( $hash->{SUBTYPE} eq "USER" ); withings_connect($hash) if( $hash->{SUBTYPE} eq "ACCOUNT" ); withings_initDevice($hash) if( $hash->{SUBTYPE} eq "DEVICE" ); @@ -134,14 +134,9 @@ withings_Notify($$) return if($dev->{NAME} ne "global"); return if(!grep(m/^INITIALIZED|REREADCFG$/, @{$dev->{CHANGED}})); - delete $modules{$hash->{TYPE}}->{NotifyFn}; - - foreach my $d (keys %defs) { - next if($defs{$d}{TYPE} ne $hash->{TYPE}); - withings_initUser($defs{$d}) if( $defs{$d}->{SUBTYPE} eq "USER" ); - withings_connect($defs{$d}) if( $defs{$d}->{SUBTYPE} eq "ACCOUNT" ); - withings_initDevice($defs{$d}) if( $defs{$d}->{SUBTYPE} eq "DEVICE" ); - } + withings_initUser($hash) if( $hash->{SUBTYPE} eq "USER" ); + withings_connect($hash) if( $hash->{SUBTYPE} eq "ACCOUNT" ); + withings_initDevice($hash) if( $hash->{SUBTYPE} eq "DEVICE" ); } sub diff --git a/fhem/FHEM/38_CO20.pm b/fhem/FHEM/38_CO20.pm index b46be86c4..4b9be53fc 100755 --- a/fhem/FHEM/38_CO20.pm +++ b/fhem/FHEM/38_CO20.pm @@ -16,6 +16,7 @@ CO20_Initialize($) my ($hash) = @_; $hash->{DefFn} = "CO20_Define"; + $hash->{NOTIFYDEV} = "global"; $hash->{NotifyFn} = "CO20_Notify"; $hash->{UndefFn} = "CO20_Undefine"; #$hash->{SetFn} = "CO20_Set"; @@ -47,7 +48,6 @@ CO20_Define($$) $hash->{NAME} = $name; if( $init_done ) { - delete $modules{CO20}->{NotifyFn}; CO20_Disconnect($hash); CO20_Connect($hash); } elsif( $hash->{STATE} ne "???" ) { @@ -62,14 +62,10 @@ CO20_Notify($$) { my ($hash,$dev) = @_; - if( grep(m/^INITIALIZED$/, @{$dev->{CHANGED}}) ) { - delete $modules{CO20}->{NotifyFn}; + return if($dev->{NAME} ne "global"); + return if(!grep(m/^INITIALIZED|REREADCFG$/, @{$dev->{CHANGED}})); - foreach my $d (keys %defs) { - next if($defs{$d}{TYPE} ne "CO20"); - CO20_Connect($defs{$d}); - } - } + CO20_Connect($hash); } my $VENDOR = 0x03eb;