-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Extend the coverage of features in use #5444
Description
Is your feature request related to a problem? Please describe.
Currently, the WLED usage telemetry only reports if the 2D feature (matrix mode) is enabled. This provides a narrow view of real-world setups and leaves us blind to broader user configuration patterns (e.g. are people using relays, usermods, Hue, IR, ESP-NOW, or certain types of LED buses?).
Describe the solution you'd like
Extend usage reporting to include a wider set of configuration fields. The telemetry should not report user actions, runtime metrics, or sensitive information—only static or rarely-changing configuration that can help guide development. Telemetry should use boolean and human-readable string values, not bitmasks or raw IDs, to avoid any need for server-side mapping or interpretation.
Proposed fields to include (non-exhaustive):
- Bus types in use (e.g. "digital", "pwm", "network")
- List of enabled usermods by canonical name (as seen in config keys)
- Hardware integrations:
- Hue bridge enabled
- MQTT enabled
- Alexa enabled
- Relay output configured
- IR remote type (as mapped string, e.g. "24-key")
- ESP-NOW enabled (base and per-remote count)
- E1.31 receive/send
- Realtime/Hyperion UDP receive
- NTP/time enabled
- I²C/SPI/ethernet configured
- Number of physical buttons
- Key matrix and multi-bus attributes (isMatrix, matrixWidth/Height, bus count)
- Feature flags as booleans (autoSegments, nightlightEnabled, CCT/whitebalance, gamma correction, etc)
- All fields are reported as boolean, string, or number (never as bitmask or raw ID)
Describe alternatives you've considered
- Keeping only raw 2D/matrix telemetry (insufficient for project planning)
- Reporting runtime, user-action, or privacy-sensitive metrics (explicitly out-of-scope)
Additional context
The specific config values and their extraction logic have been carefully mapped to existing /json/info and /json/cfg API structures. See the accompanying design proposal for the precise field list, type mappings, and JS snippets for extraction. This approach minimizes firmware changes, leverages existing JSON output, and adheres to user privacy by explicit exclusion of live/actionable/personal data.