From 8c79cfbc45cb78492c7c87eff7769bf20bae11e5 Mon Sep 17 00:00:00 2001 From: jpawlowski Date: Fri, 21 Apr 2017 19:19:05 +0000 Subject: [PATCH] RESIDENTS: send global events after module internal initialization and modification git-svn-id: https://svn.fhem.de/fhem/trunk@14063 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_RESIDENTS.pm | 1 + fhem/FHEM/20_GUEST.pm | 1 + fhem/FHEM/20_ROOMMATE.pm | 1 + fhem/FHEM/RESIDENTStk.pm | 13 +++++++++++-- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/fhem/FHEM/10_RESIDENTS.pm b/fhem/FHEM/10_RESIDENTS.pm index e5d78723f..2f433486d 100644 --- a/fhem/FHEM/10_RESIDENTS.pm +++ b/fhem/FHEM/10_RESIDENTS.pm @@ -18,6 +18,7 @@ sub RESIDENTS_Initialize($) { $hash->{AttrFn} = "RESIDENTStk_Attr"; $hash->{NotifyFn} = "RESIDENTStk_Notify"; + $hash->{'.READY'} = 0; $hash->{NotifyOrderPrefix} = "45-"; $hash->{AttrList} = "disable:1,0 disabledForIntervals do_not_notify:1,0 " diff --git a/fhem/FHEM/20_GUEST.pm b/fhem/FHEM/20_GUEST.pm index 41946dc8d..08586c317 100644 --- a/fhem/FHEM/20_GUEST.pm +++ b/fhem/FHEM/20_GUEST.pm @@ -19,6 +19,7 @@ sub GUEST_Initialize($) { $hash->{AttrFn} = "RESIDENTStk_Attr"; $hash->{NotifyFn} = "RESIDENTStk_Notify"; + $hash->{'.READY'} = 0; $hash->{NotifyOrderPrefix} = "35-"; $hash->{AttrList} = "disable:1,0 disabledForIntervals do_not_notify:1,0 " diff --git a/fhem/FHEM/20_ROOMMATE.pm b/fhem/FHEM/20_ROOMMATE.pm index 95eee153d..1bbeba319 100644 --- a/fhem/FHEM/20_ROOMMATE.pm +++ b/fhem/FHEM/20_ROOMMATE.pm @@ -19,6 +19,7 @@ sub ROOMMATE_Initialize($) { $hash->{AttrFn} = "RESIDENTStk_Attr"; $hash->{NotifyFn} = "RESIDENTStk_Notify"; + $hash->{'.READY'} = 0; $hash->{NotifyOrderPrefix} = "40-"; $hash->{AttrList} = "disable:1,0 disabledForIntervals do_not_notify:1,0 " diff --git a/fhem/FHEM/RESIDENTStk.pm b/fhem/FHEM/RESIDENTStk.pm index 29caf9497..1f80f9e5f 100644 --- a/fhem/FHEM/RESIDENTStk.pm +++ b/fhem/FHEM/RESIDENTStk.pm @@ -1084,14 +1084,13 @@ sub RESIDENTStk_Notify($$) { # init RESIDENTS, ROOMMATE or GUEST devices after boot if ( $_ =~ -m/^INITIALIZED|REREADCFG|DEFINED.+|MODIFIED.+|RENAMED.+|DELETED.+$/ +m/^(INITIALIZED|REREADCFG|DEFINED|MODIFIED|RENAMED|DELETED)(?:\s+(.*))?$/ ) { RESIDENTStk_findResidentSlaves($hash) if ( $TYPE eq "RESIDENTS" ); RESIDENTStk_findDummySlaves($name) if ( $TYPE ne "RESIDENTS" && $TYPE ne "dummy" ); - return ""; } # only process attribute events @@ -3530,6 +3529,16 @@ sub RESIDENTStk_findDummySlaves($) { $hash->{NOTIFYDEV} .= $d; } } + + # finish initialization + if ( $hash->{'.READY'} ) { + DoTrigger( "global", "MODIFIED $name", 1 ); + } + else { + $hash->{'.READY'} = 1; + DoTrigger( "global", "INITIALIZED $name", 1 ); + } + return ""; } sub RESIDENTStk_GetPrefixFromType($) {