Controlling Enphase AC Battery (ACB) sleep mode via Home Assistant - has anyone done this?
I have an Enphase system with an older AC Battery (ACB - part 800-00930-r03), which is NOT the same as the newer IQ Battery. Getting this confused with IQ Battery support is a common pitfall so worth stating upfront.
The problem
The Enphase tariff scheduler has no concept of “hold” - once the overnight grid charge window closes at 06:00, the battery immediately starts self-consumption discharge regardless of any peak window you configure. There is no way to prevent this via the Enlighten UI or Installer Toolkit.
Integrations I have tried - none give ACB control
- Enphase Envoy - Home Assistant (official)
- GitHub - barneyonline/ha-enphase-energy: Cloud-based Enphase device integration for Home Assistant. · GitHub
- GitHub - chinedu40/hacs_enphase_envoy_cloud: Home assistant enphase cloud hacs integration · GitHub
All of these either don’t expose the ACB at all or only expose it as a read-only sensor.
What I have found
Thanks to Matthew1471’s excellent Enphase API documentation project, the IQ Gateway has a local API endpoint specifically for the ACB:
/admin/lib/acb_config.json
Documented here: Enphase-API/Documentation/IQ Gateway API/Admin/Lib/ACB_Config.adoc at 85e3ec86e73be4837ee447d459408886327873b5 · Matthew1471/Enphase-API · GitHub
This supports GET, PUT and DELETE to get, set and cancel sleep mode on the ACB. Confirmed working on firmware D8.3.5167 with Bearer token auth (token from entrez.enphaseenergy.com/tokens).
To put the battery to sleep (stop discharge):
PUT /admin/lib/acb_config.json
{"acb_sleep": [{"serial_num": YOUR_SERIAL, "sleep_min_soc": 0, "sleep_max_soc": 100}]}
To cancel sleep (allow discharge):
DELETE /admin/lib/acb_config.json
{"acb_sleep": [{"serial_num": YOUR_SERIAL}]}
What I am trying to do
Build HA automations using rest_command to call these endpoints on a schedule - e.g. enable sleep at 06:00, cancel at 11:00 - so the battery holds its overnight charge until the peak tariff window begins.
Has anyone else done something similar with an ACB? I want to avoid reinventing the wheel if a working rest_command/automation config already exists. Happy to share back whatever I end up with.
Enhancement request
I have also raised this as a feature request against the official Enphase Envoy integration to get proper ACB sleep mode control added natively: Enphase Envoy: Add manual AC Battery (ACB) control via sleep mode · home-assistant · Discussion #3316 · GitHub