Skip to main content

Async HelvarNet communication and control library.

Project description

aiohelvar

Asynchronous Python library to interact with Helvar Routers.

This library was originally written to support the (work in progress) Helvar Home Assistant integration.

Features:

  • Manages the async TCP comms well, keeps the connection alive and listens to broadcast messages
  • Decodes the HelvarNet messages and translates things into Python objects that can easily be further translated into Home Assistant objects
  • Discovers and retrieves Devices, Groups & Scenes and and all their properties, state and values.
  • Keeps track of device states as scenes and devices change based on notifications from the router.
  • Calls the more useful commands to control or read status from the above.

Very much a work in progress. Known TODOS:

  • Cluster support - we assume cluster 0 at the moment
  • Sensor support
  • Better test coverage

(Some of the) Known limitations

Lack of unique device IDs

I can't find a way to grab a unique ID for devices on the various Router busses.

The DALI standard requires every device have a GTIN and a unique serial number. These appear in Helvar's router management software, but are not available on the 3rd party APIs. I've tried probing for undocumented commands with no luck.

For now, I'm using the workgroup name + the helvar bus address as a unique address. This is not unique per physical device - it is, however, unique at any point in time.

Open to better suggestions!

Routers don't notify changes to individual devices.

We receive notifications when group scenes change, and since we know device levels for every scene, we can update devices levels without polling devices.

However, we don't get notified when individual devices change their load. This shouldn't be an issue for most setups, as Helvar is scene oriented, and almost every happens that way. If you're having trouble here, I suggest we implement a device polling option that can be enabled.

Colour changing loads.

I don't have a router that supports these as native DALI devices. So I have no idea how they appear :)

The HelvarNET docs don't mention how it's supported.

Requests to Helvar :)

  • Please provide a command to retrieve a device's GTIN and serial number.

Disclaimer

Halvar (TM) is a registered trademark of Helvar Ltd.

This software is not officially endorsed by Helvar Ltd in any way.

The authors of this software provide no support, guarantees, or warranty for its use, features, safety, or suitability for any task. We do not recommend you use it for anything at all, and we don't accept any liability for any damages that may result from its use.

This software is licensed under the Apache License 2.0. See the LICENCE file for more details.

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

aiohelvar-0.9.2.tar.gz (21.5 kB view details)

Uploaded Source

File details

Details for the file aiohelvar-0.9.2.tar.gz.

File metadata

  • Download URL: aiohelvar-0.9.2.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for aiohelvar-0.9.2.tar.gz
Algorithm Hash digest
SHA256 2c472203db60a8e053dd038d32e41b41b3307c7bb7d7cdc182031d2af3fe6312
MD5 d21aa9de802b000908e0e7ef47a37ffc
BLAKE2b-256 2fa55ae76c37a32039da25e06a9d5e7f558a03b8559e0f1cfb484fc56105ae9c

See more details on using hashes here.

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