I have a random collection of gearmotors, so I pulled out one that seemed about the right speed and torque and printed a pulley to mesh with the ball chain and fit the shaft.
Short Heatfit inserts that I bought from Stefan at CNC Kitchen are great for printed gears and pulleys.

My solution was to trap the chain between two such pulleys and use the second to drive a threaded shaft with a nut that slides along it and triggers limit switches.

For the electronics I decided to use an ESP8266 module running Tasmota firmware and control it from my Home Assistant server that runs on a Raspberry Pi 4. To drive the motor I had an L6203 full bridge driver chip.

https://hydraraptor.blogspot.com/2023/12/pulled-blinder-and-then-curtains.html