diff --git a/fhem/FHEM/98_livetracking.pm b/fhem/FHEM/98_livetracking.pm index e546fc6f6..58c692da6 100644 --- a/fhem/FHEM/98_livetracking.pm +++ b/fhem/FHEM/98_livetracking.pm @@ -58,7 +58,6 @@ sub livetracking_Initialize($) { "home ". "swarmHome ". "owntracksDevice ". - "traccarDevice ". "beacon_0 ". "beacon_1 ". "beacon_2 ". @@ -117,7 +116,7 @@ sub livetracking_Define($$$) { if($req) { - $hash->{NOTIFYDEV} = AttrVal($name, "owntracksDevice" , AttrVal($name, "traccarDevice" , "owntracks")); + $hash->{NOTIFYDEV} = AttrVal($name, "owntracksDevice" , "owntracks"); } else { @@ -194,7 +193,7 @@ sub livetracking_Set($$@) { $messagetext = '"content":"'.FmtDateTime(time()).'
FHEM:

'.$messagetext.'",'; } - fhem('set '.$devname.' msg {"_type":"cmd","action":"action",'.$messagetext.$notifytext.'"tst":'.time().'}'); + fhem('set '.$devname.' cmd {"_type":"cmd","action":"action",'.$messagetext.$notifytext.'"tst":'.time().'}'); #fhem('set '.$devname.' msg {"_type":"cmd","action":"notify", "content":"'.$notifytext.'","tst":'.time().'}') if($notifytext ne ""); } @@ -304,9 +303,6 @@ sub livetracking_Attr(@) { if ($attr && $attr eq 'owntracksDevice') { $hash->{NOTIFYDEV} = $val if defined $val; } - if ($attr && $attr eq 'traccarDevice') { - $hash->{NOTIFYDEV} = $val if defined $val; - } elsif ($attr && $attr =~ /^(zonename_)([0-9]+)/) { fhem( "deletereading $name zone_".$2 ); } @@ -688,25 +684,23 @@ sub livetracking_Notify($$) { Log3 ($name, 6, "$name OwnTracks data: /n".Dumper($dev)); - if(!($dev->{CHANGED}[0] =~ m/_type":[ ]?"location/ || $dev->{CHANGED}[0] =~ m/_type":[ ]?"position/ || $dev->{CHANGED}[0] =~ m/_type":[ ]?"transition/ || $dev->{CHANGED}[0] =~ m/_type":[ ]?"steps/ || $dev->{CHANGED}[0] =~ m/_type":[ ]?"beacon/ )) + my $invaliddata = 1; + if(($dev->{CHANGED}[0] =~ m/_type":[ ]?"location/ || $dev->{CHANGED}[0] =~ m/_type":[ ]?"position/ || $dev->{CHANGED}[0] =~ m/_type":[ ]?"transition/ || $dev->{CHANGED}[0] =~ m/_type":[ ]?"steps/ || $dev->{CHANGED}[0] =~ m/_type":[ ]?"beacon/ )) { - Log3 ($name, 5, "WRONG OWNTRACKS TYPE ".Dumper($dev->{CHANGED}[0])); + $invaliddata = 0;#owntracks + } + elsif(($dev->{CHANGED}[0] =~ m/position":[ ]?{/)) + { + $invaliddata = 0;#traccar + } + if($invaliddata == 1){ + Log3 ($name, 5, "WRONG MQTT TYPE ".Dumper($dev->{CHANGED}[0])); return undef; } $data= substr($dev->{CHANGED}[0],index($dev->{CHANGED}[0], ": {")+2); $dataset = JSON->new->utf8(0)->decode($data); - } elsif($devName eq AttrVal($name, "traccarDevice" , "traccar")) { - if(!($dev->{CHANGED}[0] =~ m/position":[ ]?{/)) - { - Log3 ($name, 5, "WRONG TRACCAR TYPE ".Dumper($dev->{CHANGED}[0])); - return undef; - } - - $data= substr($dev->{CHANGED}[0],index($dev->{CHANGED}[0], ": {")+2); - my $traccardata = JSON->new->utf8(0)->decode($data); - } else { Log3 ($name, 5, "livetracks: Notify ignored from ".$devName); return undef; @@ -1287,14 +1281,13 @@ sub livetracking_utf8clean($) { =item summary Position tracking via OwnTracks, OpenPaths and Swarm =begin html - -

livetracking

+

livetracking