devolo-plc-api
devolo PLC devices in Python
What it is and what it does
devolo-plc-api is a Python library that wraps the devolo PLC (powerline communication) device API, enabling programmatic control and monitoring of devolo Magic and Repeater devices over a network. It uses protobuf for device communication and provides both synchronous and asynchronous interfaces for network operations.
The package handles device discovery, connection management, and communication with supported devolo devices including Magic 2 WiFi, Magic 1 LAN, and various Repeater models. It depends on httpx for HTTP requests, zeroconf for network discovery, protobuf for message serialization, and utility libraries for address handling and retry logic. The project is actively maintained and follows semantic versioning, though it notes that firmware versions and undocumented API changes may affect compatibility.
Use it for:
- Discover and enumerate devolo PLC devices on a local network without manually entering IP addresses.
- Build home automation or network monitoring scripts that control devolo Magic or Repeater devices programmatically.
- Implement async-first applications that manage multiple devolo devices concurrently using the async_discover_network interface.
- Integrate devolo device status and configuration into a larger Python-based network management system.
- Query device capabilities and state through a protobuf-based API rather than manual HTTP calls.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a Python API to communicate with devolo PLC (powerline communication) devices over the network using protobuf-formatted messages, supporting both synchronous and asynchronous operations.
Yes, if you own devolo PLC devices and need programmatic control or monitoring. The package is actively maintained, has low install friction, and provides both sync and async interfaces. The GPL-3.0-or-later license is a constraint for proprietary use. No known vulnerabilities. Tested on Linux with Python 3.9+; compatibility with other systems is not guaranteed.
Install
devolo-plc-api on PyPI
pip
pip install devolo-plc-apiuv
uv add devolo-plc-apipoetry
poetry add devolo-plc-apiInstalling devolo-plc-api
Before you install
Low friction installation with a pure-Python wheel and six runtime dependencies. The project is actively maintained with recent commits and follows semantic versioning. Tested environment documented with specific versions.
License in practice
Licensed under GPL-3.0-or-later (copyleft). Any derivative work or distribution must be released under a compatible license; proprietary use requires careful review or relicensing.
Quickstart
pip install devolo-plc-api
from devolo_plc_api.network import discover_network
devices = discover_network()
for device in devices.values():
device.connect()
# interact with device
for device in devices.values():
device.disconnect()
Requires Python 3.9 or later. Tested on Linux; other operating systems may work but are not officially verified.
Verify before relying
- Whether the package works reliably on operating systems other than Linux despite the tested environment being Linux-specific.
- Whether firmware version differences across devolo device models significantly affect API compatibility beyond the listed supported devices.
Package facts
| License | GPL-3.0-or-later (copyleft) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — ifaddr, httpx, protobuf, segno, tenacity, zeroconf |
| Maintenance | actively maintained — 487 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 73,940/month — #14,904 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: devolo_plc_api-1.5.1-py3-none-any.whl
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
devolo-home-control-apiPython client library for the devolo Home…
copyleft · top 15,000 on PyPI
powerbot-clientPowerBot client library for synchronous…
unclear · top 15,000 on PyPI
pylogixPylogix reads and writes tag values from…
permissive · top 15,000 on PyPI
python-snap7Pure Python library for reading and writing…
permissive · top 15,000 on PyPI
flux-ledControls Magic Home and Surp Life WiFi LED…
copyleft · top 15,000 on PyPI
pydaikinPyDaikin provides a Python library and CLI for…
copyleft · top 15,000 on PyPI
aiolifxaiolifx is an asyncio-based Python library for…
permissive · top 15,000 on PyPI
python-miioPython library and CLI tool for controlling…
copyleft · top 15,000 on PyPI
pywemoDiscovers and controls Belkin WeMo smart home…
permissive · top 15,000 on PyPI
pyvesyncAsynchronous Python library to discover,…
permissive · top 15,000 on PyPI