Stefan Allius
d8aee5f789
code cleanup
2024-08-09 23:01:16 +02:00
Stefan Allius
39577b2415
disable MODBUS_POLLING for GEN§PLUS in example config
2024-08-09 22:59:47 +02:00
Stefan Allius
d891e486e7
Code coverage for SonarCloud ( #150 )
...
* cleanup code and unit tests
* add test coverage for SonarCloud
* configure SonarCloud
* update changelog
2024-08-09 17:45:53 +02:00
Stefan Allius
155b6d4e67
Make test code more clean ( #149 )
...
* cleanup
2024-08-09 00:02:01 +02:00
Stefan Allius
24ece4fece
make test code more clean ( #148 )
2024-08-08 20:27:39 +02:00
Stefan Allius
a779c90965
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
2024-08-08 19:46:27 +02:00
Stefan Allius
47f7580184
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
2024-08-04 19:43:09 +02:00
Stefan Allius
95954fa84e
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
2024-07-27 19:37:40 +02:00
Stefan Allius
dc4728122e
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
2024-07-22 23:27:17 +02:00
Stefan Allius
6f35c47254
S allius/issue125 ( #127 )
...
* fix linter warning
* move sequence diagramm to wiki
* catch asyncio.CancelledError
2024-07-15 21:45:45 +02:00
Stefan Allius
92a5fd22b8
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
2024-07-14 17:04:05 +02:00
Stefan Allius
c7a33b4a35
MODBUS: the last digit of the inverter version is a hexadecimal number ( #121 )
2024-07-10 20:28:12 +02:00
Stefan Allius
a42ba8a8c6
Dev 0.9 ( #115 )
...
* make timestamp handling stateless
* adapt tests for stateless timestamp handling
* initial version
* add more type annotations
* add more type annotations
* fix Generator annotation for ha_proxy_confs
* fix names of issue branches
* add more type annotations
* don't use depricated varn anymore
* don't mark all test as async
* fix imports
* fix solarman unit tests
- fake Mqtt class
* print image build time during proxy start
* update changelog
* fix pytest collect warning
* cleanup msg_get_time handler
* addapt unit test
* label debug images with debug
* dump droped packages
* fix warnings
* add systemtest with invalid start byte
* update changelog
* update changelog
* add exposed ports and healthcheck
* add wget for healthcheck
* add aiohttp
* use config validation for healthcheck
* add http server for healthcheck
* calculate msg prossesing time
* add healthy check methods
* fix typo
* log ConfigErr with DEBUG level
* Update async_stream.py
- check if processing time is < 5 sec
* add a close handler to release internal resources
* call modbus close hanlder on a close call
* add exception handling for forward handler
* update changelog
* isolate Modbus fix
* cleanup
* update changelog
* add heaithy handler
* log unrelease references
* add healtcheck
* complete exposed port list
* add wget for healtcheck
* add aiohttp
* use Enum class for State
* calc processing time for healthcheck
* add HTTP server for healthcheck
* cleanup
* Update CHANGELOG.md
* updat changelog
* add docstrings to state enum
* set new state State.received
* add healthy method
* log healthcheck infos with DEBUG level
* update changelog
* S allius/issue100 (#101 )
* detect dead connections
- disconnect connection on Msg receive timeout
- improve connection trace (add connection id)
* update changelog
* fix merge conflict
* fix unittests
* S allius/issue108 (#109 )
* add more data types
* adapt unittests
* improve test coverage
* fix linter warning
* update changelog
* S allius/issue102 (#110 )
* hotfix: don't send two MODBUS commands together
* fix unit tests
* remove read loop
* optional sleep between msg read and sending rsp
* wait after read 0.5s before sending a response
* add pending state
* fix state definitions
* determine the connection timeout by the conn state
* avoid sending MODBUS cmds in the inverter's reporting phase
* update changelog
* S allius/issue111 (#112 )
Synchronize regular MODBUS commands with the status of the inverter to prevent the inverter from crashing due to unexpected packets.
* inital checkin
* remove crontab entry for regular MODBUS cmds
* add timer for regular MODBUS polling
* fix Stop method call for already stopped timer
* optimize MB_START_TIMEOUT value
* cleanup
* update changelog
* fix buildx warnings
* fix timer cleanup
* fix Config.class_init()
- return error string or None
- release Schema structure after building thr config
* add quit flag to docker push
* fix timout calculation
* rename python to debugpy
* add asyncio log
* cleanup shutdown
- stop webserver on shutdown
- enable asyncio debug mode for debug versions
* update changelog
* update changelog
* fix exception in MODBUS timeout callback
* update changelog
2024-07-01 23:41:56 +02:00
Stefan Allius
a3c054d2b1
Dev 0.8 ( #106 )
...
* 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
2024-06-21 18:12:48 +02:00
Stefan Allius
ec4261ae84
Merge branch 'dev-0.8.0' into s-allius/issue77
2024-05-31 20:17:03 +02:00
Stefan Allius
685c2dc07b
fix unit tests
2024-05-31 20:10:22 +02:00
Stefan Allius
c6eecb4791
add missing testcases
2024-05-30 19:32:53 +02:00
Stefan Allius
063850c7fb
add allow and block filter for AT+ commands
2024-05-30 18:38:05 +02:00
Stefan Allius
66657888dd
add log_level support for modbus commands
2024-05-28 19:32:20 +02:00
Stefan Allius
fdf3475909
fix unit test
2024-05-27 20:56:03 +02:00
Stefan Allius
5c6f9e7414
increase test coverage to 100%
2024-05-23 19:52:55 +02:00
Stefan Allius
0fc74b0d19
improve unit test
2024-05-22 22:54:23 +02:00
Stefan Allius
98ef252bb0
don't forward invalid MODBUS responses
2024-05-20 18:51:55 +02:00
Stefan Allius
eff3e7558b
increase test coverage
2024-05-20 16:53:26 +02:00
Stefan Allius
6ef6f4cd34
cleanup
2024-05-20 00:48:23 +02:00
Stefan Allius
177706c3e6
test Modbus retries
2024-05-19 21:17:56 +02:00
Stefan Allius
23ff2bb05c
fix unit tests
2024-05-19 13:44:16 +02:00
Stefan Allius
476c5f0006
adapt unit tests
2024-05-19 12:24:35 +02:00
Stefan Allius
9c39ea27f7
fix unit tests
2024-05-18 23:10:47 +02:00
Stefan Allius
766774224b
adapt unit tests
2024-05-18 21:46:28 +02:00
Stefan Allius
6877465915
add more unit tests
2024-05-13 22:47:52 +02:00
Stefan Allius
92469456b7
fix unit tests
2024-05-12 23:11:55 +02:00
Stefan Allius
1ae7784bee
add more unit tests
2024-05-11 23:41:40 +02:00
Stefan Allius
6fcf4f47c2
add more unit tests
2024-05-11 20:53:39 +02:00
Stefan Allius
3fda08bd25
add more unit tests
2024-05-11 20:48:57 +02:00
Stefan Allius
26f108cc51
build version string in the same format as TSUN
2024-05-10 20:50:37 +02:00
Stefan Allius
b3f0fc97d7
add more unit tests
2024-05-09 23:23:33 +02:00
Stefan Allius
65973b2835
fix unit tests
2024-05-09 18:48:59 +02:00
Stefan Allius
5a0456650f
avoid sending modbus cmds in critical states
2024-05-09 14:20:57 +02:00
Stefan Allius
c4b3e1a817
Merge branch 'dev-0.8.0' of https://github.com/s-allius/tsun-gen3-proxy into dev-0.8.0
2024-05-08 23:50:18 +02:00
Stefan Allius
0ac4b1f571
add more unit tests
2024-05-08 23:50:04 +02:00
Stefan Allius
0ae6dffc6b
Update test_talent.py
2024-05-07 22:54:23 +02:00
Stefan Allius
39beb0cb44
add more modbus tests
2024-05-07 18:02:09 +02:00
Stefan Allius
f804b755a4
improve modbus trace
2024-05-06 23:18:47 +02:00
Stefan Allius
bf0f152d5a
add unit tests for modbus
2024-05-05 20:20:19 +02:00
Stefan Allius
f2c4230a49
use async_write instead of flush_send_msg()
2024-05-03 18:24:48 +02:00
Stefan Allius
1d9cbf314e
add Modbus tests
2024-05-02 23:56:42 +02:00
Stefan Allius
58c3333fcc
initial checkin
2024-05-02 23:55:59 +02:00
Stefan Allius
530687039d
Add Modbus_Command counter
2024-05-01 11:57:32 +02:00
Stefan Allius
5d0c95d6e6
fix typo
2024-05-01 11:57:02 +02:00