Christmas tree bluetooth light

Hi all, I bought those BLE LED lights, which can be controlled by iDeal LED android app

LED should be WS2812B, but has bluetooth usb driver.

Was anybody successful in integrating those?

I already tried ELKBLEDOM (which is working for other led strip)

Also tried BLE LED integration
But there I only get “No devices found on the network”
image

When I tried hcitool scan scan from Raspberry 4 I was not able to find the device, but I could connect via gatttool using mac adress of lights.

hcitool lescan is failing for me with Set scan parameters failed: Operation not permitted
But using bluetoothctl scan on I can see the device .

Name of the device using above command ISP-3C57F3

At first, I would like to be able to integrate those in HA in any way, but this Bluetooth strip is invidually controlable, which would be nice to have in HA but I did not find anything yet similar to above mentioned Android app or Twinkly app.

I would appreciate any help

I bought an iDeal led strip a while ago, and couldn’t find any integration, either.
I hacked one (i.e. reversed-engineered the android app) allowing me to switch on/off, which is all I wanted.

If it can help (absolutely zero support, but I just checked and it still works :wink: ):

2 Likes

Thank you very much, looks like it is working also for me.

I will also have a deeper look at your repo. Do you think it would be even possible to somehow control every LED individually using your repo as a base (Not wanting it from you, just if you think it is possible or not, so if I should look elsewhere or can start with your repo)?

Everything that is done through the app is theoretically possible through the integration, but finding the right codes will be very difficult, imo.

As I said, I managed this by decompiling the android app. If you know what it means, you can have it a shot yourself…

Hey. Thanks for this, could something be missing here on SERVICE_ID constant?

Ping @koying

Well, it works like that for me…
Lot of copy/pasted code in there :wink:

I just took your idea and generalized it here;

1 Like

Just created this account to thank you for creating such a great component.
Unfortunately, my server is far from the LED strip so I was thinking of using the from the ble_client.ble_write Action from ESPHome ble client.
Unfortunately, I am not sure how should I populate the following attributes:

service_uuid: 0xFFF0?
characteristic_uuid: d44bc439-abfd-45a2-b575-925416129600?
value: 84dd5042374150897ac82f39110968a8 to turn on and 79d1dba40919c246a8580ae7d11b7884 to turn off?

If it helps, this is what I was able to get using nRF Connect

I was wondering if someone may help…
Thanks in advance!

You might as well use an ESPHome bluetooth proxy ( Bluetooth Proxy — ESPHome) and avoid headaches

1 Like

I have set a ESPHome bluetooth proxy as you mention and I’m still unable to mamke it work, but now the issue seems different.
I included a ble_rssi sensor in the proxy and I’m getting a -80 RSSI so proxy seems to work.
However, when adding the custom component, I get a blank pop-up and, if I click send, get an “Unknown error occured” message.
Moreover, I also tried @anon63427907 generic BT custom integration but the device does not appear in the configuration pop up neither…

That is the reason why I though about usingble_client as I have an esp32 just besides the LEF strip

Lucky for you, that interesting post was just bumped :slight_smile:

Now, I suspect that if the integrations didn’t work, your device is not exactly the same as the others here, so YMMV

Thanks for your help!
I was finally able to control the lights with esphome.
Leaving here this github as it may help someone else: https://github.com/8none1/idealLED/blob/efd20d6163edd67f10d91cc006ef45a115745aa0/att_protocol.md

3 Likes

Super-interesting read :+1:

Hi @eherranzr .

Could you paste your esphome yaml code.

I juste received one of this device and can’t grab it from the ha server due to distance, but got an esp at proximity.

Sure. This is my yaml code

esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

bluetooth_proxy:

ble_client:
  - mac_address: #REDACTED
    id: luces_navidad
    on_connect:
      then:
        - lambda: |-
            ESP_LOGD("ble_client_lambda", "Connected to BLE device");
    on_disconnect:
      then:
        - lambda: |-
            ESP_LOGD("ble_client_lambda", "Disconnected from BLE device");

switch:
  - platform: ble_client
    ble_client_id: luces_navidad 
    name: "ConexiĂłn Luces Navidad"
  - platform: template
    name: "Apagar Luces Navidad"
    turn_on_action:
      - ble_client.ble_write:
          id: luces_navidad
          service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
          characteristic_uuid: d44bc439-abfd-45a2-b575-925416129600
          # List of bytes to write.
          #value: [0x01, 0xab, 0xff] Example
          value: [0x79, 0xd1, 0xdb, 0xa4, 0x9, 0x19, 0xc2, 0x46, 0xa8, 0x58, 0x0a, 0xe7, 0xd1, 0x1b, 0x78, 0x84]
  - platform: template
    name: "Encender Luces Navidad"
    turn_on_action:
      - ble_client.ble_write:
          id: luces_navidad
          service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
          characteristic_uuid: d44bc439-abfd-45a2-b575-925416129600
          # List of bytes to write.
          #value: [0x01, 0xab, 0xff] Example
          value: [0x84, 0xdd, 0x50, 0x42, 0x37, 0x41, 0x50, 0x89, 0x7a, 0xc8, 0x2f, 0x39, 0x11, 0x9, 0x68, 0xa8]

1 Like