I understand how it works, I just don’t know what you are actually using to tie the momentary contact into HASS. Is this something custom?
I dont like to use MQTT but it is a great tool.
That opener works well with VERA.
Yep just a good ole fashion craftsman, no bells and whistles.
This is a pi connected to my wifi…
I have a 5V relay connected to a GPIO. The problem is that a switch is on or off right?
I use an Input Boolean (virtual switch) and an automation to make switch turn on for a second and then back off finally resetting the input boolean.
automation:
- alias: Toggle command switch to control GD
trigger:
platform: state
entity_id: input_boolean.garage_control
to: 'on'
action:
- service: switch.turn_on
entity_id: switch.garage_relay
- delay: 00:00:01
- service: switch.turn_off
entity_id: switch.garage_relay
- service: input_boolean.turn_off
entity_id: input_boolean.garage_control
The micro switch is wired to another GPIO port as a binary sensor so it is on or off depending on whether or not the switch is open or closed. When the door is closed it is in contact with the switch making it show closed or off.
So this here is a working garage door opener. Control + State
Next problem: This is not the instance of HA that is connected to everything else so I have to use API calls to the second HA instance from my main instance to control and get the state.
That is what I posted above. Options for Garage Door Opener?
Now in my Main instance I have one switch and the state of the switch is the state of my door. On==open Off==closed
For the record a tilt sensor or contact sensor would be better options for getting the state.
Finally, I live in Nebraska and although it has been a mild winter we have experienced some extreme cold and it keeps chugging along.
Like I said there are way easier options.
@PtP This is awesome, thanks for putting it together! Still exploring options but this looks like it might be a valid option. Thanks so much, really appreciate it!
No problem!
You can either get a wink hub to then tie into ha. Which is easy.
The way I am doing it is a custom component over here.
Hopefully one day it is a supported component.
Perfect, thanks! Looks like the hub isn’t super expensive so I might go that route. Though I also like the DIY approach. Really appreciate your response!
+1 for the Garadget recommendation. I have been using it for a few months now and love the HA intergration. The Dev is super responsive too.
Here is my HA scripts.
https://github.com/CCOSTAN/Home-AssistantConfig/blob/master/automation/garadget.yaml
Im using an ESP8266 with a relay and a magnetic sensor. The ESP8266 is connected to HA and Homekit with MQTT. It’s cheap(~$15) and works really well.
Hey PTP,
can you tell me more about your config. I need a “remote HA” in the garage as well to remote control my door
I’m assuming that could be used as a cheap door sensor as well no?
I would be happy to help…
I sent you a PM.
Sure! Why not?
For a fairly simple, hard-wired solution I used this:
- rPi with HA, and setup for rPi binary sensor and rPi relay
- 4-Channel Relay Driver Module
- Reed sensor with magnet w/NO and NC contacts (having NO &NC gives you options for later)
- 5V SPST DIL Reed Relay
- Runs of spare CAT5 cable
I power the driver module off the +5V on rPi and whilst the 4way driver is designed for Arduino, the logic on rPi is switching it no problem.
config.yaml
-
first I activate the correct gpio for the switch and sensor:
switch pi:
- platform: rpi_gpio
invert_logic: False
ports:
24: “Garage Door”binary_sensor pi:
- platform: rpi_gpio
invert_logic: False
ports:
18: “Garage Door State”
And then I make some customisations to the switch. Namely, making it a momentary switch, so it makes brief (300ms) connection.As far as the sensor goes, I prefer reading “open” and “closed” as a status, rather than “on/off” which can be misleading.
switch:
- platform: template
switches:
garage_door_pi:
value_template: "{{ False }}"
friendly_name: "Garage Door"
turn_on:
- service: switch.turn_on
entity_id: switch.garage_door
- delay:
seconds: 0.3
- service: switch.turn_off
entity_id: switch.garage_door
turn_off:
service: switch.turn_off
entity_id: switch.garage_door
sensor:
- platform: template
sensors:
garage_door_state:
value_template: >-
{%if states.binary_sensor.garage_door_state.state == 'off' %}
closed
{%elif states.binary_sensor.garage_door_state.state == 'on' %}
open
{% else %}
unknown
{% endif %}
friendly_name: 'Garage Door State'
You’ll notice that I have used 4way relay driver, giving you the option to plug up to four garage doors/etc. Due to limitations of CAT5 (8 wires) I have only ended up using 3 of 4 relays. And here is the finished product, just a simple enclosure and voila.
The whole build cost me NZ$68.30 ~ US$50 (devide by 3 = $16 per channel ), with 4 relays (+ US$6) /4 = $14. Ignoring the cost of CAT5 that I had lying around.
I just ordered an Open Garage for $50.
https://opensprinkler.com/product/opengarage/
I’m surprised no one has used this yet. It should be pretty easy to configure with a Rest Switch and Rest Sensor in Home Assistant.
I’ll post my config when it arrives.
It looks interesting, but @ $50 for one door it’s probably one of the more expensive options out there.
Really? I saw recommendations for Garadget which is almost double the cost. I haven’t seen any off the shelf products that are much less than this.
The solution you propose would likely end up costing more than $50. You have to factor in the price of a Rasp Pi, all those components, the wire, the breadboards, not to mention the time to get it configured in the software. Your opening sentence “For a fairly simple, hard-wired solution”, made me laugh after I saw the long explanation after it. We have different opinions on what simple means.
There are a lots of options in this area. Different solutions for different people.
@swbradshaw there is no point to go thermonuclear on this. All I said it’s “One of the more expensive options”… perhaps “middle of the road would be better”.
My explanation is detailed, so anybody new to the subject can just copy & paste the code.
Rasp Pi is a sunk cost to me, as if you want to run my garage controller off homeassistant, I need it regardless. Everything else is calculated off the shop bill, to the last penny and it works out at about US$20 (factoring in the CAT5). This could have been even less, if I’d ordered the parts online, as my local jaycar electronics shop nearly doubles the price on most components used. Yes a bit of time is needed to configure hass, but if you desire to have “Open Garage” working with hass, you’ll need to do the same.
Of course there are horses for courses and each to their own. I actually started with Belkin Wemo Maker, which is (nearly) plug & play solution… all you need is a reed sensor for sensing the door closed/open, at the total sum of approx. US$64. That was my first stab at hass and home automation. A fortnight later I realised that there are much more cost effective solutions, hence I’ve gone with my solution above.
Now I’ve just started toying with the idea of using Wemos D1 Mini w/ relay shield for a wifi based garage controller (or any other project that needs a relay and a sensor). The costing is likely going to be sub US$10… of course not an off-the shelf product…
Look at the Sonoff SV https://www.itead.cc/smart-home/sonoff-sv.html
Flash the Tasmoto firmware by arendst GitHub - arendst/Tasmota: Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
Just need a magnetic reed switch and could probably do that for $10 USD.
I wanted to follow up on the Open Garage. As the name suggests, its open source (hardware and software). I bought the first one from them, but for my other garage I ended up building my own with their source (flashing to ESP8266 chip). That cost was under $10. If you are still looking at D1 mini, its a firmware to checkout. At some point I’ll commit my OpenGarage cover component to HASS so it will be supported.