I Built an AI Agent That Monitors My Boats While I Sleep (And You Can Use It Too)

OpenClaw · Victron · Python · Open Source


Every morning before I take out Pitter Patter or head out to Pegasus, I’d do the same ritual: pull up the Victron VRM dashboard on my phone, squint at the battery readout, check the solar numbers, make sure nothing was screaming at me. Two boats. Five minutes of manual work before I’d even had my red bull.

I’m a developer by trade. I know better than to spend five minutes doing something a computer can do for free.

So I built Boat Daily Check — an OpenClaw skill that queries the Victron VRM API every morning and sends me a single, beautiful HTML email summarizing everything I need to know about my power systems before I walk down to the dock.

Here’s what lands in my inbox at 7 AM:

⚓ BOAT POWER SYSTEMS STATUS

🚤 Pitter Patter                [✓ Healthy]
   Battery SOC ......... 100.0 %
   Voltage ............. 14.17 V
   Yesterday's Solar Output ....... 0.59 kWh

🚤 Pegasus                      [⚠️ Alert]
   Battery SOC ......... 100.0 %
   AC Input ............ 121.4 V
   🚨 Active Alarms: "Active input"

No login. No navigating. Just the facts. I see it, I know what I’m walking into, I go sailing.

Wait — This Isn’t Just for Boats

I want to be upfront about something: this works for anything running Victron hardware. That means:

  • RVers monitoring their lithium banks across weeks of dry camping
  • Off-grid homesteads with solar arrays and battery walls who want a daily power summary without logging into a dashboard
  • Liveaboards who care as much about their house bank as I do about my engine starts
  • Fishing charter operators watching multiple vessels remotely

If you have a Cerbo GX, a SmartShunt, or any Victron hardware connected to VRM, this skill works for you. Rename your “boat” to “RV” or “Cabin” in the config and the email adapts automatically.

What Is OpenClaw, and Why Does It Matter?

OpenClaw is an open-source agentic AI framework — think of it as a personal automation engine where AI agents can execute skills, run cron jobs, and chain together tasks. It’s what I use to run my morning surf report, fishing conditions summary, and now my boat power check — all delivered as a single consolidated email.

A “skill” in OpenClaw is a self-contained, reusable module. Think of it like an npm package for agentic workflows. Boat Daily Check is one of the first community skills I’m releasing publicly, and it’s fully MIT licensed.

If you’re not on OpenClaw yet, the script also runs standalone — just call it from any cron job or shell script. OpenClaw just makes it stupid easy to combine with other automations.


How It Works

The skill hits three Victron VRM API v2 endpoints per installation:

  • BatterySummary/latest — SOC, voltage, current, temperature
  • diagnostics — hardware names, firmware versions, last-seen timestamps
  • alarms — any active alerts

It compiles everything into a responsive HTML email with color-coded status badges and battery progress bars, then hands it off to OpenClaw’s delivery layer (or your own email sender).

Total runtime: under 15 seconds for two boats. Suitable for a 7 AM daily cron.

Getting Set Up in 5 Minutes

1. Get your free VRM API token Head to vrm.victronenergy.com/access-tokens and create one. It’s free.

2. Grab your Installation ID It’s in your VRM dashboard URL:

https://vrm.victronenergy.com/installation/123456/dashboard
                                              ^^^^^^

3. Clone and configure

bash

git clone https://github.com/lkilpatrick/boat-daily-check
cd boat-daily-check
pip install requests

Edit scripts/boat-email-report.py with your token and installation IDs:

python

INSTALLATIONS = {
    "pitter_patter": {
        "id": 123456,
        "name": "Pitter Patter",
        "batteryInstance": 279,
        "hasSolar": True,
        "hasInverter": False,
    }
}

4. Run it

bash

python3 scripts/boat-email-report.py
open out/boat-daily-email.html

5. Automate it (OpenClaw)

json

{
  "name": "boat-daily-check",
  "schedule": { "kind": "cron", "expr": "0 7 * * *" },
  "payload": { "kind": "agentTurn", "message": "python3 /path/to/boat-email-report.py" }
}

Full docs are in GETTING_STARTED.md.

What I Actually Learned Building This

The Victron VRM API is solid but not well-documented for community developers. I put together references/vrm_api_guide.md and references/victron_attributes.md in the repo specifically because I had to reverse-engineer half of it from scratch. If you’re building your own Victron integrations, those reference files alone are worth cloning the repo.

Also: the batteryInstance attribute (default: 279 for SmartShunt) will trip you up if you don’t know about it. I documented the fix.

What’s Next

A few things I’m planning for future versions:

  • Week-over-week solar efficiency trends — compare this week’s kWh against last week
  • Tank level monitoring — for boats with Victron-connected tank sensors
  • Push notifications — Twilio integration for critical alarm thresholds
  • clawhub publish — install with a single openclaw clawhub install victron/boat-daily-check

If you build on this, open a PR. The whole point of open-sourcing it is to make something useful for the Victron community — boaters, RVers, and off-grid homesteaders alike.

Get the Code

👉 github.com/lkilpatrick/boat-daily-check

MIT licensed. Free forever. Fair winds and following seas. ⛵