Case study
dyson-lamp-ble: reconstructing local control of a Dyson lamp
dyson-lamp-ble reconstructs local control of a Dyson BLE lamp from MyDyson Android app analysis and device observations. Its Python library and CLI obtain an account-issued long-term key, perform the BLE session handshake and send power or synchronized-mode commands. The protocol notes describe GATT characteristics, HKDF-SHA256 key derivation and message framing.
- Targets
- App · Protocol
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
- Evidence class
- C2 code & docs, no demo or download
- Stars
- 0
- Last commit
- 2026-10-24
- Language
- Python
- License (GitHub)
- MIT
GitHub data as of 2026-11-10
Evidence
- Observed
- Code and documentation observed; no download method or demo found.
- Checked
- 2026-11-08
Requirements & limits
- Prerequisites: Python 3.11 or later and the ble extra are required for local control.
- Prerequisites: An owned Dyson BLE lamp and an account-issued device key are required; fetching the key uses the cloud extra and account access.
- Limits: Colour-temperature and brightness mappings are currently raw 16-bit values.
- License: MIT licence.
Cite
BibTeX
@misc{dyson-lamp-ble-case,
title = {{dyson-lamp-ble: reconstructing local control of a Dyson lamp}},
howpublished = {\url{https://github.com/bikenthusiast/dyson-lamp-ble}},
url = {https://github.com/bikenthusiast/dyson-lamp-ble},
urldate = {2026-11-06},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/dyson-lamp-ble-case/}}
}Plain text
dyson-lamp-ble: reconstructing local control of a Dyson lamp. https://github.com/bikenthusiast/dyson-lamp-ble (accessed 2026-11-06). Awesome REA entry: https://awesomerea.org/resources/dyson-lamp-ble-case/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- docs/REVERSE_ENGINEERING.md GitHub · bikenthusiast/dyson-lamp-ble · Revision bd048fa
- README.md GitHub · bikenthusiast/dyson-lamp-ble · Revision bd048fa
- docs/PROTOCOL.md GitHub · bikenthusiast/dyson-lamp-ble · Revision bd048fa
More in Apps
- MiFit-Hack-API: reconstructing Mi Fit account and fitness requests · Case study
- Foreca S60: reconstructing a legacy weather service · Case study
- XY Remote: reconstructing XinYi amplifier BLE control · Case study
- RideLink: reconstructing TVS SmartXonnect scooter communication · Case study
- lumalou: reconstructing Fisher-Price Lumalou BLE control · Case study
- Scarlett MixControl: rebuilding control of first-generation Scarlett interfaces · Case study