From 9a06771aa9c58ec310e640a3250ac9c5f845f74e Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Mon, 1 Jul 2019 06:42:12 +0000 Subject: [PATCH] 00_MQTT2_SERVER.pm: Implement deletion of retain topic git-svn-id: https://svn.fhem.de/fhem/trunk@19753 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_MQTT2_SERVER.pm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/00_MQTT2_SERVER.pm b/fhem/FHEM/00_MQTT2_SERVER.pm index a88bb92fb..e13ffa415 100644 --- a/fhem/FHEM/00_MQTT2_SERVER.pm +++ b/fhem/FHEM/00_MQTT2_SERVER.pm @@ -154,7 +154,7 @@ MQTT2_SERVER_Set($@) if($a[0] eq "publish") { shift(@a); my $retain; - if(@a>2 && $a[0] eq "-r") { + if(@a>1 && $a[0] eq "-r") { $retain = 1; shift(@a); } @@ -405,9 +405,14 @@ MQTT2_SERVER_doPublish($$$$;$) $src = $server if(!defined($src)); if($retain) { - my $now = gettimeofday(); - my %h = ( ts=>$now, val=>$val ); - $server->{retain}{$tp} = \%h; + if(!defined($val) || $val eq "") { + delete($server->{retain}{$tp}); + } else { + my $now = gettimeofday(); + my %h = ( ts=>$now, val=>$val ); + $server->{retain}{$tp} = \%h; + } + # Save it my %nots = map { $_ => $server->{retain}{$_}{val} }