Providing you stick with file-based rules, yes. (The “globals” stuff gets complicated for UI entered rules)
Java provides a Map you can import which can be thought of as a kind of string-indexed array.
In your case you might have startmap and stopmap, each indexed by rollershutter name and containing epoch timestamps? EDIT - on second thoughts, you only want start; when it stops you’ll calculate new position using “now”.
Use of Map shown here
There are no native duration timers here. You do have to roll your own from timestamps.
It seems sound.
You will need to know the total travel time for each shutter. Maybe they vary even among “identical” actuators according to width.
They might take longer to open close;if it’s widely different you might need to make different calculations depending on direction of travel.
You might store these in Items so that get persisted and restored.
They’re probably non-linear, moving more slowly at one end of travel than the other,but you only want an estimate.
Assuming you’ve no end-stop detection either, you can come up with other ways to re-zero your position counter at one or other end of travel. Can you detect when the motor stops at an end-stop, or will you have to assume that when it has been driven longer than a particular time it must have come to the end?
If you did have stop detection, you could devise autocalibrate rules to populate the total travel times