mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
98_livetracking: CSV data from OwnTracks
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@19227 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
6964d2aeff
commit
fe5d320628
1
CHANGED
1
CHANGED
@ -1,5 +1,6 @@
|
||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||
# Do not insert empty lines here, update check depends on it.
|
||||
- feature: 98_livetracking: CSV data from OwnTracks
|
||||
- new: 98_Weather: add wundergroundAPI for Weather Underground
|
||||
- feature: 98_backup: add support for FileLog path
|
||||
- bugfix: 93_DbLog: fix problem with delta-h/delta-d MySQL if value will be
|
||||
|
@ -1,4 +1,4 @@
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
# $Id$
|
||||
#
|
||||
# 38_netatmo.pm
|
||||
@ -5138,10 +5138,10 @@ netatmo_parsePublic($$)
|
||||
|
||||
if(defined($device->{measures}->{$module}->{rain_live}))
|
||||
{
|
||||
push(@readings_rain, $device->{measures}->{$module}->{rain_live});
|
||||
push(@readings_rain_1, $device->{measures}->{$module}->{rain_60min});
|
||||
push(@readings_rain_24, $device->{measures}->{$module}->{rain_24h});
|
||||
push(@timestamps_rain, $device->{measures}->{$module}->{rain_timeutc});
|
||||
push(@readings_rain, $device->{measures}->{$module}->{rain_live}) if(defined($device->{measures}->{$module}->{rain_live}));
|
||||
push(@readings_rain_1, $device->{measures}->{$module}->{rain_60min}) if(defined($device->{measures}->{$module}->{rain_60min}));
|
||||
push(@readings_rain_24, $device->{measures}->{$module}->{rain_24h}) if(defined($device->{measures}->{$module}->{rain_24h}));
|
||||
push(@timestamps_rain, $device->{measures}->{$module}->{rain_timeutc}) if(defined($device->{measures}->{$module}->{rain_timeutc}));
|
||||
next;
|
||||
}
|
||||
if(defined($device->{measures}->{$module}->{wind_strength}))
|
||||
@ -5321,6 +5321,7 @@ netatmo_parsePublic($$)
|
||||
my $max_rain_24 = -1000;
|
||||
foreach my $val (@readings_rain_24)
|
||||
{
|
||||
next if(!defined($val));
|
||||
$avg_rain_24 += $val / scalar(@readings_rain_24);
|
||||
$min_rain_24 = $val if($val < $min_rain_24);
|
||||
$max_rain_24 = $val if($val > $max_rain_24);
|
||||
|
@ -2959,7 +2959,7 @@ sub XiaomiDevice_connectFail($)
|
||||
Log3 $name, 3, "$name: connection timeout";
|
||||
readingsSingleUpdate($hash, "state", "disconnected", 1) if($hash->{helper}{ConnectionState} ne "disconnected");
|
||||
$hash->{helper}{ConnectionState} = "disconnected";
|
||||
$hash->{helper}{delay} += 60;
|
||||
$hash->{helper}{delay} += 120;
|
||||
InternalTimer( gettimeofday() + $hash->{helper}{delay}, "XiaomiDevice_connect", $hash);
|
||||
|
||||
return undef;
|
||||
|
@ -1,4 +1,4 @@
|
||||
##############################################
|
||||
##############################################
|
||||
# $Id$$$ 2018-11-01
|
||||
#
|
||||
# 98_livetracking.pm
|
||||
@ -887,6 +887,26 @@ sub livetracking_ParseOwnTracks
|
||||
my ($hash,$data) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
#//rcmcronny CSV DECODING
|
||||
if($data =~ m/[0-9]{2},[A-Z,a-z,0-9]{8},[f|c|a|k|L|l|m|t|T|v]{1},[0-9]{8},[0-9]{8},[0-9]{1,5},[0-9]{1,5},[0-9]{1,5},[0-9]{1,5},[0-9]{1,5}/)
|
||||
{
|
||||
Log3 ($name, 4, "$name - CSV encoded payload detected -> ".Dumper($data));
|
||||
my ($csv_tid, $csv_tst, $csv_t, $csv_lat, $csv_lon, $csv_cog, $csv_vel, $csv_alt, $csv_dist, $csv_trip) = $data =~ m/([0-9]{2}),([A-Z,a-z,0-9]{8}),([f|c|a|k|L|l|m|t|T|v]{1}),([0-9]{8}),([0-9]{8}),([0-9]{1,5}),([0-9]{1,5}),([0-9]{1,5}),([0-9]{1,5}),([0-9]{1,5})/;
|
||||
$data = '{
|
||||
"_type": "location",
|
||||
"t": "'.$csv_t.'",
|
||||
"tst": "'.(hex($csv_tst)).'",
|
||||
"tid": "'.$csv_tid.'",
|
||||
"lat": "'.($csv_lat/1000000).'",
|
||||
"lon": "'.($csv_lon/1000000).'",
|
||||
"alt": "'.($csv_alt*10).'",
|
||||
"vel": "'.$csv_vel.'",
|
||||
"cog": "'.($csv_cog*10).'",
|
||||
"dist": "'.$csv_dist.'",
|
||||
"trip": "'.($csv_trip*1000).'"
|
||||
}';
|
||||
}
|
||||
|
||||
my $dataset = eval { JSON->new->utf8(0)->decode($data) };
|
||||
if($@)
|
||||
{
|
||||
@ -1164,7 +1184,13 @@ sub livetracking_Notify($$)
|
||||
$invaliddata = 0;#traccar
|
||||
Log3 ($name, 4, "$name Detected Traccar data from MQTT device notify");
|
||||
}
|
||||
if($invaliddata == 1){
|
||||
elsif(($dev->{CHANGED}[0] =~ m/[0-9]{2},[A-Z,a-z,0-9]{8},[f|c|a|k|L|l|m|t|T|v]{1},[0-9]{8},[0-9]{8},[0-9]{2},[0-9]{1},[0-9]{2},[0-9]{1},[0-9]{1}/))
|
||||
{
|
||||
$invaliddata = 0;#owntracks-csv
|
||||
Log3 ($name, 4, "$name Detected OwnTracks CSV ENCODED data from MQTT device notify");
|
||||
}
|
||||
if($invaliddata == 1)
|
||||
{
|
||||
Log3 ($name, 4, "WRONG MQTT TYPE ".Dumper($dev->{CHANGED}[0]));
|
||||
return undef;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user