# 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.

- Type: Case study
- Targets: App · Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-08
- Original resource: <https://github.com/bikenthusiast/dyson-lamp-ble>
- Primary source: <https://github.com/bikenthusiast/dyson-lamp-ble/blob/bd048faf64a5e07d856a1baa75bd7577bd5f404a/docs/REVERSE_ENGINEERING.md>
- Catalog page: <https://awesomerea.org/resources/dyson-lamp-ble-case/>
- Record JSON: <https://awesomerea.org/resources/dyson-lamp-ble-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/dyson-lamp-ble-case/index.md)

## 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.

## Primary sources

1. <https://github.com/bikenthusiast/dyson-lamp-ble/blob/bd048faf64a5e07d856a1baa75bd7577bd5f404a/docs/REVERSE_ENGINEERING.md>
2. <https://github.com/bikenthusiast/dyson-lamp-ble/blob/bd048faf64a5e07d856a1baa75bd7577bd5f404a/README.md>
3. <https://github.com/bikenthusiast/dyson-lamp-ble/blob/bd048faf64a5e07d856a1baa75bd7577bd5f404a/docs/PROTOCOL.md>

## More in Apps

- [MiFit-Hack-API: reconstructing Mi Fit account and fitness requests](https://awesomerea.org/resources/mifit-hack-api-case/index.md) · Case study
- [Foreca S60: reconstructing a legacy weather service](https://awesomerea.org/resources/symbian-foreca-weather-server-case/index.md) · Case study
- [XY Remote: reconstructing XinYi amplifier BLE control](https://awesomerea.org/resources/xy-remote-sinilink-ble-case/index.md) · Case study
- [RideLink: reconstructing TVS SmartXonnect scooter communication](https://awesomerea.org/resources/ridelink-tvs-smartxonnect-case/index.md) · Case study
- [lumalou: reconstructing Fisher-Price Lumalou BLE control](https://awesomerea.org/resources/lumalou-case/index.md) · Case study
- [Scarlett MixControl: rebuilding control of first-generation Scarlett interfaces](https://awesomerea.org/resources/scarlett-mixcontrol-1stgen-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
