# PyPlumIO is a native ecoNET library for Plum ecoMAX controllers.
[](https://badge.fury.io/py/PyPlumIO)
[](https://pypi.python.org/pypi/pyplumio/)
[](https://github.com/denpamusic/PyPlumIO/actions/workflows/ci.yml)
[](https://codeclimate.com/github/denpamusic/PyPlumIO/maintainability)
[](https://codeclimate.com/github/denpamusic/PyPlumIO/test_coverage)
[](https://guidelines.denpa.pro/stability#release-candidate)
[](https://github.com/astral-sh/ruff)
## Overview
This package aims to provide complete and easy to use solution for communicating with climate devices by [Plum Sp. z o.o.](https://www.plum.pl/)

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.

## Table of contents
- [Connecting](https://pyplumio.denpa.pro/connecting.html)
- [Reading](https://pyplumio.denpa.pro/reading.html)
- [Writing](https://pyplumio.denpa.pro/writing.html)
- [Callbacks](https://pyplumio.denpa.pro/callbacks.html)
- [Mixers/Thermostats](https://pyplumio.denpa.pro/mixers_thermostats.html)
- [Schedules](https://pyplumio.denpa.pro/schedules.html)
- [Protocol](https://pyplumio.denpa.pro/protocol.html)
- [Frame Structure](https://pyplumio.denpa.pro/protocol.html#frame-structure)
- [Requests and Responses](https://pyplumio.denpa.pro/protocol.html#requests-and-responses)
- [Communication](https://pyplumio.denpa.pro/protocol.html#communication)
- [Versioning](https://pyplumio.denpa.pro/protocol.html#versioning)
## Quickstart
1. To use PyPlumIO, first install it using pip:
```bash
$ pip install pyplumio
```
2. Connect to the ecoMAX controller:
```python
>>> connection = pyplumio.open_serial_connection("/dev/ttyUSB0")
>>> await connection.connect()
>>> ecomax = await connection.get("ecomax")
```
3. Print some values:
```python
>>> print(await ecomax.get("heating_temp"))
```
4. Don’t forget to close the connection:
```python
>>> await connection.close()
```
## Home Assistant Integration
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.
[](https://github.com/denpamusic/homeassistant-plum-ecomax)
## Attribution
Special thanks to [econetanalyze](https://github.com/twkrol/econetanalyze) project by twkrol for initial information about protocol.
## License
This product is distributed under MIT license.
Raw data
{
"_id": null,
"home_page": null,
"name": "PyPlumIO",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "home, automation, heating",
"author": null,
"author_email": "Denis Paavilainen <denpa@denpa.pro>",
"download_url": "https://files.pythonhosted.org/packages/17/cf/c3f2f4eb142b9eda0c013ef032af0a1218f292ae005e4a87d877c3b3df36/pyplumio-0.5.38.tar.gz",
"platform": "any",
"description": "# PyPlumIO is a native ecoNET library for Plum ecoMAX controllers.\n[](https://badge.fury.io/py/PyPlumIO)\n[](https://pypi.python.org/pypi/pyplumio/)\n[](https://github.com/denpamusic/PyPlumIO/actions/workflows/ci.yml)\n[](https://codeclimate.com/github/denpamusic/PyPlumIO/maintainability)\n[](https://codeclimate.com/github/denpamusic/PyPlumIO/test_coverage)\n[](https://guidelines.denpa.pro/stability#release-candidate)\n[](https://github.com/astral-sh/ruff)\n\n## Overview\nThis package aims to provide complete and easy to use solution for communicating with climate devices by [Plum Sp. z o.o.](https://www.plum.pl/)\n\n\n\nCurrently 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.\n\nDevices can be connected directly via RS-485 to USB adapter or through network by using RS-485 to Ethernet/WiFi converter.\n\n\n\n## Table of contents\n- [Connecting](https://pyplumio.denpa.pro/connecting.html)\n- [Reading](https://pyplumio.denpa.pro/reading.html)\n- [Writing](https://pyplumio.denpa.pro/writing.html)\n- [Callbacks](https://pyplumio.denpa.pro/callbacks.html)\n- [Mixers/Thermostats](https://pyplumio.denpa.pro/mixers_thermostats.html)\n- [Schedules](https://pyplumio.denpa.pro/schedules.html)\n- [Protocol](https://pyplumio.denpa.pro/protocol.html)\n - [Frame Structure](https://pyplumio.denpa.pro/protocol.html#frame-structure)\n - [Requests and Responses](https://pyplumio.denpa.pro/protocol.html#requests-and-responses)\n - [Communication](https://pyplumio.denpa.pro/protocol.html#communication)\n - [Versioning](https://pyplumio.denpa.pro/protocol.html#versioning)\n\n\n## Quickstart\n\n1. To use PyPlumIO, first install it using pip:\n\n```bash\n$ pip install pyplumio\n```\n\n2. Connect to the ecoMAX controller:\n\n```python\n>>> connection = pyplumio.open_serial_connection(\"/dev/ttyUSB0\")\n>>> await connection.connect()\n>>> ecomax = await connection.get(\"ecomax\")\n```\n\n3. Print some values:\n```python\n>>> print(await ecomax.get(\"heating_temp\"))\n```\n\n4. Don\u2019t forget to close the connection:\n```python\n>>> await connection.close()\n```\n\n## Home Assistant Integration\nThere is companion Home Assistant integration that is being co-developed with this package and depends on it. Click button below to check it out.\n\n[](https://github.com/denpamusic/homeassistant-plum-ecomax)\n\n## Attribution\nSpecial thanks to [econetanalyze](https://github.com/twkrol/econetanalyze) project by twkrol for initial information about protocol.\n\n## License\nThis product is distributed under MIT license.\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "PyPlumIO is a native ecoNET library for Plum ecoMAX controllers.",
"version": "0.5.38",
"project_urls": {
"Bug Tracker": "https://github.com/denpamusic/PyPlumIO/issues",
"Documentation": "https://pyplumio.denpa.pro",
"Source Code": "https://github.com/denpamusic/PyPlumIO"
},
"split_keywords": [
"home",
" automation",
" heating"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "204ab81168a7e3019b3be2b5a7c452f0651269fd6479dae1c562160ec6b0714a",
"md5": "70daeda344c5e671115c82cbf6def5b7",
"sha256": "7f468b40a5428e76543c9ec05530d176de3114340e4e1c61d07c2a8085a4f95d"
},
"downloads": -1,
"filename": "PyPlumIO-0.5.38-py3-none-any.whl",
"has_sig": false,
"md5_digest": "70daeda344c5e671115c82cbf6def5b7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 71809,
"upload_time": "2025-02-23T12:09:31",
"upload_time_iso_8601": "2025-02-23T12:09:31.160226Z",
"url": "https://files.pythonhosted.org/packages/20/4a/b81168a7e3019b3be2b5a7c452f0651269fd6479dae1c562160ec6b0714a/PyPlumIO-0.5.38-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "17cfc3f2f4eb142b9eda0c013ef032af0a1218f292ae005e4a87d877c3b3df36",
"md5": "014b332c1e7d53a651e7286ad8399c92",
"sha256": "c747645776b751422f2679687fe300cdf10aada7986c4f51a96541cf39c7bf85"
},
"downloads": -1,
"filename": "pyplumio-0.5.38.tar.gz",
"has_sig": false,
"md5_digest": "014b332c1e7d53a651e7286ad8399c92",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 265336,
"upload_time": "2025-02-23T12:09:33",
"upload_time_iso_8601": "2025-02-23T12:09:33.589694Z",
"url": "https://files.pythonhosted.org/packages/17/cf/c3f2f4eb142b9eda0c013ef032af0a1218f292ae005e4a87d877c3b3df36/pyplumio-0.5.38.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-23 12:09:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "denpamusic",
"github_project": "PyPlumIO",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "dataslots",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "pyserial-asyncio",
"specs": [
[
"==",
"0.6"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.12.2"
]
]
}
],
"lcname": "pyplumio"
}