* set no of pv modules for MS800 GEN3PLUS inverters
* fix unit test
* increase test coverage
* change the PV module handling
- in default we set the number of modules now to
two. So with the first data from the inverter
we only register two modules. After we determine
the inverter module, the number can increase to
four and more PV modules will be registered.
With the default value of 4, we register always
4 modules and can't reduce the number of areas
when we detect that the inverter only supoorts
two PV modules
* Add two states build from the measurements
- Batterie Status calculated from the batt current
- Power Supply State calc from the out Power
* improve test coverage
* Cleanup MQTT json format for DCU batterie
- add hw and sw version
- rename total generation into total charging energy
- rename cell temperature sensors
- restructure json format
- adapt unit tests
* revert changed test packages
* set equipment model dor DCU1000 devices
* DCU1000: add temp sensor and mppt states
* DCU1000: add total generation
* add more DCU1000 registers for MODBUS polling
* improve names of batterie measurements
* add more diagnostic registers
* adapt unit tests
* move uml files into subfolder
* add sensors for batterie cell voltages
* swap On and Off for MPPT status
* split register map into multiple maps
* add base support reg mapping 0x01900000
* fix shadowed builtin
* detect reg mapping for sensor automatically
* add device and test regs for MS-3000
* add more register mappings
* fix unit tests
* add more MS-3000 registers
* build modell string for TSUN MS-3000
* add MS3000 unit test
* remove obsolete method __set_config_parms
* fix start addr of modbus scans
- in server mode the start addr must be reduced
by mb_step
* add tests for sensor_list of ms-3000 inverters
* MS-3000: add integer test register
* DCU-1000: add Out Status register
* add integer test and batterie out register
* fix Sonar Qube finding
* DCU-1000: add temp sensors
* accept DCU serial number starting with '410'
* determine sensor-list by serial number
* adapt unit test for DCU support
* send first batterie measurements to home assistant
* add test case for sensor-list==3036
* add more registers for batteries
* improve error logging (Monitoring SN)
* update the add-on repro only for one stage
* add configuration for energie storages
* add License and Readme file to the add-on
* addon: add date and time to dev and debug docker container tag
* disable duplicate code check for config.py
* cleanup unit test, remove trailing whitespaces
* update changelog
* fix example config for batteries
* cleanup config.jinja template
* fix comments
* improve help texts
* - fix pytest setup that can be startet from the rootdir
- support python venv environment
- add pytest.ini
- move common settings from .vscode/settings.json into pytest.ini
- add missing requirements
- fix import paths for pytests
* - support python venv environment
* initial version
* - add missing requirements python-dotenv
* fix import paths for pytests
* fix pytest warnings
* initial version
* report 5 slowest test durations
* add more vscode settings for python
* Add SolarmanEmu class
* Forward a device ind to establish the EMU connection
* Move SolarmanEmu class into a dedicated file
* Add cloud connection counter
* Send inverter data in emulator mode
* Improve emulator mode
- parse more values from MQTT register
- differ between inverter and logger serial no
* Add some unit tests for SolarmanEmu class
* Send seconds since last sync in data packets
* Increase test coverage
* report alarm and fault bitfield to home assistant
* initial verson of message builder for SolarmanV5
- for SolarmaV5 we build he param field for the
device and inverter message from the internal
database
- added param description to the info table
for constant values, which are not parsed and
stored in internal database
* define constants for often used format strings
* update changelog
* 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
* 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