Skip to main content

Communicate with your inverter (WKS EKO Circle).

Project description

Python Inverter COM

PyPI Version PyPI Status PyPI Python Versions Tests Github License

Python module to communicate with WKS EKO Circle inverters.

Installation

$ python -m pip install -U wks-com

Module

You can use the module directly from your code:

from wks_com import constants
from wks_com.inverter import Inverter


# Init the inverter (default port is /dev/ttyUSB0, several optional keyword-arguments are available)
# Example: inverter = Inverter("/dev/ttyAMA0", timeout=5.0)
inverter = Inverter()

# Send a command to the inverter
response = inverter.send("QID")

# The same command via an alias
response = inverter.send("serial-no")

# The same command using a constant
response = inverter.send(constants.CMD_SERIAL_NO)

Program

The module comes with the wks-read program. You can use it to send commands to inverters, and see what data you can get from.

The usage is as follows:

$ 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
"96332309100452"

# The same command via an alias
$ 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"

Commands and Aliases

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 the QLD command (it will automatically fill the date using the current time);
  • daily-pv for the QED command (it will automatically fill the date using the current time);
  • metrics for the QPGS0 command;
  • monthly-load for the QLM command (it will automatically fill the date using the current time);
  • monthly-pv for the QEM command (it will automatically fill the date using the current time);
  • ratings for the QPIRI command;
  • serial-no for the QID command;
  • status for the QPIGS command;
  • time for the QT command;
  • total-load for the QLT command;
  • total-pv for the QET command;
  • warnings for the QPIWS command;
  • yearly-load for the QLY command (it will automatically fill the date using the current time);
  • yearly-pv for the QEY command (it will automatically fill the date using the current time);

When the inverter does not understand a command, it will respond with NAK.

Development

Set up 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wks_com-1.2.1.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

wks_com-1.2.1-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file wks_com-1.2.1.tar.gz.

File metadata

  • Download URL: wks_com-1.2.1.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for wks_com-1.2.1.tar.gz
Algorithm Hash digest
SHA256 34739d0d42745c2683f16a4edc067c1ca0cdaa687bc1345586c87bfa1be87725
MD5 ec2499d0b75bad302698d0259476da5e
BLAKE2b-256 dfbcfbfaabb3622837bc8c9a4f11cbcc219405d5ae5f5c4d4386d677632a2632

See more details on using hashes here.

Provenance

The following attestation bundles were made for wks_com-1.2.1.tar.gz:

Publisher: release.yml on BoboTiG/python-wks-com

Attestations:

File details

Details for the file wks_com-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: wks_com-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for wks_com-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7b4f19e8e390196baaacfcd7d552aa9abb8ff75fddb1c460bd919499a29e275c
MD5 4027045e2a716c6ddfec8570a3461572
BLAKE2b-256 f01ecf25c0ff24b722a4c0e6c3ff61c7c0716ea9f6b62a11d5a3210da4d31790

See more details on using hashes here.

Provenance

The following attestation bundles were made for wks_com-1.2.1-py3-none-any.whl:

Publisher: release.yml on BoboTiG/python-wks-com

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page