EV Charger Monitoring and Smart Charging on a VPS

Quick answer

Many home EV chargers speak OCPP, an open standard protocol, meaning they can report to your own self-hosted setup rather than only a manufacturer’s cloud app. Combined with the solar monitoring already covered elsewhere on this site, this lets a Node-RED flow on your VPS make a genuinely useful decision automatically: charge the car when there’s surplus solar generation, not on a fixed schedule that ignores what’s actually happening with your own panels.

What OCPP actually is, briefly

OCPP (Open Charge Point Protocol) is the open, vendor-neutral standard most modern EV chargers use to communicate status, start and stop charging sessions, and report energy usage, the EV-charging equivalent of MQTT or Modbus for the protocols covered throughout this site’s other guides. A charger supporting OCPP, most mainstream home chargers from the last few years do, can in principle report to any compliant central system, not exclusively the manufacturer’s own app, the same open-standard advantage this site repeatedly favours over closed, vendor-locked alternatives.

Checking whether your charger actually supports this

Worth confirming directly with your specific charger’s documentation or manufacturer before planning around this: look specifically for OCPP 1.6 or OCPP 2.0.1 support, and whether the charger allows configuring a custom central system URL rather than being permanently locked to the manufacturer’s own cloud endpoint. Some budget or heavily locked-down chargers don’t expose this setting at all, in which case this guide’s self-hosted approach isn’t viable without different hardware, worth checking before investing further time.

A practical self-hosted approach: EVCC

Rather than implementing a full OCPP central system from scratch, a genuinely heavy undertaking, EVCC (Electric Vehicle Charge Controller) is a well-established open-source tool purpose-built for exactly this use case: solar-aware, self-hosted EV charge management, supporting a wide range of charger brands and inverter integrations directly.

version: "3.9"
services:
  evcc:
    image: evcc/evcc:latest
    container_name: evcc
    ports:
      - "7070:7070"
    volumes:
      - ./evcc.yaml:/etc/evcc.yaml
    restart: unless-stopped

This follows the same Docker pattern covered in Docker for IoT, running either on the same home network as the charger directly, or via a WireGuard tunnel back to your VPS following the pattern covered throughout this site’s smart home guides, depending on where the charger itself needs to be physically reached from.

Connecting EVCC to the solar monitoring already covered on this site

This is where the genuine value compounds rather than EVCC simply replacing a manufacturer app one-for-one: Solar and Energy Monitoring Dashboards already covers reading live generation data from a solar inverter via Modbus into your VPS. EVCC’s solar-aware charging mode consumes exactly this kind of live generation data to make a genuinely informed charging decision, ramping charging current up when there’s surplus solar generation, down or pausing entirely when the home is drawing more from the grid than the panels are producing, automatically, without manual intervention.

A worked example: a realistic daily pattern

Picture a household with rooftop solar and an EV plugged in most evenings and weekends. Without solar-aware charging, the car charges on a fixed schedule or whenever plugged in, drawing from the grid at whatever rate the tariff happens to be regardless of what the panels are doing. With EVCC reading live solar data via the same VPS infrastructure already covered throughout this site, charging current automatically tracks genuine surplus generation through the day, meaningfully increasing the proportion of charging actually powered by the household’s own solar rather than imported, paid-for grid electricity, the same underlying economic logic that makes the rest of this site’s solar monitoring guide worthwhile in the first place.

Surfacing this on the same dashboard as everything else

EVCC exposes its own status via MQTT, meaning charging state, current session energy, and solar-aware mode status can flow into the same Grafana dashboard covered throughout this site’s other guides, sitting alongside solar generation, battery state and any other household telemetry, one unified view rather than EVCC’s own separate interface being the only place to check charging status.

Remote monitoring and alerting

Following the pattern in SMS and Email Alerting for IoT Devices, a Node-RED flow watching EVCC’s MQTT topics can alert if a charging session fails to start as expected, or if the car has been left unplugged overnight when a morning departure is expected, genuinely useful peace-of-mind alerting that a purely manufacturer-app-based setup typically doesn’t offer with the same flexibility.

Frequently asked questions

Does this approach void the charger’s warranty?

Generally no, if the charger’s own configuration interface explicitly supports setting a custom OCPP central system URL, this is a supported, intended use case, not an unauthorised modification; worth confirming directly with the specific manufacturer if uncertain, since this can vary.

Is EVCC the only self-hosted option, or are there alternatives?

EVCC is the most established and widely used open-source option specifically for this use case, but it’s not the only one; for readers wanting to build something more bespoke, a custom Node-RED flow speaking OCPP directly is possible but considerably more involved than using EVCC’s existing, well-tested implementation.

Does solar-aware charging mean the car charges much more slowly than plugging into a fast charger normally would?

It can, by design, when solar surplus is genuinely modest; EVCC and similar tools typically offer a hybrid mode blending solar-aware and minimum-guaranteed charging rates, worth configuring deliberately based on how quickly you actually need the car charged versus how much you want to prioritise using your own solar generation.

Can this same setup work for a household without solar panels at all?

Yes, EVCC and OCPP-based monitoring are still genuinely useful purely for monitoring and remote access even without the solar-aware charging angle, following time-of-use electricity tariffs instead to charge during cheaper off-peak hours, a similar automated-decision pattern applied to price rather than solar generation.

Does this require the charger to be on the same local network as the VPS, or can it work remotely?

The charger itself needs to be reachable by whatever’s running EVCC, either locally if EVCC runs on home hardware, or via the WireGuard tunnel pattern covered throughout this site’s smart home guides if EVCC itself runs centrally on the VPS; either architecture works, the right choice depends on your specific home network setup.

Is this guide relevant for a business with a fleet of EVs rather than a single household car?

The underlying OCPP and monitoring principles scale to fleet use, though a genuine multi-vehicle commercial deployment likely needs more sophisticated fleet-management software beyond what this guide covers; for a small business with a handful of chargers, the approach covered here remains a reasonable, cost-effective starting point.

A worked session using EVCC: what actually happens

Putting this concretely: on a sunny morning with good solar generation, EVCC reads the current export figure from the solar monitoring stack already covered in Solar and Energy Monitoring Dashboards, finds 3kW being exported to the grid, and ramps the charger from zero to 3kW, drawing that generation directly into the car rather than exporting it. As clouds reduce generation through the afternoon, EVCC reduces charging current proportionally. When the sun drops below a useful threshold in the evening, charging pauses automatically unless a minimum-charge guarantee has been configured, in which case it switches to grid and charges at that rate until the guaranteed minimum is met. All of this happens without any manual intervention, the automation doing the job a fixed schedule simply cannot do.

What to put on the Grafana dashboard alongside solar data

EVCC publishes rich status data via MQTT, the same broker and topic structure as every other service covered on this site, making it straightforward to add EV charging panels to an existing Grafana dashboard: current charging power, session energy delivered, total solar energy used for charging this month, and current charging mode (solar-only, minimum-guarantee, or off). Placing this alongside the solar generation panel creates a genuinely useful single-screen view of home energy flow, panel output, battery state if applicable, grid import/export, and where the car is in its charging session, all from one place.

Frequently asked questions

Does this approach void the charger’s warranty?

Generally no, if the charger explicitly supports setting a custom OCPP central system URL. Confirm directly with your specific manufacturer if uncertain, since this can vary between products.

Is EVCC the only self-hosted option?

EVCC is the most established and widely used open-source tool for this specific use case, supporting a broad range of charger brands and inverter integrations directly. A custom Node-RED flow speaking OCPP is possible but considerably more involved.

Can this work for a household without solar panels?

Yes, EVCC and OCPP-based monitoring are still useful purely for monitoring and remote access, or for following time-of-use tariffs to charge during cheaper off-peak hours rather than solar generation.

Does this require the charger to be on the same local network as the VPS?

EVCC needs to be reachable from the charger. Running EVCC on home hardware is the simplest approach; running it on the VPS requires routing OCPP traffic back through the WireGuard tunnel, which works but adds a layer of configuration.

Is this guide relevant for a business with a small EV fleet?

For a handful of chargers on business premises, the approach here is a reasonable starting point. A genuine multi-vehicle fleet with complex scheduling needs will eventually benefit from dedicated fleet-management software, but the monitoring and OCPP fundamentals covered here remain relevant as a foundation.

Time-of-use tariffs as an alternative to solar-aware charging

For households without solar panels, or for households where solar generation is too unpredictable on a given day, time-of-use electricity tariffs (Octopus Agile and similar) provide a different optimisation axis: charge during the hours when grid electricity is cheapest rather than when solar is most abundant. EVCC supports this directly, reading tariff pricing data via APIs and scheduling charging sessions to favour the cheapest windows within a configured departure time. Combined with the InfluxDB data pipeline already running for other monitoring on this site, tracking actual charging costs against tariff data becomes another dashboard panel rather than a separate calculation entirely. The long-term value of a well-structured time-series database is that it becomes the authoritative record of what happened on a field, across seasons, more useful than any single season’s data in isolation. A well-labelled InfluxDB measurement schema, established before the first data points arrive, pays dividends in every subsequent data query and dashboard panel built on top of it.

Fault alerting for charging sessions

One of the more practically useful additions to a self-hosted EV charging setup: a Node-RED flow that alerts if a charging session doesn’t start within a configurable window after the car is plugged in. An OCPP-connected charger reports its status (available, preparing, charging, suspended) via MQTT, so “plugged in but not started charging after 15 minutes” is a directly detectable condition. Combined with the alerting patterns in SMS and Email Alerting for IoT Devices, this means a missed charging session (charger fault, tripped breaker, car didn’t authorise the session) shows up as an alert rather than a morning discovery that the car isn’t charged for the expected journey.

Energy reporting and cost tracking over time

EVCC’s MQTT output includes session-level energy data: how much electricity was drawn in each charging session, and how much of that came from solar versus grid. Storing this in InfluxDB alongside the broader energy monitoring covered in Solar and Energy Monitoring Dashboards builds a useful long-term record: monthly charging costs, the proportion of charging powered by owned solar generation, and the trend of both over time as solar panel output changes seasonally or as battery capacity is added. This is the kind of longitudinal tracking that a manufacturer’s app rarely provides at the depth needed to make genuinely informed decisions about, for example, whether adding a home battery changes the economics enough to be worth the investment.

Frequently asked questions

Does this approach void the charger’s warranty?

Generally not if the charger explicitly supports configuring a custom OCPP central system URL. Confirm with your specific manufacturer if uncertain.

Can this work without solar panels?

Yes, EVCC and OCPP monitoring are still valuable for time-of-use tariff optimisation, session tracking, and remote visibility even without solar generation to coordinate with.

Does this require the charger to be on the same local network as the VPS?

EVCC needs network access to the charger. Running EVCC on local home hardware is simplest; running it on the VPS requires routing OCPP traffic through the WireGuard tunnel, which works but adds configuration overhead.