If you have access to any of the rotating parts a hall effect rotary encoder could do what you need. Stick a magnet to the rotating axle of the motor, the sensor next to it and you can encode the position of your door exactly.
homeassistant
Home Assistant is open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. Available for free at home-assistant.io
Lol - you read my mind! I literally just went into my garage and took some photos of the door, and realised the axle is sticking out the perfect amount, in front of my plywood tool board.
A hall effect sensor is exactly what I'm going to look into. Cheers!
It sounds as if you're interested in the extreme DIY, but: my solution was to buy cheap ZWave tilt sensors.
I've been thinking about this recently too!
I kind of have a very crude version of this, by simply mounting my garage door tilt sensor as high up on the door as I could. Since it would go horizontal along with the very first section of the door, it triggers as soon as the door is open about 1/5 of the way.
Response isn't very fast, though, so if I wanted more precise control I was thinking about building 3 ESP distance/ultrasonic sensors mounted to the ceiling pointed downwards, one at the end of the track, one about 1/4 of the way from the end of the track, and one at the start (where the top of the door stops when it's completely open).
So the sensors would detect in order of sensors triggered, "closed -> cracked -> slightly open/ing -> open".
Tracking the previous state of the door in a variable would let me know the direction the door is moving as the sensors get triggered too.
That's sorta where I was thinking with the ultrasonic sensor, but the other comment here has me thinking about a hall effect sensor now.
Cool, I've never used hall effect sensors but I'll look into them too. Let us know how it works 😁
I installed an ultrasonic Sensor at the lowest segment of the garage door. It mostly does it's job, though it is unreliable when the door is fully open, as the sensor tilts towards the open end and the distance is then too long. Also someone standing in the opening might block the sensor.
Yeah - this is the part I was trying to puzzle through. I guess you could combine it with a tilt sensor so, when tilted past a certain point, ignore the reading in HA and use that to determine the door is open.
To be honest having an information about the actual percentage state of opening is actually useless anyway. I just need the information if it's properly closed which could be achieved with a simple reed relay.
Having the sensor on the moving parts also comes with other challenges anyway. I used a cheap curly telephone cord to connect the sensor to the ESP8266 but it's actually already worn out and thus hanging low when the door is open, as the normal state is that it is extended when the door closed
Out of curiosity: what would be an automation that would benefit from knowing if it's opening or closing?
I'm quite happy with this: https://opensprinkler.com/product/opengarage/ It doesn't know whether the door is opening but has the benefit of knowing whether or not the car is in the garage when then door is closed.
I had one of those for a couple years. I replaced it with a yolink garage door controller as I was trying to get everything into one ecosystem. Pretty happy with it so far.
It's probably more that I'd benefit from knowing the position of the door - my garage gets stupid hot in summer (where my server rack is) and simply cracking it open a couple of inches and turning on a oscillating fan makes the world of difference in there.
Re the opening/closing thing, I could use some simple calcs to determine that based on change in position data, and then do some fancy animations on my HA panel. Just because. :D
It's a shame that even "cheap" versions are hundreds of dollars, because the perfect absolute position sensor would be a "draw wire displacement sensor" (goes by a few variations on that name).
Basically a spring-loaded spool of wire with a multi-turn position sensor, rolls in and out like a tape measure.