diff --git a/fhem/FHEM/93_FHEM2FHEM.pm b/fhem/FHEM/93_FHEM2FHEM.pm index e9523c2c9..0ccb0f8f7 100755 --- a/fhem/FHEM/93_FHEM2FHEM.pm +++ b/fhem/FHEM/93_FHEM2FHEM.pm @@ -156,7 +156,6 @@ FHEM2FHEM_Read($) Log3 $name, 4, "$name: $rmsg"; if(!$defs{$name}) { - #LoadModule($type); Why do we need this line? $defs{$name}{NAME} = $name; $defs{$name}{TYPE} = $type; $defs{$name}{STATE} = $msg; @@ -166,7 +165,11 @@ FHEM2FHEM_Read($) delete($defs{$name}); } else { - DoTrigger($name, $msg); + if($msg =~ m/^([^:]*): (.*)$/) { + readingsSingleUpdate($defs{$name}, $1, $2, 1); + } else { + DoTrigger($name, $msg); + } } @@ -362,8 +365,10 @@ FHEM2FHEM_Set($@) FHEM. It is possible to create a device with the same name on both FHEM instances, but if both of them receive the same event (e.g. because both of them have a CUL attached), then all associated FileLogs/notifys will be - triggered twice. - + triggered twice.
+ If the remote device is created with the same name locally (e.g. as dummy), + then the local readings are also updated. +
  • RAW
    By using this type the local FHEM will receive raw events from the remote FHEM device devicename, just like if it would be attached to the @@ -456,7 +461,11 @@ FHEM2FHEM_Set($@) angesprochen werden. Auf beiden FHEM-Installationen können Geräte gleichen Namens angelegt werden, aber wenn beide dasselbe Ereignis empfangen (z.B. wenn an beiden Installationen CULs angeschlossen - sind), werden alle FileLogs und notifys doppelt ausgelöst.
  • + sind), werden alle FileLogs und notifys doppelt ausgelöst.
    + Falls man lokal Geräte mit dem gleichen Namen (z.Bsp. als dummy) + angelegt hat, dann werden die Readings von dem lokalen Gerät + aktualisiert. +
  • RAW
    Bei diesem Verbindungstyp werden unaufbereitete Ereignisse (raw messages) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 932e2715a..7d55955a6 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -4496,10 +4496,14 @@ notifyRegexpChanged($$) $hash->{NOTIFYDEV} = $dev; } elsif($re =~ m/\|/ && $re =~ /^\(?([^().+*?\[\]\\]+)\)?$/) { # Regexp Wizard - my @list = split(/\|/, $1); # Forum #54536 - @list = map { m/^([^:]*)(?::.*)?$/ ? $1 : "" } @list; - $hash->{NOTIFYDEV} = join(",", @list) if(@list && @list <= 5); - delete($hash->{NOTIFYDEV}) if(@list && @list > 5); + my @list2 = split(/\|/, $1); # Forum #54536 + my @list = grep { m/./ } # Forum #62369 + map { (m/^([^:]*)(?::.*)?$/ && $defs{$1}) ? $1 : "" } @list2; + if(@list && @list <= 5 && int(@list) == int(@list2)) { + $hash->{NOTIFYDEV} = join(",", @list); + } else { + delete($hash->{NOTIFYDEV}); + } } else { delete($hash->{NOTIFYDEV}); # when called by modify