Skip to content
ropelessPublic

About

Solala is a Python package for controlling solar power inverters and battery.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

87 Commits

Folders and files

Repository files navigation

Solala

Solala is a Python package and web app for controlling solar power inverters and battery.

This is currently a personal project being shared in case others find it useful.

The aim of the project is to provide:

  • datatype-aware reading and writing of Modbus registers using high-level register names potentially using multiple Modbus devices with multiple IP addresses
  • high-level inverter and battery status and control
  • high-level power pricing and forecasting API
  • high-level system control and control policies
  • a web app for monitoring and controlling the system.

Here are the implemented control policies.

  • Battery Manual: Enable (the normal condition, allow charge and discharge).
  • Battery Manual: Disable (neither charge nor discharge is allowed).
  • Battery Manual: Force Charge.
  • Battery Manual: Force Discharge.
  • Battery Auto: Cheap Energy ⇒ Force Charge (force charge if energy is cheap).
  • Inverter Manual: Enable (the normal condition, allow export to the grid).
  • Inverter Manual: Disable (stop inverter providing solar power).
  • Inverter Manual: Zero Export (try to not export to or import from the grid).
  • Inverter Auto: Negative Feed-in Tariff ⇒ Zero Export (force zero export if the feed-in tariff is negative).

As it is a personal project, there are a few limitations.

  • There is only support for Fronius GEN4 inverters.
  • There is only support for Amber as the power price provider.
  • The web app is very basic.
  • The web app needs to run on the same LAN as the inverters.

Getting Started

See the demonstration scripts in the src/solala_demo directory.

A web app can be started using the src/solala_demo/demo_server.py script or scripts/run_solala.sh. Those scripts will start the web app with real connections to the inverters and power pricer. You can also start the web app with dummy connections using the src/solala_demo/demo_dummy_server.py script.

For the demos, private constants are declared in a file local_config.py which needs to be in your Python path. An example is provided in the file src/solala_demo/_example_local_config.py.

GUI User Hints

On the landing page, the "Power" panel shows a live infographic of power and pricing information.

Click the infographic "grid" icon to see the forecast of power prices.

Click the infographic "sun" icon to see the forecast of solar power.

License

MIT license (see the file LICENSE.txt).

About

Solala is a Python package for controlling solar power inverters and battery.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages