How bingete/esphome-paulmann-lights works
This is an ESPHome custom component that exposes Paulmann BLE lights as ESPHome entities. The main workflow is configuration and entity registration, BLE connection and password authentication, then periodic device reads and user-control writes; returned state updates the light and diagnostic text sensors. Device controls and system-time writes share the BLE protocol layer. The sampled C++ excerpts show connection events, authentication, polling, writes, and light-state publication; the README documents the broader device-info capability. Some protocol details and sensor publishing code were not sampled.
Main entry points: __init__.py Component Setup · paulmann_lights.cpp Connect and Authenticate · light.py Light Entity Adapter · sensor.py Info Sensors
Components 16
ESPHome Setup
- ESPHome Runtime
- Component Setup
components/paulmann_lights/__init__.py - UUIDs and Defaults
components/paulmann_lights/const.py - BLE Tracker
User Entities
- Light Entity Adapter
components/paulmann_lights/light.py - Control Numbers
components/paulmann_lights/number.py - Info Sensors
components/paulmann_lights/sensor.py - Text Sensor Alias
components/paulmann_lights/text_sensor.py - Light Output
components/paulmann_lights/paulmann_lights.cpp
BLE Protocol
- Control Dispatch
components/paulmann_lights/paulmann_lights.cpp - Connect and Authenticate
components/paulmann_lights/paulmann_lights.cpp - Polling and Reads
components/paulmann_lights/paulmann_lights.cpp - Protocol Interface
components/paulmann_lights/paulmann_lights.h - ESPHome BLE Client
Paulmann Device
- Paulmann BLE Lamp
Other components
- ESPHome User
Connections 18
- ESPHome User → Component Setup: configures
README.md - Component Setup → ESPHome Runtime: registers component
components/paulmann_lights/__init__.py - Component Setup → BLE Tracker: registers client
components/paulmann_lights/__init__.py - Component Setup → UUIDs and Defaults: uses defaults
components/paulmann_lights/__init__.py - Light Entity Adapter → Light Output: registers output
components/paulmann_lights/light.py - Control Numbers → Control Dispatch: sets controls
components/paulmann_lights/number.py - Info Sensors → Polling and Reads: registers sensors
components/paulmann_lights/sensor.py - Text Sensor Alias → Info Sensors: re-exports
components/paulmann_lights/text_sensor.py - Light Output → Control Dispatch: writes light state
components/paulmann_lights/paulmann_lights.cpp - Connect and Authenticate → ESPHome BLE Client: uses BLE client
- Polling and Reads → ESPHome BLE Client: reads characteristics
components/paulmann_lights/paulmann_lights.cpp - Control Dispatch → ESPHome BLE Client: writes characteristics
components/paulmann_lights/paulmann_lights.cpp - Connect and Authenticate → Paulmann BLE Lamp: authenticates
components/paulmann_lights/paulmann_lights.cpp - Polling and Reads → Paulmann BLE Lamp: polls device
README.md - Control Dispatch → Paulmann BLE Lamp: controls device
README.md - Light Output → Light Entity Adapter: publishes state
components/paulmann_lights/paulmann_lights.cpp - Protocol Interface → Connect and Authenticate: declares protocol
components/paulmann_lights/paulmann_lights.h - Connect and Authenticate → Protocol Interface: implements interface
components/paulmann_lights/paulmann_lights.cpp