Quad Garage Door Opener

Wanted to show off my latest project.

My 80 year old Grandfather wanted to be able to open his shop doors from his phone. Since I use home assistant I decided that would be the best option. After searching for an off the shelf version that would economically support four garage doors, I decided to build my own.

His shop is a detached metal building and wifi reception was non existent, so I decided to go with ZigBee and use an externally mounted antenna. I chose the XBee3 with RP-SMA antenna for the radio and used an Arduino pro to handle the logic side. Door state is reported via reed switches. For the Home Assistant side, I’m using hassio on an RPI3, with a XBee S2. Communication is through ZHA and the controller represents itself as four switches. Temperature is reported using a DS18B20.

Pictures (Forgot to take any after installation):



3 Likes

Nice, neat tidy project. Beats my experimental rats nest of wiring.

Not to criticise, but technically a garage door is usually represented as a ‘cover’ rather than a ‘switch’ in home assistant. Quite how to make that change is unknown to me.

Which reminds me, do you have some software to share with us?

Thanks, While the cover would be the correct way to represent the door, ZHA doesn’t support the cover type yet, so the switch is the best way to represent the door. In order to represent the switch properly I use a template sensor as such.

sensors:                                                                                                                                                      
  shop_door_1:                                                                                                                                               
    device_class: garage_door                                                                                                                                 
    value_template: "{{ is_state('switch.isilentllc_door_1_4195c744_1_6', 'on') }}"                                                                           

And then use the button entity in lovelace.

      - entity: binary_sensor.shop_door_1
        hold_action:
          action: more-info
        name: 'Shop Door 1'
        show_icon: true
        show_name: true
        tap_action:
          action: call-service
          service: switch.turn_on
          service_data:
            entity_id: switch.isilentllc_door_1_4195c744_1_6
        type: entity-button

Code is here (Warning, it’s ugly):