Clone this repository
For self-hosted knots, clone URLs may differ based on your setup.
Download tar.gz
- Refactor decode_message to use let* and Result.map instead of verbose
nested match expressions
- Extract extract_type helper for cleaner JSON type field extraction
- Create pp_code_map helper to deduplicate pp_conn/pp_trigger logic
- Use Option.value pipeline in getenv_or
Reduced lines: 101 -> 76 in owntracks.ml (-25%)
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Vendor OwnTracks Recorder (github.com/owntracks/recorder) as reference
- Add owntracks library with jsont-based JSON codecs for:
- Location messages (lat/lon/alt/velocity/accuracy/battery etc.)
- Transition events (enter/leave regions)
- Waypoint definitions
- Card messages (user info)
- LWT (last will) messages
- Add owntracks-subscriber example that:
- Connects to MQTT broker (configurable via env vars)
- Subscribes to owntracks/# topics
- Pretty-prints received location updates
- Merge jsont and bytesrw dependencies
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>