Your LiFePO4 battery's advertised cycle life is measured at around 25°C, and the garage or roof space it lives in is almost never at 25°C. In summer that space can run 10 to 20°C hotter than outdoor ambient, which accelerates capacity fade and permanently raises internal resistance; in winter a clear Highveld morning can push the same space below 0°C, where the BMS will refuse to charge at all. Headline cycle life is the least useful number on the spec sheet for a South African installation. What the room does to the cells, hour after hour, matters more.
I worked that out the low-tech way. By touching things.
One February afternoon I walked into the garage to reset a tripped breaker and put my palm flat on the top of the battery box, the way you'd test a kettle. Warm. Not hot enough to flinch, but warm like a brick that's been in the sun since morning. I opened the app. Cells at 41°C. The thermometer on the wall by the door said 33°C outside. The garage has no ceiling, a west-facing steel door, and enough stored junk along the walls to stop the air moving anywhere useful.
Eight degrees between what the sky was doing and what my battery was sitting in. That gap is the whole story.
The number on the box was measured in a room you don't have
Every LiFePO4 datasheet I've read gives you two figures: a cycle count, and the capacity left at the end of it. Six thousand cycles to 80%. It's a real number, from a real test, run at a controlled temperature, usually 25°C, at a fixed charge and discharge rate, with rest between cycles.
Change the temperature and you get a different number from the same cell. Heat doesn't only shorten cycle life. It shortens calendar life. A battery sitting hot at a high state of charge is degrading while doing absolutely nothing. In a load-shedding household it's rarely doing nothing, which is how the two effects stack.
What heat is doing inside the cells
A LiFePO4 cell ages through a handful of slow chemical processes, and heat speeds up all of them. The solid-electrolyte layer on the anode keeps thickening, consuming lithium that can then no longer hold charge. The electrolyte slowly breaks down. Active material gets isolated. None of it announces itself. You just notice, eighteen months in, that the pack which used to carry the house through a four-hour outage now hands over to grid at two and a half hours.
The number that gets repeated in battery circles is that ageing roughly doubles for every 10°C above 25°C. Treat that as a rule of thumb, not a law. It depends on the cell, the state of charge and the rate. But it tells you the shape of the problem. Forty degrees is not "a bit warmer than the test lab". It's a different ageing regime.
The thing you feel first is internal resistance. As it climbs, the pack sags more under load. Your inverter hits its low-voltage cutoff earlier. The capacity hasn't vanished. The battery just can't deliver it at the current the house is asking for.
A garage is not a room
A garage is a box with a very large, very hot roof. Concrete slab or steel sheeting soaks up sun all day and radiates it back into the space long after sunset. If there's no ceiling, the underside of that slab is a radiator at eye level. If there is a ceiling, the heat sits trapped above it and the battery gets whatever leaks down.
In my experience a closed garage runs 5 to 10°C above outdoor ambient on a hot still day. A west-facing one with a steel door can do worse, because the door itself becomes the hot surface in the late afternoon, then keeps giving that heat back for hours. Add an inverter mounted on the same wall, dumping a few hundred watts of waste heat into the same air, and you have a small oven with a battery in it.
That's before you get to the cupboards. A pack in a closed cabinet with no airflow is being insulated by its own enclosure.
The roof space is worse, and people do put batteries there
A tiled or sheeted roof cavity on a still summer day can sit 20 to 25°C above ambient, sometimes more. I've been in roof spaces in January where you don't last long. A battery up there cycles through the hottest hours of the day at temperatures its BMS was never designed to enjoy, and in winter it's the first place in the house to drop below freezing overnight.
Winter does the opposite thing, and it costs you solar
Most LiFePO4 packs I've seen spec charging from 0°C to about 45°C, and discharging from roughly -20°C to 55 or 60°C. The comfortable band is much narrower than that.
Cold doesn't damage a LiFePO4 cell the way heat does. Discharge down to well below freezing is allowed on paper, though usable capacity drops and resistance rises, so you see more voltage sag on the same load. The pack behaves like a smaller battery for the duration of the cold snap.
Charging below 0°C is the hard no. Push charge current into a cold anode and the lithium plates out as metal instead of sliding into the graphite. Some of that is permanent capacity loss. In the worst case it's a safety problem, which is why almost every BMS blocks charging at or below 0°C and only reopens the charge path a few degrees above it.
Here's the South African twist. Winter is when our PV is best: cold, clear days, no afternoon build-up. And winter mornings are exactly when the battery is coldest. The sun comes up, the panels start pushing, and the BMS says no. You stand there watching two kilowatts of perfectly good sunshine going nowhere, waiting for a cell to warm itself up. A clear June morning can cost you the best two hours of the day, and it looks like a fault when it isn't one.
What the BMS is doing while you're not looking
Your BMS is the only thing standing between the cells and the weather, and it has a fairly blunt set of tools:
- Blocking charge entirely below its low-temperature threshold.
- Derating charge current as the cells get hot, which is why charge current can taper on a hot afternoon even when the array is producing flat out.
- Cutting discharge if temperatures move beyond the safe window, which is the one that shows up as a mysterious shutdown during load shedding.
- Reporting faults that sound like something else entirely. "Charge over-temperature" or "low temperature protection" when the real cause is the room, not the electronics.
One caution: the temperature you see in the app is not always room temperature. It's a sensor on the BMS board or stuck to a cell, and depending on where it sits it can read hotter or cooler than the air around it. The shell of the battery can feel cool while a cell group under it is warm, or the reverse. The app number is a clue, not a verdict.
The data I actually watch
I stopped guessing about my garage and started measuring it.
A cheap min/max thermometer-hygrometer, the kind with a reset button, sits at battery height rather than on the floor. I reset it whenever I remember and read the maximum, because that number is what the cells actually lived through.
Then the cell temperatures in the BMS app, read at the right time. During peak charge current, around midday, not at seven in the morning when everything is still cool. The gap between the hottest and coolest sensor is worth watching too. A couple of degrees is normal. A widening spread can mean one part of the pack is sitting in dead air.
I also watch what the charge current does on a hot afternoon. If it's derating on a clear day with a healthy array, the room is the reason.
And I check the battery by hand before and after a long discharge. You learn what normal feels like, and you notice when it changes.
One reading tells you nothing. A season of readings tells you what your specific garage is.
The part most people never hear
Cycle life is what gets marketed, because it's a big number. Calendar life is often what actually ends the battery's useful life in a house. One cycle a day, or less, with the pack sitting at a high state of charge in a hot room for the other twenty-three hours.
That combination, full and hot, is the quiet one. A battery that finishes charging at one in the afternoon and then bakes at 100% until the evening outage is ageing faster than one that spends the same afternoon half full. Nobody puts that on the box, because the box is printed in a factory in another climate.
I'm not going to tell you where to put your battery. It's a real trade-off: DC cable runs, voltage drop, distance to the DB board, what SANS 10142-1 and the manufacturer's manual allow, and the fact that the battery usually ends up wherever the inverter and the distribution board already are. What I will say is that the installation standard and the manual both speak about ventilation and clearances, and those clauses have a thermal meaning that only shows up years later.
The point isn't that a garage is always wrong. A shaded, well-ventilated one on the Highveld is a different animal from a west-facing steel box in the Lowveld. The point is that you can't tell which one you have from the datasheet.
Go and put your hand on the battery at four in the afternoon in January. Not on the day the installer was there in June. That's the temperature the cell is actually living at, and it's the one deciding how long you get.