Commit Graph

328 Commits

Author SHA1 Message Date
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
a62864218d update for version 0.8.0 2024-06-07 19:48:41 +02:00
Stefan Allius
0b2631c162 beautify some traces 2024-06-07 19:27:36 +02:00
Stefan Allius
c59bd16664 change log level for some traces 2024-06-05 22:01:48 +02:00
Stefan Allius
039a021cda cleanup trace output 2024-06-04 21:55:57 +02:00
Stefan Allius
6e1ed5d1e7 check the docker-compose.yaml file as last step 2024-06-03 20:59:21 +02:00
Stefan Allius
8204cae2b1 improve logging output 2024-06-03 19:52:37 +02:00
Stefan Allius
56f36e9f3f build release candidate as paket 2024-05-31 23:09:33 +02:00
Stefan Allius
5b60d5dae1 cleanup 2024-05-31 23:09:14 +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
d27fe09006 reduce size of trace file
- trace heartbeat and regular modbus pakets
  only with log level DBEUG
- don't forwar akc pakets from tsun to inverter
  since we answered in before
2024-05-31 20:03:21 +02:00
Stefan Allius
e850a8c534 set tracer log level by environment value 2024-05-31 20:02:21 +02:00
Stefan Allius
c6eecb4791 add missing testcases 2024-05-30 19:32:53 +02:00
Stefan Allius
87d59d046f add AT_COMMAND_BLOCKED counter 2024-05-30 19:32:14 +02:00
Stefan Allius
063850c7fb add allow and block filter for AT+ commands 2024-05-30 18:38:05 +02:00
Stefan Allius
3980ac013b catch all OSError errors in the read loop 2024-05-28 21:55:42 +02:00
Stefan Allius
66657888dd add log_level support for modbus commands 2024-05-28 19:32:20 +02:00
Stefan Allius
ab9e798152 add typing 2024-05-28 19:30:58 +02:00
Stefan Allius
fdf3475909 fix unit test 2024-05-27 20:56:03 +02:00
Stefan Allius
edc2c12b5b Send MQTT topic for responses to AT+ commands 2024-05-27 20:52:06 +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
87cc3fb205 fix frong MQTT not found logs 2024-05-22 22:53:52 +02:00
Stefan Allius
8fc5eb3670 log MQTT to data topic 2024-05-22 22:53:04 +02:00
Stefan Allius
55fc834a1e reduce default loggings 2024-05-22 22:52:02 +02:00
Stefan Allius
da2388941e allow only one MODBUS retry
- More than one retry usually makes no sense, as
  random errors are usually corrected. If the
  first retry also fails, the chance that a second
  or third retry will be successful is very small
2024-05-21 19:37:55 +02:00
Stefan Allius
9e38cb93ea send StatusReq additionally every 30 minutes 2024-05-21 18:59:30 +02:00
Stefan Allius
de1c48fa62 add keyword for timeout to argument list 2024-05-21 18:58:10 +02:00
Stefan Allius
e432441134 don't log Events as Infos 2024-05-21 18:56:52 +02:00
Stefan Allius
98ef252bb0 don't forward invalid MODBUS responses 2024-05-20 18:51:55 +02:00
Stefan Allius
3ac48dad1f cleanup 2024-05-20 18:33:01 +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
9ac1f6f46d add Modbus retrasmissions 2024-05-19 21:17:16 +02:00
Stefan Allius
23ff2bb05c fix unit tests 2024-05-19 13:44:16 +02:00
Stefan Allius
c761446c11 code cleanup 2024-05-19 13:43:51 +02:00
Stefan Allius
f30aa07431 don't frwd received modbus req directly
- use always the fifoto sent valid req to the inverter
- code cleanup
2024-05-19 13:42:29 +02:00
Stefan Allius
476c5f0006 adapt unit tests 2024-05-19 12:24:35 +02:00
Stefan Allius
282a459ef0 add Modbus response forwarding 2024-05-19 12:23:58 +02:00
Stefan Allius
d25173e591 fix sending next pdu before we have parsed the last response 2024-05-18 23:11:49 +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
f4da16987f add fifo and timeout handler for modbus 2024-05-18 20:18:15 +02:00
Stefan Allius
841877305d timeout handler removed again, as it has no positive effect 2024-05-15 23:15:20 +02:00
Stefan Allius
14425da5fa improve Modbus logging 2024-05-13 22:48:44 +02:00
Stefan Allius
6877465915 add more unit tests 2024-05-13 22:47:52 +02:00
Stefan Allius
2e214b1e71 avoid sending responses to TSUN for local at commands 2024-05-13 22:46:23 +02:00