Skip to main content

python-dali — lighting control interface

DALI (“Digital Addressable Lighting Interface”) defines how lighting control gear (eg. fluorescent ballasts, LED dimmers) and input devices (push buttons, motion detectors, etc.) should interoperate. It is standardised in IEC 62386.

IEC 62386 contains several parts. Part 101 contains general requirements for all system components, part 102 covers general requirements for control gear, and part 103 describes general requirements for control devices. Parts 2xx extend part 102 with lamp-specific extensions and parts 3xx extend part 103 with input device specific extensions.

This library has been written with reference to the following documents:

  • IEC 62386-101:2014 (general requirements for system components)

  • IEC 62386-102:2014 (general requirements for control gear)

  • IEC 62386-103:2014 (general requirements for control devices)

  • IEC 62386-201:2009 (fluorescent lamps)

  • IEC 62386-202:2022 (self-contained emergency lighting)

  • IEC 62386-205:2009 (supply voltage controller for incandescent lamps)

  • IEC 62386-206:2009 (conversion from digital signal into DC voltage)

  • IEC 62386-207:2009 (LED modules)

  • IEC 62386-209:2012 (colour control)

  • IEC 62386-301:2017 (particular requirements for push button input devices)

  • IEC 62386-303:2017 (particular requirements for occupancy sensor input devices)

  • IEC 62386-306:2023 (particular requirements for general purpose input devices)

  • DiiA Guidelines Clarifications & Recommendations for IEC 62386 1.12, June 2026

I do not have copies of the other parts of the standard; they are fairly expensive to obtain. The library is designed to be extensible; adding support for the other parts ought to be easy and self-contained.

The dali.memory module supports the extended memory bank specifications created and maintained by the Digital Illumination Interface Alliance:

  • DiiA DALI Part 251 — Memory Bank 1 Extension

  • DiiA DALI Part 252 — Energy Reporting

  • DiiA DALI Part 253 — Diagnostics & Maintenance

Python versions supported

This library currently requires Python version 3.10 or later.

Stability

Some of the code in this project is experimental and its API is subject to change. Modules with stable APIs are noted below.

Library structure

  • dali

    • address - Device addressing; stable for gear, not stable for devices

    • command - Command registry, interface to command decoding; stable

    • device - DALI control devices as defined in IEC 62386; not stable

      • general - Commands and events from part 103

      • helpers - Useful functions and classes for working with DALI control devices

      • occupancy - Commands from part 303

      • pushbutton - Commands from part 301

      • sequences - Packaged sequences for working with DALI control devices

    • driver - Objects to communicate with physical DALI gateways or services; not stable

      • base - General driver contracts

      • hasseb - Driver for Hasseb DALI Master

      • tridonic - Driver for Tridonic DALI USB

      • daliserver - Driver for https://github.com/onitake/daliserver (needs to be adopted to dali.driver.base API)

      • hid - asyncio-based drivers for Tridonic DALI USB and hasseb DALI Master

      • serial - asyncio-based driver for Lunatone LUBA RS232 interfaces

      • atxled - Driver for ATX LED SERIAL DALI HAT

    • exceptions - DALI related exceptions

    • frame - Forward and backward frames; stable

    • gear - DALI control gear as defined in IEC 62386; stable

      • colour - Commands from part 209 (Device Type 8)

      • emergency - Commands from part 202

      • general - Commands from part 102

      • incandescent - Commands from part 205

      • led - Commands from part 207

    • memory - access to memory banks; not stable

    • sequences - packaged sequences of commands; stable

Contributors

  • Stephen Early (Author)

  • Robert Niederreiter

  • Diogo Gomes

  • Caiwan

  • Boldie

  • Martijn Hemeryck

  • Hans Baumgartner

  • Ferdinand Keil

  • Sean Lanigan, Wallace Building Systems Pty Ltd

  • Markus Becker

  • Jan Kundrát

  • Olivier Pieters

  • David Russell

  • Nikolay Korotkiy

Metadata

Release files for python-dali 0.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-dali 0.16
File Size Uploaded Provenance Actions
python_dali-0.16.tar.gz 153.7 kB With provenance Details for python_dali-0.16.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for python-dali 0.16
File Interpreter ABI Platform Actions
python_dali-0.16-py3-none-any.whl Python 3 none any Details for python_dali-0.16-py3-none-any.whl

Total release size: 329.4 kB

Release files / python_dali-0.16.tar.gz

Download URL python_dali-0.16.tar.gz
Size 153.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1529a35d5320cf8111d6967187556070d92ca2f3a5eb7332b5c48d61a7483f8e
BLAKE2b-256 checksum
How to use checksums
d67b8119099a6a588b35b53c5134d6f36c021e7116e2a8d2fa0e7cbf0d29d7f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / python_dali-0.16-py3-none-any.whl

Download URL python_dali-0.16-py3-none-any.whl
Size 175.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a0ed1da3c7b841adf88529667d3e5456309730cfe88ad28f0346b0a8ad1d6575
BLAKE2b-256 checksum
How to use checksums
ef0c66fe096371c31fd2fee5283fec40f0cbc01bc8c1d40ac2cd9f4102191af4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for python-dali 0.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for python_dali-0.16.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page