Zemismart Zigbee Blind Status - Can I template?

I’ve picked up a few Zemismart zigbee blind motors (the ones that pull the chain) and they work well with Zigbee2MQTT, I can manually open, close, stop or set position. The issue is the state or position are not reported in the front end which is a pain.
I was hoping I could get around this with some clever template workaround but not sure if this is achievable? I basically want to pull the position from the LAST position set command I sent from HA. So basically trigger an input select I guess that would show the blinds are 0%, 50% or 100% closed. Is it possible to change that status based on the service call last sent to the device? I’ve read up on templates but I can’t quite get my head around them enough to make it work. currently my dodgy workaround is a script for each set position, which does both the service call to set it and also updates a helper/input select but this of course means I’m limited to the percentages I’ve set up scripts for which is kind of daft.
On a side note anyone considering them they’re a steal. I paid $40 each, they work with CC2531 and zigbee2mqtt and control is quick and accurate. I’ve got some of the curtain motors (switchbot copies) on order as well so hoping these will be equally as solid albeit they’re wifi only

I’ve noticed a similar issue with the status not being updated, but I think that the tracking on where the motor is might be drifting. Like my limit setpoints are slowly moving. The state seems to get updated, very slowly, but then it doesn’t match where the blinds actually are. How has your setup held up?