diff --git a/fhem/FHEM/00_FBAHA.pm b/fhem/FHEM/00_FBAHA.pm index 9aa8c988e..10e897a18 100644 --- a/fhem/FHEM/00_FBAHA.pm +++ b/fhem/FHEM/00_FBAHA.pm @@ -82,7 +82,7 @@ FBAHA_Set($@) foreach my $arg (@arg) { if($arg =~ m/ID:(\d+).*PROP:(.*)/) { my ($i,$p) = ($1,$2,$3); - my $msg = "UNDEFINED FBDECT_$i FBDECT $i $p"; + my $msg = "UNDEFINED FBDECT_$i FBDECT $name:$i $p"; DoTrigger("global", $msg, 1); Log3 $name, 3, "$msg, please define it"; } diff --git a/fhem/FHEM/10_FBDECT.pm b/fhem/FHEM/10_FBDECT.pm index e4477c960..46aaf0d87 100644 --- a/fhem/FHEM/10_FBDECT.pm +++ b/fhem/FHEM/10_FBDECT.pm @@ -65,17 +65,21 @@ FBDECT_Define($$) my $name = shift @a; my $type = shift(@a); # always FBDECT - my $u = "wrong syntax for $name: define FBDECT id props"; + my $u = "wrong syntax for $name: define FBDECT [FBAHAname:]id props"; return $u if(int(@a) != 2); - my $id = shift @a; + my $ioNameAndId = shift @a; + my ($ioName, $id) = (undef, $ioNameAndId); + if($ioNameAndId =~ m/^([^:]*):(.*)$/) { + $ioName = $1; $id = $2; + } return "define $name: wrong id ($id): need a number" if( $id !~ m/^\d+$/i ); $hash->{id} = $id; $hash->{props} = shift @a; - $modules{FBDECT}{defptr}{$id} = $hash; - AssignIoPort($hash); + $modules{FBDECT}{defptr}{$ioNameAndId} = $hash; + AssignIoPort($hash, $ioName); return undef; } @@ -161,9 +165,10 @@ FBDECT_Parse($$@) } my $id = hex(substr($msg, 16, 4)); - my $hash = $modules{FBDECT}{defptr}{$id}; + my $hash = $modules{FBDECT}{defptr}{"$ioName:$id"}; + $hash = $modules{FBDECT}{defptr}{$id} if(!$hash); if(!$hash) { - my $ret = "UNDEFINED FBDECT_$id FBDECT $id switch"; + my $ret = "UNDEFINED FBDECT_$id FBDECT $ioName:$id switch"; Log3 $ioName, 3, "$ret, please define it"; DoTrigger("global", $ret); return ""; @@ -353,7 +358,7 @@ FBDECT_Undef($$) Define Note:Usually the device is created via - autocreate + autocreate. If you rename the corresponding FBAHA + device, take care to modify the FBDECT definitions, as it is not done + automatically.

@@ -439,7 +446,7 @@ FBDECT_Undef($$) Define Achtung:FBDECT Einträge werden noralerweise per - autocreate angelegt. + autocreate angelegt. Falls sie die zugeordnete FBAHA + Instanz umbenennen, dann muss die FBDECT Definition manuell angepasst werden.