* Code Cleanup (#158)
* print coverage report
* create sonar-project property file
* install all py dependencies in one step
* code cleanup
* reduce cognitive complexity
* do not build on *.yml changes
* optimise versionstring handling (#159)
- Reading the version string from the image updates
it even if the image is re-pulled without re-deployment
* fix linter warning
* exclude *.pyi filese
* ignore some rules for tests
* cleanup (#160)
* Sonar qube 3 (#163)
fix SonarQube warnings in modbus.py
* Sonar qube 3 (#164)
* fix SonarQube warnings
* Sonar qube 3 (#165)
* cleanup
* Add support for TSUN Titan inverter
Fixes#161
* fix SonarQube warnings
* fix error
* rename field "config"
* SonarQube reads flake8 output
* don't stop on flake8 errors
* flake8 scan only app/src for SonarQube
* update flake8 run
* ignore flake8 C901
* cleanup
* fix linter warnings
* ignore changed *.yml files
* read sensor list solarman data packets
* catch 'No route to' error and log only in debug mode
* fix unit tests
* add sensor_list configuration
* adapt unit tests
* fix SonarQube warnings
* Sonar qube 3 (#166)
* add unittests for mqtt.py
* add mock
* move test requirements into a file
* fix unit tests
* fix formating
* initial version
* fix SonarQube warning
* Sonar qube 4 (#169)
* add unit test for inverter.py
* fix SonarQube warning
* Sonar qube 5 (#170)
* fix SonarLints warnings
* use random IP adresses for unit tests
* Docker: The description ist missing (#171)
Fixes#167
* S allius/issue167 (#172)
* cleanup
* Sonar qube 6 (#174)
* test class ModbusConn
* Sonar qube 3 (#178)
* add more unit tests
* GEN3: don't crash on overwritten msg in the receive buffer
* improve test coverage und reduce test delays
* reduce cognitive complexity
* fix merge
* fix merge conflikt
* fix merge conflict
* S allius/issue182 (#183)
* GEN3: After inverter firmware update the 'Unknown Msg Type' increases continuously
Fixes#182
* add support for Controller serial no and MAC
* test hardening
* GEN3: add support for new messages of version 3 firmwares
* bump libraries to latest versions
- bump aiomqtt to version 2.3.0
- bump aiohttp to version 3.10.5
* improve test coverage
* reduce cognective complexity
* fix target preview
* remove dubbled fixtures
* increase test coverage
* Update README.md (#185)
update badges
* S allius/issue186 (#187)
* Parse more values in Server Mode
Fixes#186
* read OUTPUT_COEFFICIENT and MAC_ADDR in SrvMode
* fix unit test
* increase test coverage
* S allius/issue186 (#188)
* increase test coverage
* update changelog
* add dokumentation
* change default config
* Update README.md (#189)
Config file is now foldable
* Sonar qube 6 (#174)
* test class ModbusConn
* Sonar qube 3 (#178)
* add more unit tests
* GEN3: don't crash on overwritten msg in the receive buffer
* improve test coverage und reduce test delays
* reduce cognitive complexity
* use random IP adresses for unit tests
* Docker: The description ist missing (#171)
Fixes#167
* S allius/issue167 (#172)
* cleanup
* Sonar qube 6 (#174)
* test class ModbusConn
* 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
* S allius/issue102 (#103)
* hotfix: don't send two MODBUS commands together
* Update README.md
Exchange logger fw version with the real inverter fw version in the compatibility table
* Update python-app.yml
run also on pushes to issue branches
fix name for issues branches
* S allius/issue104 (#105)
* Update README.md
Exchange logger fw version with the real inverter fw version in the compatibility table
* Update python-app.yml
run also on pushes to issue branches
fix name for issues branches
* fix forwarding of MODBUS responses
* fix unit tests
* update changelog