Skip to main content

devolo PLC devices in Python

Project description

devolo PLC API

GitHub Workflow Status PyPI - Downloads Code Climate maintainability Coverage Status

This project implements parts of the devolo PLC devices API in Python. Communication to the devices is formatted in protobuf and the IDLs were kindly provided by devolo. Nevertheless, we might miss updates to the IDLs. If you discover a breakage, please feel free to report an issue.

System requirements

Defining the system requirements with exact versions typically is difficult. But there is a tested environment:

  • Linux
  • Python 3.8.12
  • pip 20.2.4
  • httpx 0.21.0
  • protobuf 3.17.3
  • zeroconf 0.36.8

Other versions and even other operating systems might work. Feel free to tell us about your experience. If you want to run our unit tests, you also need:

  • pytest 6.2.5
  • pytest-asyncio 0.15.1
  • pytest-httpx 0.18

Versioning

In our versioning we follow Semantic Versioning.

Installing for usage

The Python Package Index takes care for you. Just use pip.

pip install devolo-plc-api

Installing for development

First, you need to get the sources.

git clone git@github.com:2Fake/devolo_plc_api.git

Then you need to take care of the requirements.

cd devolo_plc_api
python setup.py install

If you want to run out tests, install the extra requirements and start pytest.

pip install -e .[test]
pytest

Usage

All features we currently support on device basis are shown in our examples. If you want to use the package asynchronously, please check example_async.py. If you want to use it synchronously, please check example_sync.py.

If you don't know the IP addresses of your devices, you can discover them. You will get a dictionary with the device's serial number as key. The connections to the devices will be already established, but you will have to take about disconnecting.

from devolo_plc_api.network import async_discover_network

devices = await async_discover_network()
await asyncio.gather(*[device.async_connect() for device in _devices.values()])
# Do your magic
await asyncio.gather(*[device.async_disconnect() for device in devices.values()])

Or in a synchronous setup:

from devolo_plc_api.network import discover_network

devices = discover_network()
for device in _devices.values():
        device.connect()
# Do your magic
[device.disconnect() for device in devices.values()]

Supported device

The following devolo devices were queried with at least one call to verify functionality:

  • Magic 2 WiFi next
  • Magic 2 WiFi 2-1
  • Magic 2 LAN triple
  • Magic 2 DinRail
  • Magic 2 LAN 1-1
  • Magic 1 WiFi mini
  • Magic 1 WiFi 2-1
  • Magic 1 LAN 1-1
  • dLAN 1200+ WiFi ac
  • dLAN 550+ Wifi
  • dLAN 550 WiFi

However, other devices might work, some might have a limited functionality. Also firmware version will matter. If you discover something weird, we want to know.

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

devolo_plc_api-0.9.0.tar.gz (81.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devolo_plc_api-0.9.0-py3-none-any.whl (65.1 kB view details)

Uploaded Python 3

File details

Details for the file devolo_plc_api-0.9.0.tar.gz.

File metadata

  • Download URL: devolo_plc_api-0.9.0.tar.gz
  • Upload date:
  • Size: 81.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.15

File hashes

Hashes for devolo_plc_api-0.9.0.tar.gz
Algorithm Hash digest
SHA256 0494a10e3b65efd434f59c242c308dff111bad9e7eca672ed8cba24e17c52189
MD5 f0e3f2e52fcec225fdb73d025b211d2f
BLAKE2b-256 f62a69f5838b7b3095b5173084b23a0d196d7e75f0842d4f2895e2044a628580

See more details on using hashes here.

File details

Details for the file devolo_plc_api-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: devolo_plc_api-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 65.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.15

File hashes

Hashes for devolo_plc_api-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 739f3b2de23f84ba687d03dbde29d578ce111234cf6ecb6d9e99843c25d1ec44
MD5 b1fa9e951eb0dd1b62989bae2d34a44f
BLAKE2b-256 04a417622be35f9be2cbe6059da167c4b9711721c416e13f857aaf1962390fbb

See more details on using hashes here.

Supported by

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