This package aims to provide complete and easy to use solution for communicating with climate devices by Plum Sp. z o.o.
Currently it supports reading and writing parameters of ecoMAX controllers by Plum Sp. z o.o., getting service password and sending network information to show on controller's display.
Devices can be connected directly via RS-485 to USB adapter or through network by using RS-485 to Ethernet/WiFi converter.
- To use PyPlumIO, first install it using uv or pip:
uv add pyplumio
# or
pip install pyplumio- Connect to the ecoMAX controller:
>>> connection = pyplumio.serial_for_url("/dev/ttyUSB0")
>>> await connection.connect()
>>> ecomax = await connection.get("ecomax")- Print some values:
>>> print(await ecomax.get("heating_temp"))- Don’t forget to close the connection:
>>> await connection.close()There is companion Home Assistant integration that is being co-developed with this package and depends on it. Click button below to check it out.
This project uses uv for project and dependency management, and prek for Git hooks.
Install the project and development dependencies:
uv syncRun the test suite with coverage enforcement (100% required):
uv run pytestRun linters, format checks, and cognitive complexity analysis:
uv run codespell
uv run ruff check .
uv run ruff format --check .
uv run complexipy . --max-complexity-allowed 15Run type checking with mypy:
uv run mypy pyplumio testsInstall and run Git hooks via prek:
prek install
prek run --all-filesSpecial thanks to econetanalyze project by twkrol for initial information about protocol.
This product is distributed under MIT license.

