What you really want is some Moes zigbee light switches.
Then apply this custom firmware to the switches (currently 1,2 and 3 gangs work but 4 gang is work in progress):
It works a treat in detached mode and keeps the downlights powered all the time. Can control the lights and button leds via automations in HA.
The guy making the custom firmware is really good and knows what he is doing. Later on he will add an emergency mode to the firmware so if you lose HA u press/long press/or something else a button on the switch and reverts back to working as a normal switch (turning on and cutting off power to downlights).
thanks for all the guidance! For now I will just make sure the switch always stays on, and work on a lasting solution for that later.
Just want to check Iâm doing this right, in cloudcutter I selected:
3rd party firmware
By manufacturer/device name
Brand: Aldi
Article Number: SMART-AL2017-TGTS Lightway 8W
Select firmware version and name: 2.9.16 - BK7231T / oem_bk7231s_light_ty [i paired one with Tuya Smart and confirmed it was running 2.9.16 already so thatâs a good sign]
Select custom firmware file for BK7231T chip:
a) ESPHome-Kickstart-v23.08.29_bk7231t_app.ota.ug.bin
b) OpenBeken-v1.18.31_bk7231t.ug.bin
It did the flashing, requires rejoining in AP mode again half way through, finished and then gave me a device MAC address.
I connected to kickstart-bk7231t open wifi network that now appears as the downlight ends up off but in AP mode, and navigated to http://192.168.4.1, now I think I need to adapt Justinâs YAML to send it OTA and add figure out any config/setup for ESPHome within HA. Think Iâm on the right trackâŚmostly !
Yes sounds like your on the right track (sorry Iâve been trying to remember, as I did it ages ago and donât have any CloudCutter running now).
Once youâve got that ESPHome-Kickstart-v23.08.29_bk7231t_app.ota.ug.bin flashed on to the device using CloudCutter, then yes you just need to build your own / final ESPHome based bin/image file, navigate to the devices local webserver and do the manual OTA upload to flash to its final state. As youâve built the bin/image on your HA/ESPHome server, it should also have your local WiFi settings already built into it, so after flashing it should automatically connect to your WiFi network and then appear as a discovered device in ESPHome builder.
Now if I could only work out how to add a âhow long has this LED light been on for in its lifetimeâ sensor, to add to the template.
The new version on the ALDI downlights that were available in May 25 have patched firmware and canât be converted with cloudcutter but should be possible to flash via serial. The model of the RGB one is WF-RGBCCT-9W.
To disassemble, the diffuser on the front needs to be (carefully) prized out and a couple of screws removed to release the top cover.
The controller is a very tiny Tuya CBLC5 Beken module but ESPHome is not possible at the moment as the KP18068 LED driver is not supported yet but there is an open PR for it.
I ended up with a mix of 30 WF-RGBCCT-9W and WF-CCT-9W Aldi downlights - the May 2025 edition. The plan was to replace majority of the terrible downlights in my new unit.
The Aldi Casalux box has âworks with Hey Goggleâ printed on it, but that is a lie. As sold, these downlights do not support Google integration. So, here I am learning about HA and seeing if I can âsalvageâ my âinvestmentâ in these lights and make them useful.
Iâm a newbie to HA or firmware alternatives for smart lights, but have plenty of experience with Linux and firmware development for PVRs and STBs. Any pointers where I should start looking for resources on making these particular lights useful? Ideally, Iâd be able to get these to work with hey Google, but a good second alternative would to go completely self-hosted.
@gaz99 Do you happen to have any pictures on how to get inside the light and where to poke? Thanks.
The diffuser seems to clip into the body and it is very tight and there was some glue/sealant residue on it when I did get it out. I used some IPA on the joint and just used a thin spludger to lever it out.
I still managed to mangle it a bit but the damage wouldnât be visible when they are installed.
There is no point doing anything until the LED driver is working with ESPHome.
Seperate to that, given these lights need to permanently have power to them, one annoyance I found was if you just want to walk out the door and push a button to turn them on. Normally triggered by motion / presence etc and turn off after x minutes, but for say when your going out and want them to stay on (and not into fiddling with the web interface or cursing the LLM voice).
Just ordered some of these https://www.athom.tech/blank-1/us-touch-switch-for-esphome to test out. Should be able to drive ânormalâ lights off the relays and also set relays with these Casalux lights to always_on, then configure them to use UDP component to broadcast or talk directly to the Casalux specific to each button/relay to say âif I push the button normally, then tell casalux lights 1/2/3 etc to turn on/offâ and another to say âif button pushed for 2s then turn off the relay that supplies power to downstream casaluxâ.
Got to try it for dumb led lights that have a 2 way switch setup, so one of these will have the power going to the lights, whilst the other will just have power to run it and send/receive updates with the âmasterâ switch to be told the lights are on / tell the master to turn off the lights/relay.
@jbhobson - please post here after you have done your testing on how the switches are performing. Really interested in the 2/3/4/etc way.
Also the UDP component.
OK, I have the initial Libretiny on the CBCL5 module and that was a bit of a challenge due to its size.
I have tried the external component and as the KP18068 is an I2C chip I modified the example config from the github PR and I get an error from the ESPHome builder:
INFO ESPHome 2025.4.0
INFO Reading configuration /config/esphome/casa-dl-v2-rgb-1.yaml...
Failed config
external_components: [source /config/esphome/casa-dl-v2-rgb-1.yaml:17]
- source: github://pr#2639
components:
Could not find __init__.py file for component kp18058. Please check the component is defined by this source (search path: /data/external_components/5e507008/esphome/components/kp18058/__init__.py).
- kp18058
Edit: Make sure to include the webserver lines to have a local interface you can login to and upload the esphome .bin image, otherwise youâll be ripping it apart and solder wires again.
Trying to validate the above code I get, for which I have no idea what/where i2c_soft is from (I assume it should be in this PR#7701 code?:
INFO ESPHome 2025.4.2
INFO Reading configuration /config/esphome/kp18058.yaml...
INFO Unable to import component i2c_soft: No module named 'esphome.components.i2c_soft'
Failed config
i2c_soft: None
{}
Component not found: i2c_soft
OK I have it working. The original error was the wrong PR number, I was also missing the id name in the platform. I then got the i2c_soft error.
There was a mention of splitting softi2c out of the kp18058 component in the PR discussions so I took a guess and added the i2c_soft as another ext component.
I have also fixed the RGB channel allocation in my yaml.
BTW, I didnât need the webserver bit as I have another project in the works that uses the CBCL5 and I have made a laser cut and 3D printed pogo pin programmer for the module.