Skip to content

AixNPanes/discoverable-garage-door

Repository files navigation

discoverable-garage-door

GitHub Code style: black GitHub last commit (branch)

A python 3 module that takes advantage of Home Assistant's MQTT discovery protocol via ha-mqtt-discoverable to create a Raspberry PI GPIO garage door implementation.

Table of Contents

Requirements

Raspberry PI

discoverable_garage_door is designed to run on a PI Zero, Pi 3B+ or PI 4B it may run on other models.

Debian

discoverable_garage_door is designed to run on Debian Bullseye it may run on other versions.

Python

dicscverable_garage_door runs on Python 3.10 or later.

Installing

installation

pip install discoverable_garage_door - not yet implemented

Usage

python3 -m discoverable_garage_door

Configuration

a logger configuration file (logger.conf) may be placed in the current directory

a yaml-format configuration file may (.config.yaml) may be placed in the current directory or be specified by the 'config' environment variable

Format

Example:

    mqtt_broker:
      host: local-broker.local
      username: homeassistant
      password: password
      discovery_prefix: homeassistant
      state_prefix: hmd
    gpio:
      button_push_duration_ms: 500
      contact_bounce_time_ms: 200
      contact_pullup: true
      doors:
        - button_pin: 18
          closed_contact_pin: 27
          name: main garage door
          opened_contact_pin: 17

mqtt_broker.host - the name or address of the MQTT broker

mqtt_broker.username - the username to use to connect with the MQTT broker

mqtt_broker.password - the password to use to connect with the MQTT broker

mqtt_broker.discovery_prefix - the prefix to use to publish messages to the MQTT broker, hormally homeassistant

mqtt_broer.state_prefix - the prefix to use to subscribe messages to the MQTT broker

gpio.button_push_duration_ms - the length of time in milliseconds that garage door button is virtually pressed, default 500 (ms)

gpio.contact_bounce_time_ms - the length of time to use to debounce the GPIO inputs, normally 200 (ms)

gpio.contact_pullup - whether to use a pullup for the GPIO inputs(true) or whether a pullup will be externally used (false)

gpio.doors - a list of door descriptions

door.name - the name of the garage door

door.button_pin - the number of the pin used for the button (GPIO numbering)

door.closed_contact_pin - the number of the pin used for the closed contact (GPIO numbering)

door.opened_contact_pin - the number of the pin used for the opened contact (GPIO numbering)

Version History

Version 0.1.1 - Complete build config

Version 0.1.2 - Add Lovelace UI exampe

Version 0.1.3 - Rename logger.conf

Version 0.1.4 - Get test bed operating

Uses ha-mqtt-discoverable

About

A discoverable garage door for Home Assistnat

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published