From c7d1d34c62603bff93b9a3c243c0a6cea99f798d Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Wed, 8 Apr 2020 10:15:11 +0000 Subject: [PATCH] 00_MQTT2_SERVER.pm/00_MQTT2_CLIENT.pm: add ignoreRegexp (Forum #103737) git-svn-id: https://svn.fhem.de/fhem/trunk@21625 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_MQTT2_CLIENT.pm | 46 +++++++++++++++++++++++++----------- fhem/FHEM/00_MQTT2_SERVER.pm | 29 ++++++++++++++++++----- fhem/www/pgm2/fhemweb.js | 7 +++++- 3 files changed, 61 insertions(+), 21 deletions(-) diff --git a/fhem/FHEM/00_MQTT2_CLIENT.pm b/fhem/FHEM/00_MQTT2_CLIENT.pm index 867e548c7..8f6ec4ff3 100644 --- a/fhem/FHEM/00_MQTT2_CLIENT.pm +++ b/fhem/FHEM/00_MQTT2_CLIENT.pm @@ -40,6 +40,7 @@ MQTT2_CLIENT_Initialize($) clientId disable:1,0 disabledForIntervals + ignoreRegexp lwt lwtRetain keepaliveTimeout @@ -207,8 +208,16 @@ MQTT2_CLIENT_Attr(@) $hash->{SSL} = $param[0] ? $param[0] : 1; } + if($type eq "set" && $attrName eq "ignoreRegexp") { + my $re = join(" ",@param); + return "bad $devName ignoreRegexp: $re" if($re eq "1" || $re =~ m/^\*/); + eval { "Hallo" =~ m/$re/ }; + return "bad $devName ignoreRegexp: $re: $@" if($@); + } + if($attrName eq "clientId") { - $hash->{clientId} = $param[0]; + delete($hash->{clientId}); + $hash->{clientId} = $param[0] if($type eq "set"); } if($attrName eq "sslargs") { @@ -362,6 +371,10 @@ MQTT2_CLIENT_Read($@) if(!IsDisabled($name)) { $val = "" if(!defined($val)); + + my $ir = AttrVal($name, "ignoreRegexp", undef); + next if(defined($ir) && "$tp:$val" =~ m/$ir/); + my $ac = AttrVal($name, "autocreate", "no"); $ac = $ac eq "1" ? "simple" : ($ac eq "0" ? "no" : $ac); # backward comp. @@ -537,7 +550,7 @@ MQTT2_CLIENT_getStr($$) Attributes