ShutterToggle opens shutter when actual shutterposition <=50 and closes otherwise. ShutterStopXxx commands will stop shutter when shutter is currently moving and will be same as ShutterXxx otherwise.
- fix report of TARGET in Teleperiod message
- enhance Rules support to ensure rule is triggered at start ALWAYS and not crashes on complex rules
- Fixes wong TARGET on shutterinvert=1
- fix bug in multi-push from last commit
- remove rules execution every second. only at start and stop
- enable rules for Shutter#Button
- tbd: How to correctly detect a simultaneous button push
- shutterposition now reports actual position if the shutter is moving #7686
- new RuleEvent: Shutter1#Target to get upfront info where the shutter is moving
- RuleExecution now every second to get an update of the current position
- New functionality for Stepper Motors. Now supporting 4 Stepper shutters working simultanously
Command shutterlock<x> 1 locks shutter <x> movement. Any ongoing movement is still finished when called. Subsequent calls of shutter commands about movement, web buttons and shutter buttons are blocked when shutter is locked. shutterlock<x> 0 unlocks shutter <x>.
When no button restriction is given and ALL shutter buttons are pressed simultaneously more than 5 times or hold simultaneously follow Tasmota's basic button behavior.
Instead of switching power of the shutter relais web buttons will issue shutter commands to work right when in shuttermode 1. Up down labels arrow up/down fixed for more than one shutter.
With calibrated shutters and ShutterPosition<x> 100 the resulting position may not be 100. This is due to 2 issues. a) percentage is calculated wrong from position due to numerical precision. b) real_position and subsequently position after movement is slightly smaller than max_position.
a) is fixed here by avoiding calculation when position is equal to calibration point
b) open, not fixed here. Issue further depends on start_position which makes it hard to reproduce. Maybe 'stop_position_delta=20' results is real_position not reaching max_position.