My 8.2kw battery is located outside, bolted to the house wall. I've read lots of articles that say lithium ion phosphate batteries shouldn't be charged if temp drops below zero. But the GivEnergy battery spec states an operating temp of -10'C to +55'C. We are forecast to go down to -5'C later this week. Is it still OK to charge overnight on ECO 7? If not is there anything I need to do to protect the battery like putting polystyrene foam or insulating board around it?
Overnight charging battery in very cold weather
-10 to 50°C is the discharge operating range. The charge range is 0°C to 50°C.
Zakalwe so should I be trying to insulate the battery in some way - if so - any ideas?
No idea to be honest. I would have thought that the BMS would protect the battery if the temps dropped too low. however, thats just a guess.
Karen The BMS will protect the battery and not charge if it's out of temp range. However, you might find your battery remains above the ambient temperture for longer than you might think. Whenever the battery is charging or discharging it will generate heat itself. I have just checked mine and the outside temperature is -3. The BMS temperatue is 4.7 and the average cell temperature is 7.2. I'm on Octopus GO so it charged between 00:30 - 04:30. Your eco 7 will be 7 hours and not 4 and will be discharging outside of that.
Although it makes sense to keep an eye on things, just in case, you shouldn't need to worry. The system is designed to cope with these winter periods. Ultimately, the battery will shut itself down before any damage can be done - but I expect this will only happen if we get an extended 'winter bomb' with ambient temps -10 and lower for extended periods.

Also as temperature decreases below 20C, capacity drops too. 5C will be around 90% of 20C

So if my battery keeps itself warm by charging would it make sense to do a long slow charge over the full 7 hours so that it is working consistently all the time, rather than wacking all the charge in at the beginning of te period and then just doing tiny top ups for the rest of the time?

Yes, find a charge level adequate to keep it out of the danger area. Yes its wasting a few kwh, but its better than damaging your battery, or having it sat idle, getting lower and lower, and not being able to charge it back up
cluelesscris Where can I see the BMS temperature and cell temperatures? The only figure I can find for battery temp is on the inverter icon "battery data"
Karen I think you need Givtcp to get that detail. Once you start on that route you'll end up building automations. One I'm working on currently is to set the battery charge power dynamically so that it takes the full charge period (5 hours) to reach the Charge to %, whatever that is set to. My rationale is to keep the inverter power as low as possible to reach the full charge to %. We've got fans on the inverters which switch on above a certain temperature and they were operating at night when there was no limit on the charge power. Now they never operate as the inverter temperature stays well below 40C all the time.

Tim
Indeed GivTCP is a steep learning curve, but addictive for sure. Endless possibilities'. If there is something not catered for, code it.
I'm afraid I'm a complete dunce at techie stuff - my friends even had to set my mobile phone up for me. Unless there are ready coded common use things out there I think I'll have to stick to doing things manually, although the BMS and cell stuff would be useful.
Just thought I would update for those of you that have your batteries outside. We had another spell of cold weather here -5 at night. So I've made my battery a removable cosy polystyrene jacket and now it's nice and warm at night. I used a 5cm sheet of insulating polystyrene from Wickes for £20 (other suppliers are available!) and cut it to size and glued and gaffer taped it in place. I have an indentation cut in the polystyrene over the on/off button, and there is a separate piece around the cables so I can take that off and then just slide the cover off when the weather gets warmer. I don't have the TCP monitoring, but if I look at the battery tab on the inverter card it was going down to 3-4'C on the subzero nights, now it's a toasty 6-7'C. I'm still doing the long slow timed charge overnight as well, but this combination seems to be doing the business

You may find some joy using a group members self built app that goes to similar depth as GivTCP?
You will need to know your Inverters IP address though (although I believe you can get this from the official Givenergy app by looking in your "local monitoring" settings
Apple:
https://apps.apple.com/gb/app/inverter/id6443976497
and the Android version at https://www.bbcbasic.co.uk/inverter.apk
TheDragon (GivEnergy) There's a simpler way with direct access to the givenergy-modbus Python module and a few lines of code. It still needs some software-savvyness but fewer hoops than installing HA. I cobbled this together last night and can provide instructions if anyone needs them.

The givenergy modbus Python library is really robustly written, and well documented. I was pleasantly surprised.
I'm yet to try it directly without GivTCP sitting on top, I confess...

COULD HELP MANY SO YES PLEASE...COMPLETE STEP BY STEP IDIOTS GUIDE PLEASE ...
oh sorry for caps lock.
Riscy Here's one I prepared earlier. Install givenergy-modbus using pip and run this:
#!/usr/bin/python3
import sys
import datetime
import time
from givenergy_modbus.client import GivEnergyClient
from givenergy_modbus.model.inverter import Model
from givenergy_modbus.model.plant import Plant
client = GivEnergyClient(host="192.168.1.132")
numbatts = 2
p = Plant(number_batteries=numbatts)
while True:
now = datetime.datetime.now()
timestamp = now.strftime("%Y-%m-%dT%H:%M")
try:
client.refresh_plant(p, full_refresh=True)
except:
print("Error reading inverter data")
# for item in p.inverter:
# pprint(item)
# print(p.batteries[0])
if p.batteries[0].v_battery_cell_01 > 0: # Filter out missing data
c = 0
while c < numbatts:
print("## Battery", c)
for item in p.batteries[c]:
if (str(item)[2:6]) == "v_ba":
print(timestamp,"Bat", c, item[0], item[1])
print(timestamp, "Bat", c, p.batteries[0].battery_soc)
c += 1
print(timestamp,"Inverter Battery SoC:", p.inverter.battery_percent)
sys.stdout.flush()
time.sleep(60)

stevelewis Nice. 😄
If I could only call a Python script from within Node-RED, all would be well with the world.

