I managed to do some reverse engineering on the livolo dimmer switch. It seems that the touch MCU talks to the dimmer MCU via USART (idle: low, 19200 bps, 1 start, 1 stop, 8 data). Each 20 msec the dimmer MCU sends a byte that shows the level of the dimmer and the touch MCU replies with a byte that has bit 0 set to one if touch is present, rest of the bits are all 0 (except for each 10th reply, when all the other bits are 1).
Also the 433MHz radio signal is decoded by the touch MCU not by the dimmer MCU.
Best posts made by Andrei Călin Tătar
-
RE: livolo Glass Panel Touch Light Wall Switch + arduino 433Mhz
-
RE: livolo Glass Panel Touch Light Wall Switch + arduino 433Mhz
OK, here is what I managed to get working so far. I didn't use mysensors in the end but the sketch can be adapted. I must admit it's not the cleanest code.
So, I removed both microcontrollers from the base and the touch panel. I added a AT42QT1010 for touch detection (10k resistor, 47nF cap) and also replaced the led resistors from the touch panel with 2.2k ones (the light was too dimm, now it's a bit too bright ).Rest of the mods should be easy to see from the images. I didn't roll my own PCBs since I needed to adapt only 6 switches.
Features in the sketch: manual dimmer mode (works the same as the normal switch, just with control and brightness report); manual on/off mode (switches on/off on the start of a touch; the brightness can be set - default 100); manual disabled; when changing the brightness it goes through a ramp, it doesn't go directly to max or min. The modes, brightness, etc. can be changed via RF.
Base mod: https://photos.app.goo.gl/ZGojnlm2ocBEaucp2
Touch panel mod: https://photos.app.goo.gl/UpG2UuMtK2qa6q4h1
And the sketch code: https://github.com/andrei-tatar/SensorsNetwork/blob/master/LightDimmer/LightDimmer.ino