Hi everyone,
I've just released a custom integration to control Fermob Bluetooth lamps (Hoopik GL1200) directly from Home Assistant — no Fermob cloud account, no hub, no middleman.
How it works
The integration communicates directly over BLE using the Linkio protocol, reverse-engineered from the official Fermob app. Pairing happens once (~4 s), and subsequent reconnects are fast (~1 s).
Features
- Local BLE control — fully offline
- Auto-discovery via HA's native Bluetooth integration
- Brightness control (full dimming support)
- Physical button sync while the BLE connection is active
- Clean unpair service (equivalent to "Forget" in the Fermob app)
- Works with ESPHome Bluetooth proxies if your HA server has no built-in BLE
Installation via HACS
Add as a custom repository in HACS: https://github.com/edouardrosset/ha-fermob
Or manually copy the custom_components/fermob/ folder into your HA config.
Compatibility
Tested on the Hoopik GL1200. Other Fermob lamps using the Linkio BLE protocol (advertisement UUID 41C13060-6DEF-11E5-BCDE-0002A5D5C51B) may work — feedback welcome.
Feedback
This is a v0.1.0 — bug reports and PRs are very welcome on GitHub. If you have a different Fermob model and want to help expand support, open an issue with your debug log.
→ GitHub - edouardrosset/ha-fermob: Home Assistant integration for Fermob Bluetooth lamps (Hoopik GL1200) · GitHub
Cheers, Edouard
1 Like
I was able to use your integration to find a Fermob Lamp and it added the Lamp into HA right out of the gate, awesome! Turns out the MOOON! is tunable-white, while the integration only sends the Hoopik’s dimmable-white command; the two share the whole Linkio handshake and command header and differ only in the payload body (dimmable = one level byte, tunable = cold_white+warm_white). Wrote up the root cause and a tested fix — issue #1 and PR #2 (Add MOOON! tunable-white support (colour temperature) by fjcompiled · Pull Request #2 · edouardrosset/ha-fermob · GitHub). Colour temperature (3000–6000 K) + brightness both work now, and the Hoopik path is byte-for-byte unchanged. I’m having the Fermob Mooon Floor Lamp working in my HA thanks to your integration:
It would be interesting to know whether the Mooon Desk lamps would also work with that. However I’m not able to test/own these devices. One thing the App JS and android APK reverse engineer exercise showed, was potential support for other lamps as well:
Device-class table (from the app JS)
manufacturer_id = 7 (Fermob). led_mode = LEDS_MODE_COLOR = 1 for both families.
| model_id |
product |
module_type |
LED family |
| 3 |
Hoopik L1200 |
401 |
dimmable white |
| 0,1,5,6,7,11 |
MOOON (H134/H63/Ø15/3ר15/Ø25/1ר15) |
404 |
tunable white |
| 2 |
Inoui |
404 |
tunable white |
| 8 |
Hoopik H24 |
404 |
tunable white |
| 9,10 |
Aplo Premium / Moliare |
404 |
tunable white |
Would need confirmation/participation/testing from someone owning one of those lamps.
@ edouardrosset : Leaving you here with the review of my PR mentioned above, it should not temper with your Hoopik Lamp whatsoever and it’s working on my HA with this.
Cheers, FJ
@fjcompiled, thank you for this, genuinely great work.
Quick status update: I’ve reviewed PR #2 and requested one small change before merging. Testing your build on my own Hoopik surfaced an edge case, the name-based DW/TW fallback landed on the wrong side for my specific config entry name. Nothing wrong with your root-cause analysis, just a defaulting choice I’d rather flip to protect existing Hoopik installs. Left a suggested one-line fix on the PR, should be quick to apply.
If anyone here owns an Inoui, Hoopik H24, or Aplo Premium/Moliare (per FJ’s table above), testing reports would be very welcome before I mark those as supported. I’ll make my best to collect also these hardware on my side.
Thanks again !