1.0.6 • Published 4 years ago

homebridge-grumptechgaragedoor v1.0.6

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

GrumpTech Garage Door


A plug-in component for Homebridge that provides control and status of one or more garage doors using a Raspberry PI. (some assembly required)

To provide some measure of security, preventing unintended opening/closing of the doors, a software lock will prevent control of the door. The lock is enabled by default and the state of the lock is not preserved between sessions. (Refer to the Limitations and Known Issues section below)

GrumpTech Garage Door supports both a proximity switch and sonar based sensors to detect the state of the door.

Installation

This module is not intended to provide an extensible API.

npm i homebridge-grumptechgaragedoor

Configuration

The plug-in allows for user specified configuration of the digital input/output lines to use as well as the type of sensors to use for detecting the door. The config_sample.json file located in ./config shows an example of many of the user configurable settings.

Bridge(bridge)

KeyDescriptionValue(s)Default(s)Remark(s)
usernameIdentifier in the form of a globally-unique colon-delimited EUI-48 multicast MAC address.MAC AddressTakes the form (xx:xx:xx:xx:xx:xx)

Platforms(platforms)

Settings for the GrumpTech Garage Door platform.

KeyDescriptionValue(s)Default(s)Remark(s)
platformIdentifier for the name of the Homebridge platform.Any valid non-null stringGrumpTechGarageSystemPlatformMust match the text in the config_info/platform entry of the package.json file.Recommended to leave as-is.Rebuild required if changed.
nameIdentifier for the name of the Homebridge plug-in.Any valid non-null stringhomebridge-GrumpTechGarageSystemIdentifier for the name of the Homebridge plug-in. Must match the text in the config_info/plugin entry of the package.json file.Recommended to leave as-is.Rebuild required if changed.

System(platforms/platform/system)

Settings used to define & configure the garage door system.

KeyDescriptionValue(s)Default(s)Remark(s)
gpio_mode(Optional) Specify the pin numbering system to use for identifying & accessing the digital input/output resources on the Raspberry Pi.BCM, RPIBCMRefer to the rpi-gpio node module for more documentation.Note: Most development and testing was done using BCM mode
heartbeat(Optional) The digital output used to toggle a heartbeat.Any valid digital output resource on the RPi4 (BCM) / 7 (RPI)Assumed to be connected to a LED or other indicator.Must be specified according to the 'gpio_mode'.

Doors(platforms/platform/system/doors)

An array of doors in the system.

KeyDescriptionValue(s)Default(s)Remark(s)
nameIdentifier for the doorAny valid non-null stringDoor names must be unique, as they are used internally for identification.
state_indicatorThe digital output used to show the state of the doorAny valid digital output resource on the RPiAssumed to be connected to a LED or other indicator.Must be specified according to the 'gpio_mode'.
control_requestThe digital output used to control a relay that is used to initiate the door open/close operationAny valid digital output resource on the RPiMust be specified according to the 'gpio_mode'.
manual_control_reqestThe digital input that is used to initiate a door open/close operation from direct hardware access.Any valid digital input resource on the RPiAssumed to be a push button or some other form of digital input control.Must be specified according to the 'gpio_mode'.
soft_lockedThe initial state of the software lock.true, falsetrue(Optional)true indicates that the software lock default to the locked state.Refer to the Limitations and Known Issues section

Detection Sensors(platforms/platform/system/doors/detect_sensors)

An array of sensors used to detect the state of the door. The plug-in only functionally supports two active sensors. One sensor to detect the door opening and another to detect closing. Additional sensors can be specified even though not active, which can be helpful during development & debug.

KeyDescriptionValue(s)Default(s)Remark(s)
idUnique name identifying this sensorAny non-null stringThe id field is only used for debugging.Uniqueness of the name is not checked or enforced
classClassification/Type for this sensorSonarSensor, ProximitySwitchSensorCase sensitive
functionDetection function for this sensorOPEN, CLOSEOnly the first OPEN and CLOSE sensor will be detected. A function other than OPEN or CLOSE will be ignored. Case Insensitive.

Sensor Configuration(platforms/platform/system/doors/detect_sensors/config)

A collection of configuration settings appropriate for the sensor classification specified.

Sonar Sensors

KeyDescriptionValue(s)Default(s)Remark(s)
polling_interval(Optional) Interval, specified in seconds, over which to measure distance from the sensorAny positive number greater than or equal to 0.25 seconds.5.0 secondsThe minimum bound accounts for the maximum measurement cycle of 60ms-100ms and prevents overlapping trigger requests with the resulting echo signal
trigger_outThe digital output used to initiate a sonar distance measurement.Any valid digital output resource on the RPi.Must be specified according to the 'gpio_mode'.
echo_inThe digital input that is used read the echo signal from the sensor, which is used to determine the distance to the object being measured.Any valid digital input resource on the RPiMust be specified according to the 'gpio_mode'.
distance_threshold_change_notification(Optional) Distance threshold, specified in meters, which must be exceeded for the sensor to raise a distance_changed event.Any positive number greater than 0.00.08 metersThe distance_changed event is not currently used in this application
detect_threshold_minMinimum threshold, specified in meters, to define a measurement range for detecting the object.Any number greater than or equal to 0.0Used in conjunction with detect_threshold_max. Distance measurements outside of the defined range will result in the sensor indicating that the object is not detectedMust be less than detect_threshold_max
detect_threshold_maxMaximum threshold, specified in meters, to define a measurement range for detecting the object.Any number greater than 0.0Used in conjunction with detect_threshold_min. Distance measurements outside of the defined range will result in the sensor indicating that the object is not detectedMust be greater than detect_threshold_min

Proximity Sensor

KeyDescriptionValue(s)Default(s)Remark(s)
detect_inThe digital input that is used to detect the door state, as defined by the sensorAny valid digital input resource on the RPiMust be specified according to the 'gpio_mode'.
debounce_time(Optional) The time, in seconds, to debounce the sensor inputAny number greater than or equal to 1.01.0 secondThis is the time required to see no further signal change after detecting the most recent signal state change
mode(Optional) Flag indicating if the switch is configured as normally closed or normally opentrue, falsetruetrue indicates normally closed and false indicates normally open

Limitations and Known Issues

Some applications may not properly render these accessories by limiting the accessory characteristics presented to the user. Notably, the default Apple Home application for iOS and macOS is among these. At the present time, it is recommended that the Home+ application for iOS by Matthias Hochgatterer (https://apps.apple.com/us/app/home-4/id995994352) be used to control these accessories.

  • Software Lock: The Apple Home application for both iOS and macOS does not present the user with the ability to control the lock. To work around this problem, the user may configure the plugin to set the default lock state to unlocked. However, the recommended solution is to use the Home+ application to control the plugin.
1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago