SkillAgentSearch skills...

Elkbledom

Home Assistant custom component for LED STRIP NAMED ELK- , MELK- , LEDBLE or XROCKER

Install / Use

/learn @dave-code-ruiz/Elkbledom
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center">

ELK-BLEDOM Integration for Home Assistant

hacs_badge GitHub Release License Buy Me A Coffee

Support

If you find this integration useful, consider supporting the development:

<a href="https://www.buymeacoffee.com/davecoderuiz" target="_blank"> <img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" height="60"> </a>

Control your Bluetooth LED strips and bulbs directly from Home Assistant

InstallationSupported DevicesFeaturesConfigurationTroubleshooting

</div>

Overview

This Home Assistant integration allows you to control Bluetooth Low Energy (BLE) LED strips, bulbs, and light bars that use the ELK-BLEDOM, MELK, LEDBLE, and similar protocols. These devices are commonly sold under various brands and controlled via mobile apps like:


Supported Devices

This integration currently supports the following device models:

<table> <tr> <td width="50%">

ELK Family

  • ELK-BLEDOM
  • ELK-BLEDOB
  • ELK-BLEDDM
  • ELK-BLE
  • ELK-BTC
  • ELK-BULB
  • ELK-BULB2
  • ELK-LAMPL
  • MELK
  • MELK-OA10
  • MELK-OC10
  • MELK-OF10
  • MELK-OG10
  • MELK-OA21
  • LEDBLE
  • LED-
  • JACKYLED
  • XROCKER
  • DMRRBA-007
</td> </tr> </table>

Note: These devices use specific Bluetooth UUIDs:

  • Write UUID: 0000fff3-... or 0000ffe1-...
  • Read UUID: 0000fff4-... or 0000ffe2-...

Where to Buy


Installation

Method 1: HACS (Recommended)

  1. Open HACS in your Home Assistant
  2. Go to Integrations
  3. Search for "elkbledom" in HACS
  4. Click Download
  5. Restart Home Assistant

Method 2: Manual Installation

  1. Download the latest release from GitHub
  2. Extract and copy the custom_components/elkbledom folder to your Home Assistant config/custom_components/ directory
  3. Restart Home Assistant

Dependencies

System Requirements

This integration requires Bluetooth support on your Home Assistant installation. The integration uses:

  • Home Assistant Bluetooth integration (built-in, enabled by default in recent versions)
  • Python BLE libraries (automatically installed)

Optional: Manual Bluetooth Tools

If you want to manually test or troubleshoot Bluetooth connections, you can install gattool:

Debian/Ubuntu/Raspberry Pi OS:

sudo apt-get update
sudo apt-get install bluez bluez-tools

Fedora:

sudo dnf install bluez-deprecated

Arch Linux:

paru -S bluez-deprecated-tools
# or
yay -S bluez-deprecated-tools

Python Requirements

The integration automatically installs these dependencies:

bleak>=0.21.0
bleak-retry-connector>=3.1.0
home-assistant-bluetooth>=1.10.0

For development or manual installation, you can install them with:

pip install -r requirements.txt

Check Device Compatibility

Quick Compatibility Check

Your device is likely compatible if:

  • Device name starts with: ELK-BLE, MELK, LEDBLE, or XROCKER
  • Controlled by apps: duoCo Strip, Lotus Lantern, Lotus Lamp X, or Happy Lighting
  • Has Bluetooth Low Energy (BLE) connectivity

Advanced Compatibility Check with gattool

If you want to verify compatibility manually, use gattool:

gatttool -I

Then connect to your device (replace XX:XX:XX:XX:XX:XX with your device's MAC address):

[LE]> connect XX:XX:XX:XX:XX:XX
Attempting to connect to XX:XX:XX:XX:XX:XX
Connection successful
[XX:XX:XX:XX:XX:XX][LE]> primary
attr handle: 0x0001, end grp handle: 0x0003 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0004, end grp handle: 0x0009 uuid: 0000fff0-0000-1000-8000-00805f9b34fb

[XX:XX:XX:XX:XX:XX][LE]> characteristics
handle: 0x0002, char properties: 0x12, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
handle: 0x0005, char properties: 0x10, char value handle: 0x0006, uuid: 0000fff4-0000-1000-8000-00805f9b34fb
handle: 0x0008, char properties: 0x06, char value handle: 0x0009, uuid: 0000fff3-0000-1000-8000-00805f9b34fb

Check the UUIDs:

| UUID Pattern | Compatibility | Repository | |--------------|---------------|------------| | 0000fff3-... or 0000ffe1-... | Compatible | This repository | | 0000ff01-... | Use different integration | lednetwf_ble | | 0000ffd5-..., 0000ffd9-..., etc. | Use different integration | led_ble |

Using BTScan for Unsupported Devices

If your device isn't supported yet, you can help add support:

git clone https://github.com/dave-code-ruiz/elkbledom
cd elkbledom
pip install -r requirements.txt
python3 BTScan.py

This will scan for BLE devices and create a JSON file with technical information. Then:

  1. Create a new issue on GitHub
  2. Attach the generated JSON file
  3. Include device name, brand, and purchase link if available

For more advanced users, check out our BLE Sniffing Guide to help reverse-engineer the protocol.


Quick Start Guide

Step 1: Enable Bluetooth

Ensure Bluetooth is enabled on your Home Assistant device:

  1. Go to SettingsSystemHardware
  2. Verify Bluetooth is detected
  3. If not, check your hardware supports Bluetooth or add a USB Bluetooth adapter

Step 2: Install Integration

Follow the Installation instructions above.

Step 3: Add Your Device

  1. Go to SettingsDevices & ServicesIntegrations
  2. Click + Add Integration
  3. Search for "elkbledom"
  4. Select your device from the discovered list
  5. Watch your light toggle to confirm connection
  6. Click Submit

Step 4: Control Your Lights

Your LED device is now available as a light entity in Home Assistant!


Troubleshooting

Common Issues

1. Device Not Discovered

Problem: Your LED device doesn't appear in the discovered devices list.

Solutions:

  • Ensure the device is powered on and within Bluetooth range (~10 meters)
  • Disconnect the device from any mobile app
  • Restart the Bluetooth service in Home Assistant
  • Check if your device name starts with ELK-BLE, MELK, LEDBLE, or similar
  • Manually scan for BLE devices using bluetoothctl or the BTScan.py script

2. Connection Failed / Out of Slots Error

Problem:

BleakOutOfConnectionSlotsError: Failed to connect after 9 attempt(s): 
No backend with an available connection slot that can reach address

Solutions:

  • Only ONE device can connect to the LED strip at a time
  • Close the mobile app completely (force stop on Android)
  • Disconnect from gatttool if you used it for testing
  • Wait 30 seconds and try again
  • Power cycle the LED strip

3. MELK Devices - Initialization Required

Problem: MELK devices don't respond to commands after setup.

Solution: MELK devices require initialization commands. Send these via gatttool (replace MAC address):

sudo gatttool -b XX:XX:XX:XX:XX:XX --char-write-req -a 0x0009 -n 7e0783
sudo gatttool -b XX:XX:XX:XX:XX:XX --char-write-req -a 0x0009 -n 7e0404

After sending these commands:

  1. Restart the LED strip (power off/on)
  2. Reload the integration in Home Assistant
  3. The device should now work normally

See Issue #11 for more details.

4. State Not Updating

Problem: Changes made via IR remote or mobile app don't reflect in Home Assistant.

Explanation: This is a known limitation. The integration doesn't support live state polling.

Workaround:

  • Control the lights exclusively through Home Assistant
  • Use HA automations instead of physical remotes

5. Interference with TV Remote or Other Devices

Problem: LED strip changes randomly when using TV remote or other IR devices.

Explanation: Some cheap LED controllers respond to generic IR signals.

Solution:

  • Block the IR receiver on the LED controller (small piece of tape)
  • Control exclusively via Bluetooth/Home Assistant
  • Replace the controller with a better quality one

6. Slow Response / Disconnects

Problem: Lights are slow to respond or frequently disconnect.

Solutions:

  • Reduce the disconnect delay in configuration (try 60 seconds)
  • Move the Home Assistant device closer to the LED strip
  • Check for Bluetooth interference (WiFi routers, microwaves, etc.)
  • Use a USB Bluetooth adapter with better range
  • Set disconnect delay to 0 (never disc
View on GitHub
GitHub Stars176
CategoryDevelopment
Updated6h ago
Forks45

Languages

Python

Security Score

100/100

Audited on Apr 7, 2026

No findings