Files
dev 9756538f16 Initial commit: Venus OS boat addons monorepo
Organizes 11 projects for Cerbo GX/Venus OS into a single repository:
- axiom-nmea: Raymarine LightHouse protocol decoder
- dbus-generator-ramp: Generator current ramp controller
- dbus-lightning: Blitzortung lightning monitor
- dbus-meteoblue-forecast: Meteoblue weather forecast
- dbus-no-foreign-land: noforeignland.com tracking
- dbus-tides: Tide prediction from depth + harmonics
- dbus-vrm-history: VRM cloud history proxy
- dbus-windy-station: Windy.com weather upload
- mfd-custom-app: MFD app deployment package
- venus-html5-app: Custom Victron HTML5 app fork
- watermaker: Watermaker PLC control UI

Adds root README, .gitignore, project template, and per-project
.gitignore files. Sensitive config files excluded via .gitignore
with .example templates provided.

Made-with: Cursor
2026-03-16 17:04:16 +00:00

3.7 KiB
Raw Permalink Blame History

NFL Tracking for Venus OS

A Venus OS addon that sends boat position and track data to noforeignland.com without requiring Signal K.

Features

  • Reads GPS position from Venus OS D-Bus (uses built-in dbus-python, no extra downloads)
  • Sends track data to the NFL API
  • Configurable via Settings menu (Settings → GPS → NFL Tracking)
  • 24h keepalive when boat is stationary
  • Runs as a daemon with automatic restart

Requirements

  • Venus OS device (Cerbo GX, Venus GX, etc.) with root access
  • Python 3 with dbus-python (built into Venus OS)
  • GPS connected to Venus OS (USB/serial GPS or router GPS)
  • noforeignland.com account and Boat API Key (Account > Settings > Boat tracking > API Key)
  • Internet connection for API uploads

Installation

From built package

# On your computer - build the package:
cd dbus-no-foreign-land
./build-package.sh --version 1.0.0

# Copy to Venus OS device:
scp dbus-no-foreign-land-1.0.0.tar.gz root@<device-ip>:/data/

# SSH to device and install:
ssh root@<device-ip>
cd /data && tar -xzf dbus-no-foreign-land-1.0.0.tar.gz
mv dbus-no-foreign-land /data/dbus-no-foreign-land
bash /data/dbus-no-foreign-land/install.sh
bash /data/dbus-no-foreign-land/install_gui.sh   # Add to Settings menu
# Configure via Settings → GPS → NFL Tracking (API key, boat name, intervals)

Manual install (from source)

  1. Copy the project folder to /data/dbus-no-foreign-land on your Venus OS device
  2. Run bash /data/dbus-no-foreign-land/install.sh
  3. Run bash /data/dbus-no-foreign-land/install_gui.sh to add NFL Tracking to Settings → GPS
  4. Configure via Settings → GPS → NFL Tracking (API key, boat name, intervals)

Configuration

All settings are configured via the Venus GUI: Settings → GPS → NFL Tracking

  • Boat API Key Get from noforeignland.com: Account > Settings > Boat tracking > API Key
  • Boat name Optional display name
  • Enable tracking Master on/off switch
  • Track interval Minimum seconds between points (103600s)
  • Min distance Meters moved before logging new point (110000m)
  • Send interval Minutes between API uploads (11440min)
  • 24h keepalive Send a point every 24h when stationary

Settings are stored in Venus localsettings (D-Bus) and persist across reboots.

Alternative: Configure via MQTT: N/<vrm-id>/nfltracking/0/Settings/BoatApiKey, etc.

GUI Settings

After install.sh, run install_gui.sh to add NFL Tracking to Settings → GPS:

bash /data/dbus-no-foreign-land/install_gui.sh

If the GUI goes blank, run install_gui.sh --remove to restore.

GPS Data Source

The addon reads GPS from Venus OS D-Bus:

  1. Reads com.victronenergy.system/GpsService to get the best GPS service name (e.g. com.victronenergy.gps.ve_ttyUSB0)
  2. Reads position from that GPS service:
    • Prefers /Latitude and /Longitude (numeric)
    • Fallback: /Position (string "lat,lon")
  3. Requires /Fix = 1 (GPS fix) before using position

If GPS data is not received:

  • Ensure GPS is connected and has a fix (Device List > Boat > GPS)
  • Run dbus -y on the device and inspect com.victronenergy.gps.* to verify paths
  • Some GPS sources (e.g. router NMEA) may use different path names

Debugging

# View logs
tail -F /var/log/dbus-no-foreign-land/current | tai64nlocal

# Restart service
/data/dbus-no-foreign-land/restart.sh

# Check status
svstat /service/dbus-no-foreign-land

Troubleshooting

"MemoryError" or "Cannot allocate memory" Python may fail to start on very low-RAM devices. Check free memory: free -m

Uninstall

bash /data/dbus-no-foreign-land/uninstall.sh

License

MIT