Changelog ========= [0.0.2] - June 21, 2024 ----------------------- Key updates include: * Extended Shelly device support to include the 'Shelly Motion Sensor', which helps determine if anyone is at home and controls the hot water circulator pump accordingly. * Implemented several simulation classes for testing environments without actual sensor data: * Shelly Motion Sensor Simulator * Shelly Plus 1 Simulator * Replaced the Doxygen (C++) documentation tool with Python's native Sphinx. * Fully implemented the plugin architecture; all existing classes are now genuine plugins, even though they are deployed in a single package. * Introduced a serialization system based on JSON format. * Reformatted Python code using the 'black' code formatter. * Automated class initialization e.g. calling of `cls.load_json()` and `atexit.register()` methods upon import. * Shortened long imports (e.g., `from juham.shelly.jshellymotion import ShellyMotion`) using `__init__.py`, resulting in cleaner imports (e.g., `from juham.shelly import ShellyMotion`). * Updated filename and classname conventions from C-style to Pythonic (e.g., `JShellyMotion` to `ShellyMotion`). * Added support for multiple configurations via startup arguments: `--configuration-folder [path]`. This allows running the same automation app on different sites or for various purposes (e.g., production, testing). * Started transition to Python type annotations. Installed mypy and wooah, I'w missed type checking so much! * Adopted f-string convention, e.g. `self.log(f"Forecast for {days} days acquired")`. * UML class diagrams. * [snip] [0.0.1] - May 23, 2024 ---------------------- Private in-house releases, not published to the Python repository — for everyone’s sake. * Added support for more devices: * Shelly PRO Energy Meter * HomeWizard Water Meter * Introduced the class factory method pattern. * Added class-specific JSON configuration files, allowing automation classes to be configured instead of hardcoding settings in Python. * More refined class hierarchy, for minimizing code/functionality ratio. * First unit tests added * [snip] [0.0.0] - May 21, 2024 ----------------------- Initial release featuring: * A functioning system * Some unconventional use of the Python programming language * Mosquitto MQTT via Paho * InfluxDB V3 time series recording * Python package installable via pip, based on `pyproject.toml` * MIT license * README, CHANGELOG, and other standard files in .rst format * A cool project name, 'Juham™', with a note: M currently stands for mission rather than masterpiece * Initial support for Shelly WiFi relays with temperature sensors * Some docstrings and related developer documentation generated with Doxygen