Flashing the requires Tasmota32 Solo1 build is covered in Digiblur's blog post https://www.digiblur.com/p/linkind-esp32-smart-switch-how-to-flash.html
I am using a custom compiled firmware that includes all device group features, full rules features, TasMesh, and BLE. (Using TasMesh and BLE on this single core ESP32 may be unreliable. TasMesh is still a WIP.)
Follow digiblur's instructions to flash whichever variety of Tasmota32 Solo1 you want, but the following is only confirmed to work on the 9.5.0.9 commit 1b0de24. Come chat in the discord if you want to compile your own bin https://discord.digiblur.com/
I have my device setup so the Green LED indicates the dimming level and the Red LED is on when the power state is off.
Access the Tasmota console (Click Consoles then click Console) and execute the following command.
Backlog Template {"NAME":"Linkind Dimmer Berry POC WS2400101","GPIO":[544,0,0,0,640,0,0,0,0,0,416,0,0,0,0,0,0,0,608,0,0,0,320,0,0,0,0,0,161,160,0,0,0,0,0,0],"FLAG":0,"BASE":1}; Delay 1; Module 0
The device should restart.
In the console execute the following:
Backlog SwitchMode1 12; SwitchMode2 12; SetOption32 12; Rule1 On Switch2#State=2 Do Power ON ENDON On Switch1#State=2 Do Power OFF ENDON On Switch2#State=4 Do Dimmer + ENDON On Switch1#State=4 Do Dimmer - ENDON On Power1#State Do LEDPower %value% ENDON On Power1#Boot Do LEDPower %value% ENDON; Rule1 1
This configures single press of the top button to turn on, hold of top button to increase brightness, single press of the bottom button to turn off, and hold of the bottom button to decrease brightness.
You will likely want to play with SetOption32
and DimmerStep
to find settings that work for your case.
From the main Web UI page: click Consoles, click Manage File system, click Choose file, and upload the autoexec.be
script attached to this gist.
After the script is uploaded, restart the device.
Use the DimmerRange
, DimmerStep
, Speed
, and Fade
commands as normal.
DimmerRange
is on a scale of 0 to 255. In my case, my bulb didn't turn on until 23 and had no brightness change above 230.
For me and the bulb I am testing with, this is
Backlog Fade 1; Speed 2; SetOption32 12; DimmerStep 10; DimmerRange 23,230
With the settings I've set, pressing and holding a button takes 1.2s (SetOption32 12
) to send a command to change the dimming level by 10% (DimmerStep 10
) which then takes 1s to fully change (Fade 1; Speed 2
)
Backlog Fade 1; Speed 1; SetOption32 6; DimmerStep 25; DimmerRange 23,230
Click Configuration then Configure BLE then check Enable Bluetooth then Save.
If light is off
- Single press either button turns on.
- Hold top button turns on at 67%
- Hold bottom button turns on at 33%
If light is on
- Single presses do dimming increments (
DimmerStep
) (top +, bottom -) - Hold top goes to 100%
- Hold bottom button turns off.
This leaves double and higher multipresses available for other automations.
template {"NAME":"Linkind Dimmer Berry POC WS2400101","GPIO":[544,0,0,0,640,0,0,0,0,0,416,0,0,0,0,0,0,0,608,0,0,0,320,0,0,0,0,0,33,32,0,0,0,0,0,0],"FLAG":0,"BASE":1}
SO73 1
Rule1
ON Power1#Boot DO Backlog LEDPower %value%; Var1 %value% ENDON
ON Power1#State DO Backlog LEDPower %value%; Var1 %value% ENDON
Rule1 1
Rule2
ON Button1#State=3 DO IF (Var1==0) Dimmer 33 ENDIF ENDON
ON Button2#State=3 DO IF (Var1==0) Dimmer 67 ENDIF ENDON
ON Button1#State=3 DO IF (Var1==1) Power1 OFF ENDIF ENDON
ON Button2#State=3 DO IF (Var1==1) Dimmer 100 ENDIF ENDON
ON Button1#State=10 DO IF (Var1==0) Power1 ON ENDIF ENDON
ON Button2#State=10 DO IF (Var1==0) Power1 ON ENDIF ENDON
ON Button1#State=10 DO IF (Var1==1) Dimmer - ENDIF ENDON
ON Button2#State=10 DO IF (Var1==1) Dimmer + ENDIF ENDON
Rule2 1
This config requires a build with conditional rules and doesn't leave any functionality for other automations but makes a very functional dimmer.
Backlog Template {"NAME":"Linkind Dimmer Berry POC WS2400101","GPIO":[544,0,0,0,640,0,0,0,0,0,416,0,0,0,0,0,0,0,608,0,0,0,320,0,0,0,0,0,161,160,0,0,0,0,0,0],"FLAG":0,"BASE":1}; Delay 1; Module 0
Backlog SwitchMode1 5; SwitchMode2 5; SetOption114 1
Rule1
ON Power1#Boot DO Backlog LEDPower %value%; Var1 %value% ENDON
ON Power1#State DO Backlog LEDPower %value%; Var1 %value% ENDON
Rule2
ON Switch1#State=3 DO IF (Var1==0) Dimmer 33 ENDIF ENDON
ON Switch2#State=3 DO IF (Var1==0) Dimmer 67 ENDIF ENDON
ON Switch1#State=3 DO IF (Var1==1) Power1 OFF ENDIF ENDON
ON Switch2#State=3 DO IF (Var1==1) Dimmer 100 ENDIF ENDON
ON Switch1#State=2 DO IF (Var1==0) Power1 ON ENDIF ENDON
ON Switch2#State=2 DO IF (Var1==0) Power1 ON ENDIF ENDON
ON Switch1#State=2 DO IF (Var1==1) Dimmer - ENDIF ENDON
ON Switch2#State=2 DO IF (Var1==1) Dimmer + ENDIF ENDON
(I know I could do ELSE's but I wanted to get each case written out cleanly first before condensing.)
Major update from yesterday.