My idea would be to use a distance sensor. Ultrasound for a rolling door and laser or infrared for one thats stored in the ceiling.
I assume you know how to get the sensor data into your arduino or wifi capable arduino equivalent.
I also assume you know how to program the wifi and how to send mqtt messages to your ioBroker.
If not here is a german tutorial on how to setup a temperature sensor with mqtt:
The interesting part is the code snippet.
So now i assume you mounted the sensor and stuff on you garage door, so it can measure either how much is rolled up or how much is stored in the ceiling so far.
Write a simple program which throws the sensor value into the console
Open the Door completly > Note the Value
Close the Door completly > Note the Value
Now for the programming part (i don’t have a garage door so just a simple mock up:
loop:
if garage door distance is below “open Door Value + a margin” send MQTT “open”
if garage door distance is above “open Door Value - a margin” send MQTT “closed”
if garage door distance is lower than last loop send MQTT “opening”
if garage door distance is higher than last loop send MQTT “closing”
sleep 500ms
If you set the conditions up like this a hard wind won’t trigger opening and closing messages and you don’t have to use margins for opening and closing because it will always go into one of the first to conditions even if it shifts a bit.
You could also simply send just the sensor data via MQTT Message and do the automation there…