Hi all - I have a sectional garage door, that I’m currently automating with a relay to trigger button press on the garage door motor, and a simple reed switch for open/closed state, using esphome on a Wemos D1 mini.
Lately, I’ve been thinking about finding/building a door position sensor, instead of the reed switch.
If I had position data being sent reliably, I could very easily determine if the door is opening, as well as open/close state. I have a number of automations in mind that would benefit from such data.
So far, my searches for “garage door position sensor”, and variations thereof, aren’t bearing much fruit. I’ve been pondering of couple of home-brewed approaches:
-
A series of reed switches on a track that a magnet on the door will trip as it moves along.
I guess it’s theoretically doable, but they’d have to be sensitive enough to be tripped by a moving magnet, but not so sensitive that too many of them are tripped at the same time, which might confuse my “moving mathematics” to determine door movement direction.
-
An ultrasonic sensor could possibly do the job.
I’m mulling over exact placement of it so it has a reliable surface to reflect off, to give me an accurate read on position. Nothing (yet) comes to mind on that front.
It’s not that I wouldn’t enjoy going down the very enjoyable rabbit hole of prototyping something, but I thought I’d just ask first.
Is anyone aware of an off-the shelf sensor that might give me what I’m looking for, please? If it needs something beefier than an ESP board, I’ve got a couple of RasPis lying around doing nothing.
Cheers in advance for any suggestions.
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).
https://appmeas.co.uk/products/draw-wire-position-sensors/compact-long-range-draw-wire-displacement-sensor-low-cost-mk120/
Basically a spring-loaded spool of wire with a multi-turn position sensor, rolls in and out like a tape measure.