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.
|
# 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.
|
# 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
|
- new: 98_Weather: add wundergroundAPI for Weather Underground
|
||||||
- feature: 98_backup: add support for FileLog path
|
- feature: 98_backup: add support for FileLog path
|
||||||
- bugfix: 93_DbLog: fix problem with delta-h/delta-d MySQL if value will be
|
- bugfix: 93_DbLog: fix problem with delta-h/delta-d MySQL if value will be
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
# $Id$
|
# $Id$
|
||||||
#
|
#
|
||||||
# 38_netatmo.pm
|
# 38_netatmo.pm
|
||||||
@ -5138,10 +5138,10 @@ netatmo_parsePublic($$)
|
|||||||
|
|
||||||
if(defined($device->{measures}->{$module}->{rain_live}))
|
if(defined($device->{measures}->{$module}->{rain_live}))
|
||||||
{
|
{
|
||||||
push(@readings_rain, $device->{measures}->{$module}->{rain_live});
|
push(@readings_rain, $device->{measures}->{$module}->{rain_live}) if(defined($device->{measures}->{$module}->{rain_live}));
|
||||||
push(@readings_rain_1, $device->{measures}->{$module}->{rain_60min});
|
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});
|
push(@readings_rain_24, $device->{measures}->{$module}->{rain_24h}) if(defined($device->{measures}->{$module}->{rain_24h}));
|
||||||
push(@timestamps_rain, $device->{measures}->{$module}->{rain_timeutc});
|
push(@timestamps_rain, $device->{measures}->{$module}->{rain_timeutc}) if(defined($device->{measures}->{$module}->{rain_timeutc}));
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
if(defined($device->{measures}->{$module}->{wind_strength}))
|
if(defined($device->{measures}->{$module}->{wind_strength}))
|
||||||
@ -5321,6 +5321,7 @@ netatmo_parsePublic($$)
|
|||||||
my $max_rain_24 = -1000;
|
my $max_rain_24 = -1000;
|
||||||
foreach my $val (@readings_rain_24)
|
foreach my $val (@readings_rain_24)
|
||||||
{
|
{
|
||||||
|
next if(!defined($val));
|
||||||
$avg_rain_24 += $val / scalar(@readings_rain_24);
|
$avg_rain_24 += $val / scalar(@readings_rain_24);
|
||||||
$min_rain_24 = $val if($val < $min_rain_24);
|
$min_rain_24 = $val if($val < $min_rain_24);
|
||||||
$max_rain_24 = $val if($val > $max_rain_24);
|
$max_rain_24 = $val if($val > $max_rain_24);
|
||||||
|
@ -2959,7 +2959,7 @@ sub XiaomiDevice_connectFail($)
|
|||||||
Log3 $name, 3, "$name: connection timeout";
|
Log3 $name, 3, "$name: connection timeout";
|
||||||
readingsSingleUpdate($hash, "state", "disconnected", 1) if($hash->{helper}{ConnectionState} ne "disconnected");
|
readingsSingleUpdate($hash, "state", "disconnected", 1) if($hash->{helper}{ConnectionState} ne "disconnected");
|
||||||
$hash->{helper}{ConnectionState} = "disconnected";
|
$hash->{helper}{ConnectionState} = "disconnected";
|
||||||
$hash->{helper}{delay} += 60;
|
$hash->{helper}{delay} += 120;
|
||||||
InternalTimer( gettimeofday() + $hash->{helper}{delay}, "XiaomiDevice_connect", $hash);
|
InternalTimer( gettimeofday() + $hash->{helper}{delay}, "XiaomiDevice_connect", $hash);
|
||||||
|
|
||||||
return undef;
|
return undef;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
##############################################
|
##############################################
|
||||||
# $Id$$$ 2018-11-01
|
# $Id$$$ 2018-11-01
|
||||||
#
|
#
|
||||||
# 98_livetracking.pm
|
# 98_livetracking.pm
|
||||||
@ -887,6 +887,26 @@ sub livetracking_ParseOwnTracks
|
|||||||
my ($hash,$data) = @_;
|
my ($hash,$data) = @_;
|
||||||
my $name = $hash->{NAME};
|
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) };
|
my $dataset = eval { JSON->new->utf8(0)->decode($data) };
|
||||||
if($@)
|
if($@)
|
||||||
{
|
{
|
||||||
@ -1164,7 +1184,13 @@ sub livetracking_Notify($$)
|
|||||||
$invaliddata = 0;#traccar
|
$invaliddata = 0;#traccar
|
||||||
Log3 ($name, 4, "$name Detected Traccar data from MQTT device notify");
|
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]));
|
Log3 ($name, 4, "WRONG MQTT TYPE ".Dumper($dev->{CHANGED}[0]));
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user