https://github.com/bencevans/tracksix
Track your [⛵|🚂|🚙|🚜|🛵|🛷|🚶] with a Raspberry Pi and a GPS.
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
Keywords from Contributors
Repository
Track your [⛵|🚂|🚙|🚜|🛵|🛷|🚶] with a Raspberry Pi and a GPS.
Basic Info
Statistics
- Stars: 17
- Watchers: 2
- Forks: 1
- Open Issues: 0
- Releases: 4
Topics
Metadata Files
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
- Website: https://bencevans.io/
- Twitter: bencevans
- Repositories: 282
- Profile: https://github.com/bencevans
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
Top Committers
| Name | 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
Pull Request Labels
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.
- Homepage: https://github.com/bencevans/tracksix#readme
- License: MIT
-
Latest release: 1.2.2
published 9 months ago
Rankings
Maintainers (1)
Dependencies
- 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
- actions/checkout v3 composite
- actions/setup-node v3 composite
- 229 dependencies