https://github.com/bencevans/tracksix

Track your [⛵|🚂|🚙|🚜|🛵|🛷|🚶] with a Raspberry Pi and a GPS.

https://github.com/bencevans/tracksix

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.9%) to scientific vocabulary

Keywords

iot location owntracks raspberry-pi

Keywords from Contributors

charts transformers sequences interactive zsh-plugin embedded productivity archival community exports
Last synced: 5 months ago · JSON representation

Repository

Track your [⛵|🚂|🚙|🚜|🛵|🛷|🚶] with a Raspberry Pi and a GPS.

Basic Info
  • Host: GitHub
  • Owner: bencevans
  • Language: JavaScript
  • Default Branch: main
  • Homepage:
  • Size: 245 KB
Statistics
  • Stars: 17
  • Watchers: 2
  • Forks: 1
  • Open Issues: 0
  • Releases: 4
Topics
iot location owntracks raspberry-pi
Created about 7 years ago · Last pushed 6 months ago
Metadata Files
Readme Funding

README.md

Tracksix

Track your [⛵|🚂|🚙|🚜|🛵|🛷|🚶] with a Raspberry Pi and a GPS.

Features

  • OwnTracks Compatable Config & Reporting Format
  • MQTT(S) Reporting
  • MQTT over WebSocket Reporting
  • Programmatic usage or executable use
  • Compatable with a huge array of GPS devices through GPSd
  • Replays reports when an internet connection arrises

Install

To communicate with your GPS device, tracksix utilises GPSd (Global Positioning System daemon) which standardises the format from different GPS devices.

On OSX:

$ brew install gpsd

On Debian/Ubuntu:

$ sudo apt install gpsd

Ensure you have Node.js installed on your device, then install tracksix:

$ npm install --global tracksix

Usage

$ tracksix [path to config file]

Tracksix uses the same configuration format as OwnTracks, this can be exported from your OwnTracks mobile app or copy the config.example.json and edit the contents appropriately.

Programmatic Usage

First follow the above steps for installing GPSd. Then install the tracksix library into your nodejs project:

 $ npm install tracksix

Import the library:

js const tracksix = require('tracksix')

Load your configuration file:

js const path = require('path') const config = tracksix.readConfigSync( path.resolve(__dirname, './config.json') )

Start tracking:

js const tracker = tracksix(config)

To listen for errors, tracksix() returns an EventEmitter which emits 'error' events.

js tracker.on('error', (err) => { console.error(err) })

To listen for updates sent to the MQTT server, subscribe to 'location' events. A location event contains the same elements as specified in the OwnTracks location object.

js tracker.on('location', (report) => { console.log(report) })

Run as a service

Write the following to /etc/systemd/system/tracksix.service and update the path to node which node and tracksix which tracksix.

``` [Unit] Description=Tracksix Service After=network.target

[Service] Type=simple

Another Type: forking

User=pi WorkingDirectory=/home/pi ExecStart=/home/pi/.nvm/versions/node/v10.13.0/bin/node /home/pi/.nvm/versions/node/v10.13.0/bin/tracksix Restart=on-failure

Other restart options: always, on-abort, etc

The install section is needed to use

systemctl enable to start on boot

For a user service that you want to enable

and start automatically, use default.target

For system level services, use multi-user.target

[Install] WantedBy=multi-user.targe ```

Afterwards you need to enable the service:

$ sudo systemctl enable tracksix.service

Then start the service with:

$ sudo systemctl start tracksix

You can check the status / logs with:

$ systemctl status tracksix.service

Development

To start a mock GPSd server use gpsd-fake: npm install -g gpsd-fake && gpsd-fake.

Licence

MIT © Ben Evans

Owner

  • Name: Ben Evans
  • Login: bencevans
  • Kind: user
  • Location: London, UK
  • Company: Institute of Zoology, ZSL

GitHub Events

Total
  • Delete event: 14
  • Issue comment event: 4
  • Push event: 11
  • Pull request event: 27
  • Create event: 14
Last Year
  • Delete event: 14
  • Issue comment event: 4
  • Push event: 11
  • Pull request event: 27
  • Create event: 14

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 120
  • Total Committers: 4
  • Avg Commits per committer: 30.0
  • Development Distribution Score (DDS): 0.517
Past Year
  • Commits: 19
  • Committers: 2
  • Avg Commits per committer: 9.5
  • Development Distribution Score (DDS): 0.105
Top Committers
Name Email Commits
Ben Evans b****n@b****o 58
dependabot[bot] 4****] 45
Renovate Bot b****t@r****m 13
renovate[bot] r****] 4
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 5
  • Total pull requests: 99
  • Average time to close issues: about 2 years
  • Average time to close pull requests: 5 days
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 0.2
  • Average comments per pull request: 0.39
  • Merged pull requests: 70
  • Bot issues: 0
  • Bot pull requests: 95
Past Year
  • Issues: 0
  • Pull requests: 26
  • Average time to close issues: N/A
  • Average time to close pull requests: 7 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.27
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 26
Top Authors
Issue Authors
  • bencevans (5)
Pull Request Authors
  • dependabot[bot] (102)
  • renovate[bot] (17)
  • bencevans (4)
Top Labels
Issue Labels
released (1)
Pull Request Labels
dependencies (102) javascript (95) released (11) github_actions (4)

Packages

  • Total packages: 1
  • Total downloads:
    • npm 11 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 6
  • Total maintainers: 1
npmjs.org: tracksix

Track your [⛵|🚂|🚙|🚜|🛵|🛷|🚶] with a Raspberry Pi and a GPS.

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 11 Last month
Rankings
Stargazers count: 8.3%
Dependent repos count: 10.8%
Forks count: 12.0%
Average: 30.3%
Dependent packages count: 54.2%
Downloads: 66.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

package.json npm
  • semantic-release ^17.3.7 development
  • standard ^16.0.3 development
  • debug ^4.1.1
  • mqtt ^3.0.0
  • node-gpsd ^0.3.0
  • throttle-end git+https://github.com/bencevans/throttle-end.git#961a27a72c82310797382e1083cb85e9059f24e1
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
package-lock.json npm
  • 229 dependencies