Finally get rid of ahoy.py and integrate functionallity into the module
itself. Prepares for pipelines, adding pip installer or debian packaging.
Improve configuration adds commandline switches for:
* `--verbose, enabling verbose logging
* `--log-transactions`, outbut all rf raw data
Improve loop, now runs all queued commands per inverter within interval.
Skip sleep when interval is allready due.
Seems to be that we can not exactly determine the actual model by
looking at the serial. What we seemingly can guess is how many MPPT and
Phases a range of serials have.
Some Group-Based decoders should be compatible across the group.
A group is now named by the lowest model
* 1121: HM300 1 MPPT, 1 Phase
* 1141: HM600 2 MPPT, 1 Phase
* 1161: HM1200 4 MPPT, 1 Phase
Adds the ability to directly inject payloads to be sent to the inverter.
Fixes application crash at missing decoder by adding default decoding.
All unknown payloads are now printed as long- and short-lists for faster
protocol analysis
Is was clear, the cmd approach does not decode payloads reliably.
The modular form allows for easy tinkering.
This implements
* hoymiles protocol
* transport-layer enables for retransmit of missed fragments
* full payload decode
* device specific decoders
* transaction tracking enables decoding of different datasets
* multi-inverter support
* configuration format change to YAML (required for multi-inverter)
First PoC, lots of things have to be relocated, rewritten and exteded.
Currently only supports Hoymiles HM-600, more device decodes have to be added by
users who have the hardware.
* fixed behavior if no MQTT IP is set (the system was nearly unusable because of delayed responses)
* fixed Station / AP WiFi on startup -> more information will be printed to the serial console
* added new ticker for serial value dump
* added option to compile WiFi SSID + PWD to firmware
* added option to configure WiFi access point name and password
* added feature to retry connect to station WiFi (configurable timeouts)
* updated index.html
* added option for factory reset
* added info about project on index.html
* moved "update" and "home" to footer
* fixed#23 HM1200 yield day unit
* fixed DNS name of ESP after setup (some commits before)
Transform ahoy.py into a python library, implements decoding of
fragmented large payloads.
The module also allows for easier tinkering and replay testing.