Go implementation of a Raspberry Pi garage door opener
Garage Opener on Play Store (source)
Garage Opener for iPhone, Android App implemented using ionics framework (source)
The build framework uses docker to make the process easier. With some fiddling about you can build it natively on the Raspberry Pi or on your development machine.
Note. If compiling manually rather than using docker you will need to install an arm gcc on your development machine compile the source. The docker build takes care of all of this.
Building using docker
docker build . --tag gogo-garage-opener-builder && docker run --rm -v "$PWD":/go/src/gogo-garage-opener -w /go/src/gogo-garage-opener gogo-garage-opener-builder:latest (tested on linux)gogo-garage-opener in the project directorygogo-garage-opener to your Raspberry PiTo use gogo-garage-opener-ui or use the APIs you will need to create an account
--email and --password arguments e.g. ./gogo-garage-opener --email benjefferies@example.com --password secretCreated account email:benjefferies@example.com. Exiting...sudo nohup ./gogo-garage-opener -s 15 -r 18 &Note. If you are considering making the application available over the internet you will want your credentials to be encrypted over SSL, this can be achieved with a reverse proxy such as ngnix or apache2 with the correct mod.
To use a one time pin go to http://localhost:8080/user/one-time-pin/abcd1234. The pin at the end is the generated pin, once the open button has been pressed the pin will be marked as used.
The application can be configured to notify users which have accounts via their email address if the garage door has been left open for a configurable period.
The command line argument -notification=15m configures the app to notify all users if the door has been left open longer than the configuration duration.
It uses AWS SES as an SMTP service for sending the emails.
To configure the application to use your SES account you will need to set the environmental variables $AWS_ACCESS_KEY_ID, $AWS_SECRET_KEY and $AWS_SES_ENDPOINT environmental variables. See go-ses
I will describe how to set up your Raspberry Pi and the peripherals referring to the GPIO pins set up my Raspberry PI. Check that they are the same for your version. GPIO documentation
Wiring up the relay
It should now look like the images below

Wiring up the magnetic switch

$ claude mcp add gogo-garage-opener \
-- python -m otcore.mcp_server <graph>