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?)