* add some reader classes to get the configuration
* adapt unittests
* get config from json or toml file
* loop over all config readers to get the configuration
* rename config test files
* use relative paths for coverage test in vscode
* do not throw an error for missing config files
* remove obsolete tests
* use dotted key notation for pv sub dictonary
* log config reading progress
* remove create_config_toml.py
* remove obsolete tests for the ha_addon
* disable mosquitto tests if the server is down
* ignore main method for test coverage
* increase test coverage
* pytest-cov: use relative_files only on github, so coverage will work with vscode locally
* remove unneeded imports
* add missing test cases
* disable branch coverage, cause its not reachable
* update changelog
* add addon-dev target
* initial version
* use prebuild docker image
* initial version for multi arch images
* fix missing label latest
* create log and config folder first.
* clean up and translate to english
* set labels with docker bake
* add addon-debug and addon-dev targets
* pass version number to proxy at runtime
* add two more callbacks
* get addon version from app
* deploy rc addon container to ghcr
* move ha_addon test into subdir
* fix crash on container restart
- mkdir -p returns no error even if the director
exists
* prepation for unit testing
- move script into a method
* added further config to schema
* typo fixed
* added monitor_sn + PV-strings 3-6 to create toml
* added options.json for testing
* prepare pytest and coverage for addons
* fix missing values in resulting config.toml
- define mqtt default values
- convert filter configuration
* first running unittest for addons
* add ha_addons
* increase test coverage
* test empty options.json file for HA AddOn
* fix pytest call in terminal
* improve test coverage
* remove uneeded options.json
* move config.py into subdir cnf
---------
Co-authored-by: Michael Metz <michael.metz@siemens.com>
* added service to transfer Add-on config from options.json to config.toml
* added feature to get MQTT config from Homeassistant
current version is MVP. can run as Home Assistant Add-On, config.toml is automatically created from option parameters in the add-on configuration tab.
* fix pylance and flake8 warnings
* prepare building a ha addon
- move build script into root dir
- cp source files in addon build-tree
* ignore proxy source files in addon build tree
* move proxy source files in own directory
* remove duplicates source files from repro
* check for a valis SONAR_TOKEN
* rename add_on path
* prepare for unittests and coverage measurement
* move file cause of the changes pathname
* move the proxy dir to /home/proxy
* build addon with make now
* remove duplicated requirements.txt file from repo
* undo changes
---------
Co-authored-by: Michael Metz <michael.metz@siemens.com>
Co-authored-by: Stefan Allius <stefan.allius@t-online.de>
* define __slots__ for class ByteFifo
* disable set-timezone action
* set set-timezone to UTC
* try MathRobin/timezone-action@v1.1
* set TZ to "Europe/Berlin"
* define __slots__
* S allius/issue117 (#118)
* add shutdown flag
* add more register definitions
* add start commando for client side connections
* add first support for port 8899
* fix shutdown
* add client_mode configuration
* read client_mode config to setup inverter connections
* add client_mode connections over port 8899
* add preview build
* Update README.md
describe the new client-mode over port 8899 for GEN3PLUS
* MODBUS: the last digit of the inverter version is a hexadecimal number (#121)
* S allius/issue117 (#122)
* add shutdown flag
* add more register definitions
* add start commando for client side connections
* add first support for port 8899
* fix shutdown
* add client_mode configuration
* read client_mode config to setup inverter connections
* add client_mode connections over port 8899
* add preview build
* add documentation for client_mode
* catch os error and log thme with DEBUG level
* update changelog
* make the maximum output coefficient configurable (#124)
* S allius/issue120 (#126)
* add config option to disable the modbus polling
* read more modbus regs in polling mode
* extend connection timeouts if polling mode is disabled
* update changelog
* S allius/issue125 (#127)
* fix linter warning
* move sequence diagramm to wiki
* catch asyncio.CancelledError
* S allius/issue128 (#130)
* set Register.NO_INPUTS fix to 4 for GEN3PLUS
* don't set Register.NO_INPUTS per MODBUS
* fix unit tests
* register OUTPUT_COEFFICIENT at HA
* update changelog
* - Home Assistant: improve inverter status value texts
* - GEN3: add inverter status
* on closing send outstanding MQTT data to the broker
* force MQTT publish on every conn open and close
* reset inverter state on close
- workaround which reset the inverter status to
offline when the inverter has a very low
output power on connection close
* improve client modified
- reduce the polling cadence to 30s
- set controller statistics for HA
* client mode set controller IP for HA
* S allius/issue131 (#132)
* Make __publish_outstanding_mqtt public
* update proxy counter
- on client mode connection establishment or
disconnecting update tje counection counter
* Update README.md (#133)
* reset inverter state on close
- workaround which reset the inverter status to
offline when the inverter has a very low
output power on connection close
* S allius/issue134 (#135)
* add polling invertval and method ha_remove()
* add client_mode arg to constructors
- add PollingInvervall
* hide some topics in client mode
- we hide topics in HA by sending an empty register
MQTT topic during HA auto configuration
* add client_mode value
* update class diagram
* fix modbus close handler
- fix empty call and cleanup que
- add unit test
* don't sent an initial 1710 msg in client mode
* change HA icon for inverter status
* increase test coverage
* accelerate timer tests
* bump aiomqtt and schema to latest release (#137)
* MQTT timestamps and protocol improvements (#140)
* add TS_INPUT, TS_GRID and TS_TOTAL
* prepare MQTT timestamps
- add _set_mqtt_timestamp method
- fix hexdump printing
* push dev and debug images to docker.io
* add unix epoche timestamp for MQTT pakets
* set timezone for unit tests
* set name für setting timezone step
* trigger new action
* GEN3 and GEN3PLUS: handle multiple message
- read: iterate over the receive buffer
- forward: append messages to the forward buffer
- _update_header: iterate over the forward buffer
* GEN3: optimize timeout handling
- longer timeout in state init and reveived
- got to state pending only from state up
* update changelog
* cleanup
* print coloured logs
* Create sonarcloud.yml (#143)
* Update sonarcloud.yml
* Update sonarcloud.yml
* Update sonarcloud.yml
* Update sonarcloud.yml
* Update sonarcloud.yml
* build multi arch images with sboms (#146)
* don't send MODBUS request when state is not up (#147)
* adapt timings
* don't send MODBUS request when state is note up
* adapt unit test
* make test code more clean (#148)
* Make test code more clean (#149)
* cleanup
* Code coverage for SonarCloud (#150)
* cleanup code and unit tests
* add test coverage for SonarCloud
* configure SonarCloud
* update changelog
* Do no build on *.yml changes
* prepare release 0.10.0
* disable MODBUS_POLLING for GEN§PLUS in example config
* bump aiohttp to version 3.10.2
* code cleanup
* Fetch all history for all tags and branches