Enhanced Python library for EnOcean protocol with dynamic EEP parsing and VentilAirSec support
Project description
Python EnOcean Extended
An enhanced Python library for reading and controlling EnOcean devices with extended device support and dynamic EEP parsing.
What's New in This Fork
This is an enhanced version of the original kipe/enocean library with:
- Dynamic EEP Parsing: Improved parsing of complex EnOcean Equipment Profiles with proper enum handling
- Extended Device Support: Additional EEP profiles including VentilAirSec ventilation units (D2-50-00, D2-50-01)
- Enhanced MSC Telegram Support: Better handling of Manufacturer-Specific Command (MSC) telegrams
- Improved Enum Values: Proper parsing of rangeitem enums with min/max values
- Better Error Handling: More robust packet parsing and error reporting
Originally started as part of Forget Me Not design challenge @ element14.
Installation
Install from PyPI:
pip install enocean-extended
Or install from source for the latest development version:
pip install git+https://github.com/pledou/enocean.git
Quick Start
After installation, you can run the example script and interact with your EnOcean devices:
import enocean.utils
from enocean.communicators.serialcommunicator import SerialCommunicator
from enocean.protocol.packet import RadioPacket
# Initialize the EnOcean dongle
communicator = SerialCommunicator('/dev/ttyUSB0')
communicator.start()
# Receive packets
for packet in communicator.receive.get(block=True, timeout=1):
if isinstance(packet, RadioPacket):
print(packet)
See the examples/ directory for more usage examples, including VentilAirSec ventilation unit control.
Supported Devices
This library supports a wide range of EnOcean Equipment Profiles (EEPs), including:
- Sensors: Temperature, humidity, illumination, occupancy, CO2, etc.
- Switches: Rocker switches, push buttons, window handles
- Actuators: Light dimmers, blinds, valves
- Ventilation: VentilAirSec units with full monitoring and control
For a complete list, see SUPPORTED_PROFILES.md.
Features
Dynamic EEP Parsing
Automatically parses complex EnOcean Equipment Profiles with proper handling of:
- Enum values with ranges
- Multi-byte values
- Manufacturer-specific commands (MSC)
- Bitfield data
VentilAirSec Support
Full support for VentilAirSec ventilation units including:
- Operating mode control
- Fan speed adjustment
- Temperature setpoints
- Boost and holiday modes
- Sensor monitoring
- Maintenance status
Development
To contribute or modify the library:
git clone https://github.com/pledou/enocean.git
cd enocean
pip install -e .[dev]
pytest
Credits
- Original Author: Kimmo Huoman (kipe/enocean)
- Enhanced Version: Pierre Leduc with dynamic EEP parsing and extended device support
License
MIT License - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file enocean_extended-1.0.0.tar.gz.
File metadata
- Download URL: enocean_extended-1.0.0.tar.gz
- Upload date:
- Size: 58.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe4cc1a4a5329cf1942e9493d9d573b26188e75836eb19f98662ffb270bab752
|
|
| MD5 |
e5662cde723f8f0f9b9e53de275b79ef
|
|
| BLAKE2b-256 |
ca4741ba885719fa86a9e47c28c2cfeacb3c7fd29cf68b039999c88d0a5687cd
|
Provenance
The following attestation bundles were made for enocean_extended-1.0.0.tar.gz:
Publisher:
publish-to-pypi.yml on pledou/enocean
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
enocean_extended-1.0.0.tar.gz -
Subject digest:
fe4cc1a4a5329cf1942e9493d9d573b26188e75836eb19f98662ffb270bab752 - Sigstore transparency entry: 940515660
- Sigstore integration time:
-
Permalink:
pledou/enocean@bd55967ee55838a38601d7d410c307deb2bd9c43 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/pledou
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@bd55967ee55838a38601d7d410c307deb2bd9c43 -
Trigger Event:
release
-
Statement type:
File details
Details for the file enocean_extended-1.0.0-py3-none-any.whl.
File metadata
- Download URL: enocean_extended-1.0.0-py3-none-any.whl
- Upload date:
- Size: 55.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f6027e217d041d53835be0d068cc7f2eae52c2e6b71018dcac31a9968f38d3c
|
|
| MD5 |
22f8a3b93c5ef709919692e979284460
|
|
| BLAKE2b-256 |
327bca271a2a5ba6da5880f69b05e0ee80ea3fffd336838158d312348374c508
|
Provenance
The following attestation bundles were made for enocean_extended-1.0.0-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on pledou/enocean
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
enocean_extended-1.0.0-py3-none-any.whl -
Subject digest:
8f6027e217d041d53835be0d068cc7f2eae52c2e6b71018dcac31a9968f38d3c - Sigstore transparency entry: 940515663
- Sigstore integration time:
-
Permalink:
pledou/enocean@bd55967ee55838a38601d7d410c307deb2bd9c43 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/pledou
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@bd55967ee55838a38601d7d410c307deb2bd9c43 -
Trigger Event:
release
-
Statement type: