The electric grid, composed of substations, transmission lines, transformers and more, delivers electricity from the power plants to our homes and businesses. Its transformation to a "Smart Grid" requires real time sensing of energy production and consumption, anticipating usage needs, and smoothing load fluctuation by way of curtailing demand and bringing cleaner Distributed Energy Resources (DERs) online. This transformation is a fascinating challenge due to the need to integrate legacy system, varied protocols, and myraid devices, while securing remote dispersed systems, protecting user data, coping with unpredictable DERs, and incentivizing changes in human behavior: all to deliver reliable, efficient, and progressively cleaner power to meet our needs.
This project defines models for devices that produce and consume energy, incorporating environmental factors that influence consumption such as weather, time of day, and seasonal fluctuations, and providing mechanisms for real time monitoring and control.
Together, through open standards and implementations, we can achieve this Smart Grid, reduce global warming and help preserve our beautiful planet.
-
Python development on this project requires
pipenv
andpyenv
. For example, on MacOS with Homebrew, these can be installed with:$ brew install pipenv pyenv
-
Install the pinned version of Python with
pyenv
. The current version can be found in thePipfile
underrequires.python_full_version
.$ pyenv install <version>
-
Set up the Python virtual environment for local development:
$ make pipenv
-
pipenv
can now be used to run the Python code. For example:$ pipenv run python -m kinney.orchestrator.server
To get an interactive Python shell, use
pipenv run python
.
The generated Protocol Buffer sources can be refreshed with:
$ make protos
The generated code is checked in so that only developers who need to change the API definitions will need to have the Protocol Buffer compiled installed.