Charging an EV9 off the roof
Test the stop, not just the start. Then add a hard stop anyway.
Here’s the setup. Solar on the roof, a seven-seat EV9 in the driveway, and from 15 August 2026 an Alinta time-of-use electricity plan that reads like a dare. My aim for the car was simple: run it off the roof when the sun’s out, on the cheapest grid power when it isn’t, and stay out of peak unless I choose to be there.
This is the short version, with the numbers. The long, nerdy version, with the whole Home Assistant setup, is on my other site: Chasing Sunbeams.
The tariff
- 8c a kilowatt-hour from midnight to 6 am, every day;
- 39.9c from 4 pm to 8 pm on weekdays (peak);
- 25.6c and 30c at other times;
- 2c for every kilowatt-hour of solar I send back to the grid.
The 2c is the number that matters. Send a kilowatt-hour from the roof to the grid and I get 2c for it. Put it in the car instead and it saves me between 8c and 40c. So the rule wrote itself: use the roof first, then the 8c window, and stay out of peak.

Taking the charger off the cloud
The car plugs into a portable 15 amp charger at home, a Kolanky. It’s a rebadged Tuya unit, and out of the box it only talks to the Tuya cloud, through a phone app. That would make my charging depend on a server in another country. So Home Assistant, the software that runs the house, talks to the charger directly over the home network instead. It can switch the charger on and off, and set its current anywhere from 6 to 15 amps.
It didn’t go quietly. The first reading Home Assistant got from it said the house was running at 22 volts. My house is not, in fact, running on a car battery. The readings were just scaled wrong, and once that was fixed they told the truth.
The current took longer to catch. Ask the charger for 16 amps, its theoretical maximum, and it ignores you and holds a low current. I found that out when a full-power overnight charge was quietly running at 6 amps. 15 is the real ceiling.
Day one: the charge that would not stop
Here’s where I got humbled. The first live run, on 24 August 2026, started on daytime solar exactly as planned. Then it didn’t stop. The sun went down and the charger kept pulling a full 15 amps from the grid. It rode the sunset straight into the 39.9c peak, the most expensive four hours of the day.
The logic was right. One line of it wasn’t: a time calculation that subtracted a time with no time zone from one with a time zone. Home Assistant threw an error, the “stop” branch died quietly, and nothing else noticed. I fixed it the same day and added a hard stop, so a solar session can never run on into the night or the peak window.
What I took from it: an automation that fails silently fails expensively. Test the stop, not just the start.
Clouds, and the 15-second loop
My first rule for solar charging was blunt: if the house starts drawing more than 500 watts from the grid, stop. Sounds sensible. It isn’t. Solar is a twitchy signal, and every passing cloud tripped the rule and ended the session. Worse, an EV9 that has been idle a while politely ignores a charger asking it to start, so after each stop the car often stayed asleep. A partly cloudy afternoon went charge, stop, snooze, charge, stop, snooze.
I should have built it the other way from the start: when the surplus shrinks, wind the amps down; don’t cut off. Since 29 August there are two loops. A slow one, every two minutes, decides only whether to charge. A fast one, every 15 seconds, decides only how hard. Ask a jittery signal “should I stop?” every 15 seconds and you’ve built a strobe light. Ask it “should I ease off a notch?” and you’ve built cruise control.
How it works now
- In the sun, every 15 seconds Home Assistant looks at how much power the house is sending to or taking from the grid, and nudges the charging current up or down to match. The aim is for the car to soak up the spare solar without drawing from the grid. When a cloud passes, the current drops instead of the charge stopping.
- Overnight, it charges at full current in the 8c window.
- Every day, the car stops at 80%. Before a long trip, it goes to 100%.
- When I need it now, a manual “charge now” switch charges at full current at any hour, peak included, and turns itself off when the car is unplugged.

Sharing with the pool
The car eats first. The pool filter runs on whatever solar is left once the car is full, or already charging flat out with sun to spare.
That took a second go too. On its first day the pool saw the car sitting idle, decided the car was finished, and took the surplus. Then the car tried to start and found its lunch money gone. “Not charging right now” and “done charging” are different things. Now the pool only counts the car out if it’s genuinely full or unplugged, or already at full current, and it hands the surplus back straight away when the car wants it.

What it actually cost
From 29 August 2026, Home Assistant has metered the car’s home charging by tariff window. Over the 40 days from 29 August to 8 October 2026:
- the car travelled 2,411 km (that includes private driving, not just paid trips);
- it took 507.6 kWh at the wall at home, and about 75 kWh more in three charges at public charging stations: about 580 kWh in all;
- of the home charging, 72% went in during the 8c overnight window, 24% in the 30c shoulder window (mostly daytime), 2.6% at the 25.6c off-peak rate and 1.4% at peak;
- about 117 kWh came straight off the roof: about a fifth of everything the car took, and about 23% of its home charging. Charging in the shoulder window was 93.5% solar;
- the panels made 993 kWh in that time, and we still exported 417 kWh at 2c.
- Solar off the roof: 117.0 kWh
- Grid at 8c overnight: 366.0 kWh
- Grid at other times: 21.9 kWh
- Public charging: about 75 kWh
| Source | kWh |
|---|---|
| Solar off the roof | 117.0 |
| Grid at 8c overnight (midnight to 6 am) | 366.0 |
| Grid at other times | 21.9 |
| off-peak (25.6c) | 8.0 |
| shoulder (30c) | 7.8 |
| peak (39.9c) | 6.1 |
| Home charging accounted for | 504.9 |
| Public charging (three charges, approximate) | about 75 |
| All the car’s energy | about 580 |
The peak charging was a choice. Most of it is one top-up: on Thursday 1 October I put 5.6 kWh in at peak price, on purpose, so the car was ready for a trip. That’s what the “charge now” switch is for. The rest, about 1.3 kWh over the 40 days, is the charger’s own standby draw counted in the peak window, plus a few short charges that ran into it.
What the home charging cost. Counting the grid power at the price we paid, and the solar at the 2c we gave up by not exporting it, the home charging cost about $38.40: about 7.6c a kilowatt-hour.
Per kilometre. All the charging together, public included, comes to about 24 kWh per 100 km at the wall. I haven’t counted what the three public charges cost, so the per-kilometre figure here is at home rates: about $1.80 per 100 km.
For comparison, at the same consumption:
| If every kilowatt-hour had cost | Per 100 km |
|---|---|
| Our home average (about 7.6c) | about $1.80 |
| 8c (all overnight) | about $1.90 |
| 30c (all at the shoulder rate) | about $7.30 |
| 39.9c (all at peak) | about $9.60 |
Charging at peak price all the time would cost more than five times as much. Home Assistant’s own running total prices every daytime kilowatt-hour as if it came from the grid; on that basis the home-rate cost would be about $3.40 per 100 km. Treat that as the upper bound.
For one trip: Bribie Island to Caboolture Hospital is about 28 km. At about 24 kWh per 100 km that is about 6.8 kWh: at home rates, about 50c of electricity one way, and about a dollar there and back, counting the drive home empty. At peak rates the same one-way trip would be about $2.70.
What these numbers are not
- The public charging is approximate. The home charging is metered; the three public charges are my own figure of about 75 kWh, so every figure that includes them is an “about”.
- At home rates. The cost per kilometre and per trip uses what home charging cost. What the public charges cost is not in any dollar figure here.
- Energy only. No tyres, servicing, insurance, registration, wear on the battery, or the car itself. About $1.80 per 100 km is the electricity, not the cost of running the car.
- At the wall. About 24 kWh per 100 km includes charging losses and the car’s climate control while parked. The car’s own figure, measured at the battery, is 15.6 kWh per 100 km.
- Conservative on solar. The method counts any grid power drawn while the car was charging as the car’s, so if anything I’ve understated the solar share.
How I worked it out: the meter readings by tariff window, five-minute averages of the house’s grid connection and the charger’s power, and the odometer at the start and end, all from Home Assistant’s history, plus my own count of the three public charges. 507.6 kWh plus about 75 kWh is about 580 kWh; over 2,411 km that is about 24 kWh per 100 km. The method prices 504.9 kWh of the 507.6 kWh the meters recorded. That comes to $38.43, or 7.6c a kilowatt-hour. Spread over all 507.6 kWh it’s still about 7.6c. And 24 kWh at 7.6c is about $1.80. The solar share and the home meters agree to within half a percent.
If you want to build the same thing, the Home Assistant configuration is all in Chasing Sunbeams.
Kolanky and Alinta are simply what I use; I’m not recommending them.