A python library to retrieve energy statistics from your Alpha ESS inverter by polling the Official Alpha ESS Open API.
Project description
alphaess
This Python library uses the Alpha ESS Open API to retrieve data on your Alpha ESS inverter, photovoltaic panels, and battery if you have one. This library is principally intended for use by my Home Assistant integration [https://github.com/CharlesGillanders/homeassistant-alphaESS]
How to use
1. Sign up for an open API account
Register at https://open.alphaess.com/ for a (free) account to get your Developer ID (AppID) and Developer Secret (AppSecret).
Once registered, add your battery/inverter to the developer account via the web UI.
Note
To be good internet citizens, it is advised that your polling frequency for any AlphaCloud endpoints are 10 seconds at a minimum.
Methods
There are public methods in this module that duplicate the AlphaESS OpenAPI and provide wrappers for
- https://openapi.alphaess.com/api/getEssList
- https://openapi.alphaess.com/api/getLastPowerData
- https://openapi.alphaess.com/api/getOneDayPowerBySn
- https://openapi.alphaess.com/api/getOneDateEnergyBySn
- https://openapi.alphaess.com/api/getChargeConfigInfo
- https://openapi.alphaess.com/api/updateChargeConfigInfo
- https://openapi.alphaess.com/api/getDisChargeConfigInfo
- https://openapi.alphaess.com/api/updateDisChargeConfigInfo
All of the above are documented at https://open.alphaess.com/developmentManagement/apiList (Registration required)
- getdata() - Attempts to get statistical energy data for use in Home Assistant for all registered Alpha ESS systems - will return None if there are issues retrieving data from the Alpha ESS API.
- authenticate - Attempts to use https://openapi.alphaess.com/api/getEssList to validate authentication to the ALpha ESS API - will return True or False.
- setbatterycharge (serial, enabled, dp1start, dp1end, dp2start, dp2end, chargecutoffsoc) Parameters:
chargecutoffsoc
(float) % to stop charging from the grid atenabled
(bool) True to charge from the grid, False do notdp1start
(datetime.time
) The start time of charging period 1 (the minutes must be one of :00, :15, :30, :45)dp1end
(datetime.time
) The end time of charging period 1 (the minutes must be one of :00, :15, :30, :45)dp2start
(datetime.time
) The start time of charging period 2 (the minutes must be one of :00, :15, :30, :45)dp2end
(datetime.time
) The end time of charging period 2 (the minutes must be one of :00, :15, :30, :45)serial
(str) The serial number of the battery/inverter.
- setbatterydischarge (serial, enabled, dp1start, dp1end, dp2start, dp2end, dischargecutoffsoc) Parameters:
dischargecutoffsoc
(float) % to stop discharging from the battery atenabled
(bool) True to discharge from the battery, False do notdp1start
(datetime.time
) The start time of charging period 1 (the minutes must be one of :00, :15, :30, :45)dp1end
(datetime.time
) The end time of charging period 1 (the minutes must be one of :00, :15, :30, :45)dp2start
(datetime.time
) The start time of charging period 2 (the minutes must be one of :00, :15, :30, :45)dp2end
(datetime.time
) The end time of charging period 2 (the minutes must be one of :00, :15, :30, :45)serial
(str) The serial number of the battery/inverter.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.