Which one you need
| Your case | What fits |
|---|---|
| One charger at home, you want local control and nobody pays for charging | The OCPP integration: Home Assistant becomes the OCPP server. No cloud in between. |
| Chargers that other people use and pay for: guests, tenants, employees, a car park | A charging platform as the OCPP server, and this integration to see them in Home Assistant. |
| Several sites, or chargers you manage for others | The same: the platform runs the chargers and Home Assistant is one more window onto them. |
The two do not mix on the same charger: the charger connects to one server. Pick by who needs to bill, not by which one has more sensors.
Chargers in different places, in the same Home Assistant
Each charger talks to askacharge.com over its own internet connection, and Home Assistant asks askacharge.com. That is why the charger and Home Assistant do not need to be on the same network: the one at home, the one at work and the one at the holiday home show up together, each as a device with its status, its energy and its charging switch.
- No open ports, no certificate wrangling. Connections only go outwards: the charger calls askacharge.com and so does Home Assistant. With the OCPP integration, Home Assistant is the server, so a charger away from home has to reach it: a port forward on the router, a VPN or a reverse proxy with a certificate. Behind a company firewall, often not even that.
- Any brand. Manufacturer integrations also work remotely, but only with their own chargers. Here a V2C at home and a Circutor at work look the same, because both speak standard OCPP.
- What it asks in return: internet at each charger (if the one at work loses its network, it shows as disconnected) and data every 30 seconds, not instantly.
Are they your own home chargers and nobody pays to use them? We're preparing askacharge.com/casa for exactly that: the first one free. It isn't open yet; you can join the waiting list.
1. Install it
- In HACS: ⋮ → Custom repositories →
https://github.com/javierojan/askacharge-homeassistant, category Integration. - Install askacharge.com and restart Home Assistant.
- Settings → Devices & services → Add integration → askacharge.com, and paste the API key.
Without HACS, copy custom_components/askacharge from the repository into your config/custom_components/.
2. The key: only what it needs
Create it in the askacharge.com panel, API Keys menu:
| Permission | What it allows |
|---|---|
sessions:read | Required. Status of every charger and the session in progress. |
commands:remote-start + commands:remote-stop | Optional. The start/stop switch. Without them, the switch returns an error and nothing else changes. |
Nothing else: it cannot reset, update firmware or change prices. Every write it makes is in the panel's API key activity log. Do not limit the key to a location: the live view covers the whole brand and a location-limited key is refused there.
3. What appears
One device per charger, refreshed every 30 seconds with a single request for all of them:
| Entity | What it is |
|---|---|
| Status | OCPP status: available, charging, suspended by vehicle, faulted… |
| Session energy | kWh of the session in progress, 0 when idle. Can go on the Energy dashboard |
| Power | kW, from the charger's own Power.Active.Import readings |
| Session duration / start | Of the session in progress |
| Online | The charger's connection is open right now (not the same as the last status it reported) |
| Charging | A session is open |
| Charge (switch) | On = remote start, off = remote stop |
4. Tested in production
On 7 October 2026, against askacharge.com with a simulated charger, this is what the integration read:
// switch on → remote start start: {"status": "Accepted", "id_tag": "PANEL"} // 5 s later status: Charging · session open · energy 0.0 kWh // 10 s after that, first meter reading status: Charging · energy 0.17 kWh · power 20.34 kW // switch off → remote stop, 5 s later status: Finishing · no session
The test found a fault on our side: the live view reported 0 kWh until the session ended, because the energy was only calculated on the stop. It now comes from the last meter reading, for this integration and for the panel's dashboard.
5. Two automations to start with
Entity IDs come from the charger's name and your Home Assistant language: copy them from the device page. Here, a charger called GARAGE-01 in an English-language Home Assistant.
Tell me when the car has finished:
automation:
- alias: "Charge finished"
triggers:
- trigger: state
entity_id: binary_sensor.garage_01_charging
from: "on"
to: "off"
actions:
- action: notify.mobile_app_my_phone
data:
message: "Charging finished: {{ states('sensor.garage_01_session_energy') }} kWh"
Warn me if a charger drops off the network for more than ten minutes:
automation:
- alias: "Charger offline"
triggers:
- trigger: state
entity_id: binary_sensor.garage_01_online
to: "off"
for: "00:10:00"
actions:
- action: notify.mobile_app_my_phone
data:
message: "The garage charger has been offline for 10 minutes"
Limits worth knowing
- Starting from Home Assistant uses the brand's PANEL card, like the Start button in the panel, and is billed with that card's tariff.
- It polls every 30 seconds. For instant events (a charger going offline, a session ending) askacharge.com also sends signed webhooks, which you can receive in Home Assistant with a webhook trigger.
- Power and energy are as fresh as the charger's readings. askacharge.com sets the reading interval to 60 s when a charger boots if it can; a charger that refuses keeps its own.
- It is not in the HACS default list yet: you add it as a custom repository.
Try it without hardware
Every brand can create up to 10 simulated chargers from the panel. They speak OCPP to the platform like real ones, charge, send readings and answer start and stop, so you can wire up Home Assistant before the first real charger is installed.
Code, issues and releases: github.com/javierojan/askacharge-homeassistant (MIT). The rest of the API is in the technical documentation.