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($) {