TODOs for Juham™¶
An exceptionally well structured almost priorized list of TODOs for Juham™
Automation¶
- [_] Feature to optimize the balance between solar power production and electricity consumption to minimize costs
associated with electricity transmission.
[_] Support for the current 1-Hour, and the forthcoming 15-Minute Imbalance Settlement Period
[_] Bought five small solar panel elements, capable to produce electricity up to 5 volts. This could be used as a real time solar radiation sensor with Shelly Plus 1 wifi relay.
[_] …
Python¶
[X] Class registration methods have to call cls.load_json() and atexit.register() methods, could this be automated?
[X] Long imports e.g. juham.shelly.jshellymotion import JShellyMotion?
[_] Major design decision: continue with the current multi-threading architecture (which Python currently does not really support well), or move to multi-processing or asyncio instead?
[_] Python type annotations (type hinting).
Design¶
[_] Decouple threads and functionality: any task should be runnable by a thread, an external process (perhaps run via cron), or by using an async IO approach.
[_] Support for MQTT password, encrypted in the .json configuration file, for security.
[_] Simulation classes for essential data sources, for development, testing, and demonstration purposes.
[_] …
Documentation¶
[X] Replace the current Doxygen (C++) with some native python documentation too e.g. Sphinx?
[_] Extract FIXME and TODO inline comments from the source code with the autogenerated Sphinx docs
[_] Design and integrate a distinctive and highly professional Juham™ look with an outstanding logo and other graphics.
[_] …
Testing¶
[X] Support multiple configurations via startup arguments (one for testing, one for real)
[_] Write unit tests for all classes
[_] Mocking (e.g. unittest.mock?)