An enhanced Python library for reading and controlling EnOcean devices with extended device support and dynamic EEP parsing.
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.
Install from PyPI:
pip install enocean-extendedOr install from source for the latest development version:
pip install git+https://github.com/pledou/enocean.gitAfter 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.
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.
Automatically parses complex EnOcean Equipment Profiles with proper handling of:
- Enum values with ranges
- Multi-byte values
- Manufacturer-specific commands (MSC)
- Bitfield data
Full support for VentilAirSec ventilation units including:
- Operating mode control
- Fan speed adjustment
- Temperature setpoints
- Boost and holiday modes
- Sensor monitoring
- Maintenance status
To contribute or modify the library:
git clone https://github.com/pledou/enocean.git
cd enocean
pip install -e .[dev]
pytest- Original Author: Kimmo Huoman (kipe/enocean)
- Enhanced Version: Pierre Leduc with dynamic EEP parsing and extended device support
MIT License - see LICENSE file for details.