Python module to communicate with WKS EKO Circle inverters.
$ python -m pip install 'git+https://github.com/BoboTiG/python-wks-com.git@main'
When installing the module, the wks-read
program is made available.
You can use it to send commands to inverters, and see what data you can get from.
The usage is as follow:
$ wks-read [--port SERIAL_PORT] [--debug] COMMAND_OR_ALIAS [COMMAND_OR_ALIAS...]
As an example, here is how to retrieve the inverter serial number:
$ wks-read QID
# The same command with an alias:
$ wks-read serial-no
The output will be something like that:
$ wks-read serial-no
"96332309100452"
When enabling debug logs, it will likely show:
$ wks-read --debug serial-no
DEBUG:wks_com.inverter:/dev/ttyUSB0 > SEND 'QIDÖê\r'
DEBUG:wks_com.inverter:/dev/ttyUSB0 > WRITTEN 6 chars (OK)
DEBUG:wks_com.inverter:/dev/ttyUSB0 < RAW b'(96332309100452?\xf3\r'
DEBUG:wks_com.inverter:/dev/ttyUSB0 < DECODED '96332309100452'
"96332309100452"
The default port is /dev/ttyUSB0
, you can change that:
$ wks-read --port /dev/ttyAMA0 serial-no
"96332309100452"
You can send any commands as defined in the official documentation, and even unknown commands.
There are also aliases you could use:
daily-load
for theQLD
command (it will automatically fill the date using the current time);daily-pv
for theQED
command (it will automatically fill the date using the current time);metrics
for theQPGS0
command;monthly-load
for theQLM
command (it will automatically fill the date using the current time);monthly-pv
for theQEM
command (it will automatically fill the date using the current time);ratings
for theQPIRI
command;serial-no
for theQID
command;status
for theQPIGS
command;time
for theQT
command;total-load
for theQLT
command;total-pv
for theQET
command;warnings
for theQPIWS
command;yearly-load
for theQLY
command (it will automatically fill the date using the current time);yearly-pv
for theQEY
command (it will automatically fill the date using the current time);
When the inverter does not understand a command, it will respond with NAK
.
Setup a virtual environment:
$ python -m venv venv
$ . venv/bin/activate
Install, or update, dependencies:
$ python -m pip install -U pip
$ python -m pip install -e '.[dev]'
Run tests:
$ python -Wd -m pytest --doctest-modules src
Run linters, and quality checkers:
$ ./checks.sh