Earth Notes: Enphase AC Battery Grid-connected Storage in Our UK Home: Review

Does it do what it says on the tin? And what about the important feature not on the datasheet?
Enphase AC Battery Enlighten screenshot

Enphase AC Battery Interim Review

(This review will be updated as experience is gained.)

  • Enphase AC Battery
  • Reviewed by: Damon Hart-Davis on 2018/08/14
  • Installation was quick and good, seems to manage small loads as promised, Web interface is clear, data is locally accessible to automated tools, expensive by the kWh.
  • Bought from Eco Partners for £2995 including installation and VAT (and continuing on-line services). The Enphase AC Battery is rated at ~1.1kWh usable capacity (reports 1240Wh at full, 0Wh at empty, as of 2018/08), ~260W maximum charge/discharge power, and the key undocumented minimum supported (ie trigger) load (so maximum 'leakage' import) of 5--15W, which is important where typical loads are small, eg overnight. (Best alternative known is Sonnen 8 or 9 at ~30W; 240W not untypical.) LiFePO4 (lithium iron phosphate) / LFP (lithium ferrophosphate) chemistry AKA the non-exploding but slightly heavier type of lithium battery. Size is 390 mm (W) x 325 mm (H) x 220 mm (D) without bracket. 25kg for the battery itself. A modular system allowing multiple battery packs to be added as needed, though would be bulky and expensive to cover typical household spiky loads such as washing machine (~2kW) or kettle (~3kW). A single "Envoy-S Metered" has to be installed to manage one or more Battery units. The Envoy is small and acts as a hub to connect to the Internet and even serve stats locally. Security might be enhanced if Internet connectivity could be dropped entirely unless required. Envoy can accept details of local time-of-use static tariffs to optimise savings, but apparently not dynamic inputs or my algorithms using data accessible within the Envoy, to improve scheduling and system value.
  • Rating: 4.5 out of 5

2018/07/18: Deposit Down

On 2018/07/18 I put the deposit down for an installation of a single Enphase AC Battery (1.2kWh) plus "Envoy-S Metered" hub. Installation is due early August. So there is stock, and lead-times are refreshingly short.

The deposit was £750.

(Similar lead times of a fortnight or less were given for Sonnen product. In contrast, the last I heard of Tesla Powerwall availability was the end of the year...)

Note that this hardware and installation comes in at £2995 including VAT. Additional batteries ordered at the time would be ~£1500 each, so giving a cost of about £1500 to £3000 per installed kWh with surrounding system. Both the management of the lithium-format batteries and the grid interaction are complex.

(Indicative quotes I had for the Sonnen 9.43 with display and installation were: 2.5kWh ~£4500, 5kWh ~£5600, lead times between 1 and 2 weeks.)

This review includes the installation process, given that I think there are a few tricky factors for my case:

Cost per kWh (Unit of Energy Stored)

Compare that with the 400Ah@12V of lead-acid gel batteries that on 2011/01/10 cost me £900 including VAT and delivery, ie close to £400 per usable kWh of raw storage. So even though raw wholesale lithium batteries should be able to beat those (old) lead-acid prices by a fair margin, that's not visible at retail at all. The lithium-format batteries will have a longer life and can be pushed harder than the lead-acid.

I'm aiming to allow up to four battery units to be fitted eventually.

The aim of this unit is to absorb background low loads such as fridge/freezer and lighting overnight. For that it is important the precision with which the system can prevent imports from the grid, and the minimum such load that it can handle.

Minimum Trigger Load: The Missing Spec

That rather important piece of information is not in any of the spec sheets other than for the Powerflow Sundial M2/S2 for which it is ~150W. Too high to kick in and handle our typical ~70W fridge/freezer load.

The Sonnen UK technical director confirmed in email a cut-in figure of ~30W for the Sonnen 8.0 and Sonnen 9.43.

In discussions, suggested that the Enphase AC Battery is capable of something the 1W to 5W range, for charge and discharge. That seems plausible as the charge/discharge power per ~1kWh battery unit is ~250W maximum. Substantially on the basis of this claim I have ordered the Enphase from them to use as a testbed.

2018/08/06: Installation Day

Enphase AC Battery charged

This may be sweaty work: it's due to be 32°C in the shade at 16:00...

The Eco Partners crew arrived in their van ~14:30.

I'm happy to say that the Enphase guys are cheerfully and professionally coping with the complexity of my system, and my awkward small space.

When the Enphase Envoy-S wouldn't talk WiFi to my Technicolour Internet router (a known problem, it seems) they worked round the issue by providing and setting up a WiFi extender. (Another reason to get my RPi3-as-AP done!)

They have done a nice neat job siting the Envoy-S (not enclosed in any outer box) between the consumer unit and the meter box, with a plain white domestic-friendly isolator switch.

By 16:15 the backing plate up for battery was up, Envoy-S was up, and largely plumbed in to power, CTs, etc. Wire run for battery is not yet done.

By ~17:45 everything installed, wired up and commissioned; battery charging!

All round a tidy professional job by a pleasant and helpful crew.

(At the end I was (proudly) shown how almost all the packaging was cardboard that went straight in my recycling bin!)

The balance of the fee was taken on my card just before they left.

I was asked some details to get my on-line account set up, including the schematic, and the direction(s) and inclination of my panels.

I can expect to get access to the on-line account in a couple of days, but it is gathering data in the interim, I am told.

Initial Tests

A couple of simple tests to exercise the battery before having access to the full data torrent...

Discharge Test

The battery has a little charge (~25% as shipped, some from my PV). The sun is going down so generation is ~500W. The dishwasher is full so I have started an ECO cycle. When the main wash starts, with a demand higher than our PV generation, I'll watch for the house to start importing, and the Enphase battery light to go to blue pulsing to show that it is discharging to try to minimise imports.


The battery is charging nicely in the morning (from ~6am / 05:00Z), briefly switching to discharge as I make a cuppa, with the 3kW kettle demanding more than the available ~1.25kW of PV! Full (solid green indicator LED) by ~1pm (12:00Z).

Night Flow Test

Overnight I'll see if the gross grid flow as seen by the Loop meter drops from its customary 80--90W.

This may not work if the battery is too depleted to cover the load.


It seems that the house was powered from the battery for at least the early part of the evening (TV, lights, etc). The Loop meter also saw a reduced (but not zero) load up to at least midnight, ~20W lower than usually reported. (None of the residual may be real... An interesting symptom is that electricity readings are coming in very infreqently, possibly not even hourly, indicating very little flow to power the Loop sensor transmitter, presumably taken parasitically.) The battery was empty before ~3am.


2018/08/08: I now have access to the Enlighten service.

(See the available published data set.)

The very first "Recent Consumption" data sample that I have downloaded confirms the night consumption rate to be somewhere under 20W. This suggests that the 'other' ~60W that Loop was seeing was indeed false. Phew, fewer vampires than I'd feared!

At the moment I'm not seeing generation or grid/battery flow figures in this interface.

There are various interesting graphical presentations of the data available. I can clearly see 0.8kWh being used by the dishwasher overnight for example, though had to tot up manually the Wh figures per 15 minutes.

Having connected directly over the Envoy's local AP, having enabled it, and fetched the production.json file, I see all the juicy data I want. But some particular items of interest in one snapshot are:

The minimum supported load does not appear to be exactly 5W, but seems to wander a bit between under ~5W and up to ~15W. The Enphase seems to correctly avoid making any exports.

I've managed to connect to the same page(s) on the Envoy via the local LAN: I'll have to pin its IP address down if I am going to poll it automagically and reliably from the RPi.

But in any case, I'm not letting the best be the enemy of the good. Hurrah! I now have a simple script polling the Envoy-S every 5 minutes to match the cadence of storage reporting, generating gnuplot-parsable log output such as:

20180809T03:15Z consumption.readingTime 1533784500 3.813 0.014 production.wNow -3.799 storage.percentFull 40 storage.wNow 10 storage.readingTime 1533784343

(Core idea of polling the Envoy's /production.json c/o Enphase Envoy-S "Data Scraping": thanks!)

2018/08/09: the installer switched on the features needed for me to see all the data, visible in this screenshot. See the dishwasher running the ECO program starting ~1am.

See the Enlighten public view of this system.


2018/08/11: a day where we were mostly away and so loads were small (~2.2kWh) and only ~0.2kWh was imported. Without the battery maybe 0.5kW+ would have been imported.

2018/08/13: my manual meter readings ~24h apart show 3.1kWh, but the Enphase for the same interval indicates 2.9kWh of imports, via the Web interface. The Enphase interfaces (Web and data) show lifetime values which can be matched over a lomger interval for a better idea of the Enphase's accuracy. And indeed supply meter and Enphase record ~14.2kWh imported since the Enphase was installed 7 days ago. (In the same time 104.1kWh was generated by the PV, and gross consumption was 39.6kWh including storage charging.)

2018/08/15 07:15: PV has just started to generate and stats so far from the Web interface are 40Wh PV generation, 590Wh consumption, ~130Wh imported. So 3/4s of night imports (after midnight) avoided, hurrah!

2018/08/15 08:30: just confirmed that the rather bright status light on the battery module cannot be turned off or down in software, so I may cover ours physically!

2018/08/19: the Envoy has found itself a new address on my LAN, breaking my crude data collection tools! So I'll really have to pin down its IP address. For now I'll continue to play along with the new IP. (The Enlighten data collection appears to have continued uninterrupted.)

It seems that figures in the Enlighten on-line view may be revised several days after the event. Consumption figures for the 16th and 17th were significantly reduced by today (from ~1.7kWh to ~1.4kWh).

2018/08/20: the Envoy has wandered off again to get a new IP address. I suspect my router rather than the Envoy itself.

2018/08/25: the Envoy has wandered off again, so I lose another few hours' data before I see the warning emails and can manually fix things...

2018/08/26: and again...

2018/09/08: the 'net energy' report for August still seems to be being tweaked restropectively.

< 2018-08-31 04:15:00 +0100,0,13,0,4,0,9
> 2018-08-31 04:15:00 +0100,0,14,0,4,0,10
< 2018-08-31 10:30:00 +0100,342,60,217,0,66,1
> 2018-08-31 10:30:00 +0100,342,59,217,0,67,1
< 2018-08-31 14:45:00 +0100,548,29,517,0,2,0
> 2018-08-31 14:45:00 +0100,548,30,517,0,1,0
< 2018-08-31 15:15:00 +0100,587,18,568,0,1,0
> 2018-08-31 15:15:00 +0100,587,17,568,0,2,0
< 2018-08-31 16:30:00 +0100,454,43,410,0,1,0
> 2018-08-31 16:30:00 +0100,454,42,410,0,2,0
< 2018-08-31 17:45:00 +0100,188,37,122,0,29,0
> 2018-08-31 17:45:00 +0100,188,36,122,0,30,0
< 2018-08-31 22:15:00 +0100,0,25,0,3,0,22
> 2018-08-31 22:15:00 +0100,0,26,0,3,0,23

Interestingly battery charging from the 6th is recorded at ~26kWh, with discharge at ~21kWh. The latter represents avoided imports. The difference is mainly the self-consumption of the battery itself and losses (not including the Envoy), so ~0.2kWh/d (8--9W). So an effective round-trip efficiency of ~80%. Though that is a little unfair since the battery arrived charged to ~25% and was nearer 50% at midnight on 31st August, so maybe 81% efficient overall!

2018/09/09: today I am running the weekly 'hot' maintenance wash for our dishwasher. The sky has been quite overcast, so guessing a good time to run the dishwasher was tricky, to cover the water heating (>2kWh) parts. Indeed, it was unlikely that I could find any start time when all the consumption would be covered by PV generation. Indeed, as clouds were passing the house was switching between exporting and importing, and here the Enphase provides twice the smoothing effect to the grid than its nameplate rating suggests. As the battery is not full, it absorbs ~260W of any potential exports, then reduces any imports as a cloud passes by (up to) the same amount.

Storage Interop

2018/08/27: I adjusted the off-grid storage control system to avoid taking its load off-grid if its state of charge is relatively low and the house is exporting (spilling) to grid, because the AC battery cannot absorb it. This lets the off-grid system recharge faster while there is 'excess' on-grid. This then helps share available energy better between the two storage systems, and help to minimise imports in the evening peak for example. The effect is likely to be small, since the off-grid system has to be struggling while the grid-tied is not. Maybe this could contribute an extra 0.1kWh/d, but its a few lines of new code; no extra hardware. The off-grid storage algorithm continues to take load off-grid when possible at higher priority than this tweak, when grid intensity is high. Thus, first minimising imports (or maximising imports) at times of high grid carbon intensity, then minimising imports and maximising self-consumption overall. (This mechanism should fail 'safe' when the Envoy goes AWOL, reverting to normal behaviour, ie assuming that there are no exports.)

For 2018/08/29 with much less off-grid primary-array generation than the previous day, the 'dump' load was kept off grid a little longer after midnight. ~80Wh was displaced from exports to overnight.

Note that over the last few days with us away, so minimal load (not massively higher than the battery capacity ~1.6kWh/d vs 1.1kWh) and significant excess (though variable) PV generation each day, the battery is performing will with ~90% self consumption rather than ~50% for the matching period last year.

Network Dropout

2018/08/31: caught the Envoy dropping off the network (top LED is red). Network itself including WiFi is fine. In this case powering off and on the WiFi extender seemed to let the Envoy reconnect immediately, before the extender had finished rebooting... The Enlighten Web interface then showed the 'missing' ~50 minutes' data very quickly also.

As of ~14:00Z the lifetime figures shown on the Envoy's home page were:

Matching values from production.jsp are:

2018/09/01: IP address changed again, losing a little over an hour's data...

The new 's' off-grid code (don't dump if the battery isn't full and the house is exporting/spilling to grid) seems to have helped the battery get to FULL twice in quick succession, even with less than stellar insolation, which is an unexpected bonus.

2018/09/02: connectivity lost again, around noon. Power-cycling the WiFi extender made the (top) connectivity light on the Envoy green again. Finding the IP address and updating cron (etc) remains slow and a pain...

(This fun continues sometimes a few times per day. Not necessarily the Envoy's fault, indeed likely not so.)

2018/09/09: since fixing the IP address that my router hands out to the Envoy (based on its MAC address) other than one glitch likely caused by the WiFi extender, there have not been any further drop-outs. The WiFi extender is now powered off also, saving some juice!


Self-consumption, ie (Net - Import) / Net, where Net consumption = Import - Export + Generation, rose from 48% in August 2017 to 72% in August 2018 (~0.5kWh/d reduced imports). The Enphase was only installed on the 6th, and August is a special low-consumption case.

September 2018 roughly halved daily imports compared to September 2017 (1.6kWh/d vs 3.2kWh/h), with self-consumption up to 69% from 37%. Some behaviour change and better PV generation may have helped.

No External Control

One aspiration with this kit was to adjust the charge/discharge conditions, eg to match a dynamic ToU tariff or live carbon intensity.

Via the installers, from Enphase on 2018/11/06, I received the following:

I can imagine what he wants but it’s impossible...

Only Envoy and our algorithm can send charge/discharge command to battery. And there is no possibility to set a maximum charge level…

While disappointing it is not entirely astonishing, And it is probably positive from a security point of view, for now.


Summary of continuing timeseries data sets available: