All Projects → benjefferies → gogo-garage-opener

benjefferies / gogo-garage-opener

Licence: GPL-3.0 license
Go implementation of a Raspberry Pi garage door opener

Programming Languages

go
31211 projects - #10 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
HCL
1544 projects
shell
77523 projects

Projects that are alternatives of or similar to gogo-garage-opener

home assistant appdaemon alexa google
An AppDaemon application for Home Assistant, handles calls from Alexa Skill and a Google Action
Stars: ✭ 11 (-73.81%)
Mutual labels:  home-automation, google-actions
GitInfo-Git-for-Google-Assistant
GitInfo is a conversational data retrieval bot for Github repositories. It provides a conversational experience to access information. Information that can be retrieved using GitInfo include: stars, latest commit details , no of forks , no of issues etc.
Stars: ✭ 18 (-57.14%)
Mutual labels:  google-assistant, google-actions
linux-control
Control your Linux laptop/desktop via Google Assistant
Stars: ✭ 46 (+9.52%)
Mutual labels:  home-automation, google-assistant
IoT-Home-Automation
🅿️ A simple project that uses a Particle to control a garage remote over the internet
Stars: ✭ 17 (-59.52%)
Mutual labels:  home-automation, garage
haconfigs
My Home-Assistant configuration files
Stars: ✭ 61 (+45.24%)
Mutual labels:  home-automation
deskmatik
Open source smart desk controller https://deskmatik.com
Stars: ✭ 24 (-42.86%)
Mutual labels:  home-automation
google home timers card
Card for Home Assistant Google Home integration.
Stars: ✭ 29 (-30.95%)
Mutual labels:  home-automation
notion-heroku
Heroku hosted application that performs Notion actions (i.e., new task, new note) based on voice requests via IFTTT Webhooks and Google Assistant.
Stars: ✭ 41 (-2.38%)
Mutual labels:  google-assistant
Home-Assistant
Home-Assistant-Config
Stars: ✭ 186 (+342.86%)
Mutual labels:  home-automation
Doorbell-via-Wemos-and-optocoupler
Digital version of my "analog" doorbell project to determine if the doorbell was pressed.
Stars: ✭ 55 (+30.95%)
Mutual labels:  home-automation
last-watch-ai
Self-hosted computer vision automation application
Stars: ✭ 49 (+16.67%)
Mutual labels:  home-automation
hfeasy
HFeasy - firmware for HF-LPx100/LPx30 based devices
Stars: ✭ 35 (-16.67%)
Mutual labels:  home-automation
python-fhem
Python FHEM (home automation server) API
Stars: ✭ 15 (-64.29%)
Mutual labels:  home-automation
tion python
Python module for Tion
Stars: ✭ 51 (+21.43%)
Mutual labels:  home-automation
ioBroker.epson stylus px830
Zustand Druckerpatronen im EPSON Stylus PX830 für ioBroker auslesen
Stars: ✭ 18 (-57.14%)
Mutual labels:  home-automation
alarmserver
IP Camera Alarm Server to MQTT
Stars: ✭ 73 (+73.81%)
Mutual labels:  home-automation
home-assistant-config
My configuration for Home Assistant
Stars: ✭ 63 (+50%)
Mutual labels:  home-automation
unifi2mqtt
A unifi controller device status to mqtt bridge process
Stars: ✭ 14 (-66.67%)
Mutual labels:  home-automation
homebridge-plex
Plex plugin for homebridge: https://github.com/nfarina/homebridge
Stars: ✭ 58 (+38.1%)
Mutual labels:  home-automation
openHCAN
Hausautomatisierungsloesung auf CAN-Bus Basis.
Stars: ✭ 16 (-61.9%)
Mutual labels:  home-automation

Build Status

gogo-garage-opener

Go implementation of a Raspberry Pi garage door opener

Features

Open garage door using an app

Garage Opener on Play Store (source)

Use one time pin

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.

Open garage door notification

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 CLI 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

Autoclose

Auto close the door if it's left open between 10PM and 8AM.

Guide

Prerequisites

To build

Look to Dockerfile for the latest instructions for building

Auth0 Setup

Authentication has been setup using Auth0. More details can be found here

Running

The easier way to use gogo-garage-opener is by using the docker image built on every commit

  1. Clone this repo on the raspberry pi
  2. Update .env
    • AWS_ACCESS_KEY_ID is your AWS access key used for sending email notifications
    • AWS_SECRET_KEY is your AWS secret key used for sending email notifications
    • AWS_SES_ENDPOINT is the SES endpoint used for sending email notifications (more information https://aws.amazon.com/getting-started/tutorials/send-an-email/)
    • AS is the domain of the authorisation server
    • RS is the domain of the resource server (domain set for API in) and used in Caddy (reverse proxy
    • RELAY the pin number used to toggle the relay
    • SWITCH the pin number used to read from the contact switch
  3. Run the application docker-compose up -d

Hardware

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

  1. Connect up a (black) GPIO wire to pin 2 which is a 5v output
  2. Connect up a (white) GPIO wire to pin 6 which is a ground
  3. Connect up a (grey) GPIO wire to pin 18 which is a GPIO pin. This will be used in "out" mode to toggle the relay
  4. Connect up the (black) 5v output GPIO pin 2 wire to the VCC on the relay
  5. Connect up the (white) ground GPIO pin 6 wire to the GND on the relay
  6. Connect up the (grey) GPIO pin 18 wire to IN1 on the relay
  7. Connect the positive from the garage door to the NO1 connector on the relay
  8. Connect the negative from the garage to the COM1 connector on the relay

It should now look like the images below

Pins right view Relay switch Relay switch garage door opener wires Garage door opener wiring

Wiring up the magnetic switch

  1. Fix the magnet to the garage door
  2. Fix the sensor to the garage door frame
  3. Connect up a (brown) GPIO wire to pin 15 which is a GPIO pin. This will be used in "in" mode to read from the sensor
  4. Connect up a (red) GPIO wire to pin 9 which a ground
  5. Connect up the (red) ground GPIO pin 9 wire to a terminal strip on the breadboard
  6. Connect up the (brown/blue) GPIO pin 15 wire to a different terminal strip on the breadboard
  7. Connect one wire of the magnetic switch to the terminal strip for GPIO pin 9 and the other to the terminal strip for GPIO pin 15

Pins left view Breadboard with magnetic switch wiring

Future

  • Open garage door via location i.e. Automatically open garage within 100 metres of your garage. I have found a nice way to do this using Automate.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].