mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
MQTT2_SERVER/CLIENT: Add timestamp to MQTT traffic (Forum #127223)
git-svn-id: https://svn.fhem.de/fhem/trunk@26742 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
ee7cb5e7fb
commit
097fe1830d
@ -741,13 +741,15 @@ MQTT2_CLIENT_feedTheList($$$)
|
|||||||
my ($server, $tp, $val, $cid) = @_;
|
my ($server, $tp, $val, $cid) = @_;
|
||||||
my $fl = $server->{".feedList"};
|
my $fl = $server->{".feedList"};
|
||||||
if($fl) {
|
if($fl) {
|
||||||
|
my $now = gettimeofday();
|
||||||
|
my $ts = sprintf("%s.%03d", FmtTime($now), 1000*($now-int($now)));
|
||||||
foreach my $fwid (keys %{$fl}) {
|
foreach my $fwid (keys %{$fl}) {
|
||||||
my $cl = $FW_id2inform{$fwid};
|
my $cl = $FW_id2inform{$fwid};
|
||||||
if(!$cl || !$cl->{inform}{filter} || $cl->{inform}{filter} ne '^$') {
|
if(!$cl || !$cl->{inform}{filter} || $cl->{inform}{filter} ne '^$') {
|
||||||
delete($fl->{$fwid});
|
delete($fl->{$fwid});
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
FW_AsyncOutput($cl, "", toJSON([defined($cid)?"RCVD":"SENT", $tp,$val]));
|
FW_AsyncOutput($cl,"",toJSON([$ts,defined($cid)?"RCVD":"SENT",$tp,$val]));
|
||||||
}
|
}
|
||||||
delete($server->{".feedList"}) if(!keys %{$fl});
|
delete($server->{".feedList"}) if(!keys %{$fl});
|
||||||
}
|
}
|
||||||
|
@ -539,12 +539,12 @@ MQTT2_SERVER_doPublish($$$$;$)
|
|||||||
my ($src, $server, $tp, $val, $retain) = @_;
|
my ($src, $server, $tp, $val, $retain) = @_;
|
||||||
$val = "" if(!defined($val));
|
$val = "" if(!defined($val));
|
||||||
$src = $server if(!defined($src));
|
$src = $server if(!defined($src));
|
||||||
|
my $now = gettimeofday();
|
||||||
|
|
||||||
if($retain) {
|
if($retain) {
|
||||||
if(!defined($val) || $val eq "") {
|
if(!defined($val) || $val eq "") {
|
||||||
delete($server->{retain}{$tp});
|
delete($server->{retain}{$tp});
|
||||||
} else {
|
} else {
|
||||||
my $now = gettimeofday();
|
|
||||||
my %h = ( ts=>$now, val=>$val );
|
my %h = ( ts=>$now, val=>$val );
|
||||||
$server->{retain}{$tp} = \%h;
|
$server->{retain}{$tp} = \%h;
|
||||||
}
|
}
|
||||||
@ -554,7 +554,7 @@ MQTT2_SERVER_doPublish($$$$;$)
|
|||||||
my %nots = map { $_ => $server->{retain}{$_}{val} }
|
my %nots = map { $_ => $server->{retain}{$_}{val} }
|
||||||
keys %{$server->{retain}};
|
keys %{$server->{retain}};
|
||||||
my $rname = AttrVal($server->{NAME}, "hideRetain", 0) ? ".RETAIN":"RETAIN";
|
my $rname = AttrVal($server->{NAME}, "hideRetain", 0) ? ".RETAIN":"RETAIN";
|
||||||
setReadingsVal($server, $rname, toJSON(\%nots),FmtDateTime(gettimeofday()));
|
setReadingsVal($server, $rname, toJSON(\%nots),FmtDateTime($now));
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach my $clName (keys %{$server->{clients}}) {
|
foreach my $clName (keys %{$server->{clients}}) {
|
||||||
@ -583,13 +583,14 @@ MQTT2_SERVER_doPublish($$$$;$)
|
|||||||
|
|
||||||
my $fl = $server->{".feedList"};
|
my $fl = $server->{".feedList"};
|
||||||
if($fl) {
|
if($fl) {
|
||||||
|
my $ts = sprintf("%s.%03d", FmtTime($now), 1000*($now-int($now)));
|
||||||
foreach my $fwid (keys %{$fl}) {
|
foreach my $fwid (keys %{$fl}) {
|
||||||
my $cl = $FW_id2inform{$fwid};
|
my $cl = $FW_id2inform{$fwid};
|
||||||
if(!$cl || !$cl->{inform}{filter} || $cl->{inform}{filter} ne '^$') {
|
if(!$cl || !$cl->{inform}{filter} || $cl->{inform}{filter} ne '^$') {
|
||||||
delete($fl->{$fwid});
|
delete($fl->{$fwid});
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
FW_AsyncOutput($cl, "", toJSON([defined($cid)?$cid:"SENT", $tp, $val]));
|
FW_AsyncOutput($cl, "", toJSON([$ts,defined($cid)?$cid:"SENT",$tp,$val]));
|
||||||
}
|
}
|
||||||
delete($server->{".feedList"}) if(!keys %{$fl});
|
delete($server->{".feedList"}) if(!keys %{$fl});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user