Hi guys, thanks for the info in this post. I also got one of these BK7231N with CBLC9 board soldered to the main board.
I managed to get it working, but since I was not fully confident in understanding the automations posted here (I'm new to openbeken) and I didn't want any blocking logic, I built my own and I wanted to share it with you all, maybe someone feels it useful

.
This is the State Machine Drawing of my logic:
And here is the code of my autoexec.bat (I needed to create the IO channels on it just in case).
// State machine
//0: stopped/unknown position
//1: opening
//2: closing
//3: stopped/opened
//4: stopped/closed
SetPinChannel 6 12
SetPinRole 6 dInput
SetPinChannel 7 2
SetPinRole 7 Rel
SetPinChannel 8 0
SetPinRole 8 WifiLED_n
SetPinChannel 9 1
SetPinRole 9 Rel
SetPinChannel 24 13
SetPinRole 24 dInput
SetPinChannel 26 11
SetPinRole 26 dInput
startDriver httpButtons
setButtonEnabled 41 1
setButtonLabel 41 Abrir
setButtonEnabled 42 1
setButtonLabel 42 Cerrar
setChannelType 43 ReadOnly
ClampChannel 43 0 4
SetChannelVisible 43 0
setChannelLabel 43 State 1
alias goto-opening-then-opened backlog setChannel 2 0; setChannel 1 1; setChannel 43 1; addRepeatingEventID 20 1 1 goto-opened
alias goto-opened backlog setChannel 1 0; setChannel 43 3
alias goto-closing-then-closed backlog setChannel 1 0; setChannel 2 1; setChannel 43 2; addRepeatingEventID 20 1 2 goto-closed
alias goto-closed backlog setChannel 2 0; setChannel 43 4
alias goto-stop backlog cancelRepeatingEvent 1; cancelRepeatingEvent 2; setChannel 1 0; setChannel 2 0; setChannel 43 0
//btn_open
alias btn-open if $CH43==0||$CH43==2||$CH43==4 then goto-opening-then-opened else btn-open-cancel
alias btn-open-cancel if $CH43==1 then goto-stop
addChangeHandler Channel11 == 0 btn-open
//btn_close
alias btn-close if $CH43==0||$CH43==1||$CH43==3 then goto-closing-then-closed else btn-close-cancel
alias btn-close-cancel if $CH43==2 then goto-stop
addChangeHandler Channel12 == 0 btn-close
//soft_btn_open
setButtonCommand 41 btn-open
//soft_btn_close
setButtonCommand 42 btn-close
// Schedule automatic open and close based on NTP time
startDriver NTP
// set local timeserver
ntp_setServer 192.168.1.1
// set timezone
ntp_timeZoneOfs +3
//schedule open time
// every day except weekends (0x01 sun, 0x02 mon, 0x04 tue, 0x08 wed, 0x10 thu, 0x20 fri, 0x40 sat) > 0011.1110 = 0x3E
addClockEvent 08:00:00 0x3e 1 btn-open
//schedule close time
addClockEvent 18:00:00 0xff 2 btn-close
You will notice I used dInput instead of button, that's because I wasn't able to make it work otherwise

.
Also, the time for the curtain to be considered fully open or closed is 20 seconds, this might be adjusted depending on the real world of your implementation.
This is the web interface:
Basically added 3 fields:
Channel state: Here you can check in which state the state machine is, in the screenshot is in state = 3, meaning fully opened.
Button "Abrir": AKA soft_btn_open, to trigger the opening command.
Button "Cerrar": AKA soft_btn_close, to trigger the closing command.
Everything else is default
My next step now is to automate to open/close on certain hours of the day. UPDATE: Added a few lines at the end of the code to open the curtain at 8am of working days and close every day at 6pm. New pendings: consider sunrise/sunset, consider daylight saving times.
UPDATE2: I just discovered (it might be obvious) that you could trigger the commands to open/close directly calling the aliases created, like
http://deviceip/cm?cmnd=btn-open or
http://deviceip/cm?cmnd=btn-close respectivelly.