Skip to content

pledou/enocean

 
 

Repository files navigation

Python EnOcean Extended

PyPI version License: MIT Python Version

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.

About

Python library for EnOcean serial protocol

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 100.0%