hitrack2gpx

package module
v0.0.0-...-22fa706 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2019 License: MIT Imports: 13 Imported by: 0

README

Huawei Health activities to GPX

Huawei Health activities to GPX

Golang app that generates GPX files from a Huawei HiTrack backup.

HiTrack data is what Huawei wearables generate after an activity (Huawei Band 3 PRO is an example).

This app gets as input the HiTrack data from a Huawei Health app backup (as SQLite database) and outputs GPX files with support for timestamped GPS, altitude, heart-rate, and cadence data where available.

This app gets inspiration from Huawei TCX Converter which should be used if your backup has a different format (see below).

How to get the Huawei Health db

  • Open the Huawei Health app and open the exercise that you want to convert to view it's trajectory. This ensures that its HiTrack file is generated.
  • Download the Huawei Backup App onto your phone.
  • Start a new unencrypted backup of the Huawei Health app data to your external storage (SD Card)
  • Connect the phone to the pc using a USB cable. When prompted on the phone, authorize the pc to access data.
  • If you can see the phone as an external memory (like on Linux) navigate to /HuaweiBackup/backupFiles/<backup folder>/ and copy com.huawei.health.db to your computer. If you can't find the .db file but you find the com.huawei.health.tar file, than you should use Huawei TCX Converter.
  • If you're on a Mac you need to install the HiSuite app and use it to access the SD card on the phone. Then follow the same instructions as the point above.
Note

For some reason if your wearable loses the GPS signal at the end of the record, the outputted dump doesn't contain GPS data, although the Health app can still show the track. This happen at least on the Band 3 Pro.

The fact that the Health app shows the GPS track let me suspect data is still somewhere, but I didn't find a way to get it :/

How to build and install

git clone git@github.com:tommyblue/huawei-health-to-gpx.git
./scripts/setup
./scripts/install

How to run the app

The app can check the db and list the existing tracks:

hitrack2gpx ~/<path>/com.huawei.health.db

If an activity ID is provided, the app outputs the GPX file:

hitrack2gpx ~/<path>/com.huawei.health.db <ID>

The output can be saved to a file:

hitrack2gpx ~/<path>/com.huawei.health.db <ID> > ~/<path>/file.gpx

Requirements

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DB

type DB struct {
	// contains filtered or unexported fields
}

func GetDb

func GetDb(conf *HT2G) *DB

func (*DB) Close

func (db *DB) Close()

func (*DB) GetTracks

func (db *DB) GetTracks(fileIndex int) string

type GpxFile

type GpxFile struct {
	// contains filtered or unexported fields
}

func GPXFromDump

func GPXFromDump(dump *HuaweiTrack) *GpxFile

type HT2G

type HT2G struct {
	DbPath    string
	FileIndex int
}

func Init

func Init(dbPath string, fileIndex string) *HT2G

type HuaweiTrack

type HuaweiTrack map[int]TimedLine

func ParseTrackDump

func ParseTrackDump(trackDump string) *HuaweiTrack

ParseTrackDump gets a dump as a test, loops over lines and, for each line, identifies the type and populates a map

type TimedLine

type TimedLine map[string]TrackLine

type TrackLine

type TrackLine map[string]string

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL