2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

10_ZWave.pm: add links to parent/children for Multi_Endpoint devices (Forum #50176)

git-svn-id: https://svn.fhem.de/fhem/trunk@12237 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2016-10-02 12:22:44 +00:00
parent 949bb9afa1
commit a30b0cb4dc

View File

@ -21,6 +21,7 @@ sub ZWave_secStart($);
sub ZWave_secEnd($);
sub ZWave_configParseModel($;$);
sub ZWave_callbackId($);
sub ZWave_setEndpoints($);
our ($FW_ME,$FW_tp,$FW_ss);
our %zwave_id2class;
@ -650,6 +651,8 @@ ZWave_Initialize($)
#############################
my $zw_init_ordered;
sub
ZWave_Define($$)
{
@ -688,9 +691,44 @@ ZWave_Define($$)
asyncOutput($hash->{IODev}{addCL}, "created $name") if($hash->{IODev});
ZWave_SetClasses($homeId, $id, undef, $a[0]);
}
if($init_done) {
ZWave_setEndpoints($hash);
} else {
if(!$zw_init_ordered) {
$zw_init_ordered = 1;
InternalTimer(1, "ZWave_setEndpoints", $hash, 0);
}
}
return undef;
}
sub
ZWave_setEndpoints($)
{
my $mp = $modules{ZWave}{defptr};
for my $k (sort keys %{$mp}) {
my $h = $mp->{$k};
delete($h->{endpointRoot});
delete($h->{endpointChildren});
}
for my $k (sort keys %{$mp}) {
my $h = $mp->{$k};
next if($h->{nodeIdHex} !~ m/(..)(..)/);
my ($root, $lid) = ($1, $2);
my $rd = $mp->{$h->{homeId}." ".$root};
$h->{endpointRoot} = ($rd ? $rd->{NAME} : "unknown");
if($rd) {
if($rd->{endpointChildren}) {
$rd->{endpointChildren} .= " ".$h->{NAME};
} else {
$rd->{endpointChildren} = $h->{NAME};
}
}
}
}
sub
ZWave_initFromModelfile($$$)
{