npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

homebridge-grumptechgaragedoor

v1.0.6

Published

Homebridge platform plugin for Grumpy's Garage Door: https://github.com/pricemi15/grumptechgaragedoor

Downloads

12

Readme

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)

Key | Description | Value(s) | Default(s) | Remark(s) :--- | :----------- | :-------- | :---------- | :--------- username | Identifier in the form of a globally-unique colon-delimited EUI-48 multicast MAC address. | MAC Address | | Takes the form (xx:xx:xx:xx:xx:xx)

Platforms(platforms)

Settings for the GrumpTech Garage Door platform.

Key | Description | Value(s) | Default(s) | Remark(s) :--- | :----------- | :-------- | :---------- | :--------- platform | Identifier for the name of the Homebridge platform. | Any valid non-null string | GrumpTechGarageSystemPlatform |Must match the text in the config_info/platform entry of the package.json file.Recommended to leave as-is.Rebuild required if changed. name | Identifier for the name of the Homebridge plug-in. | Any valid non-null string | homebridge-GrumpTechGarageSystem | Identifier 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.

Key | Description | Value(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, RPI | BCM |Refer 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 RPi | 4 (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.

Key | Description | Value(s) | Default(s) | Remark(s) :--- | :----------- | :-------- | :---------- | :--------- name | Identifier for the door | Any valid non-null string | | Door names must be unique, as they are used internally for identification. state_indicator | The digital output used to show the state of the door | Any valid digital output resource on the RPi | | Assumed to be connected to a LED or other indicator.Must be specified according to the 'gpio_mode'. control_request | The digital output used to control a relay that is used to initiate the door open/close operation | Any valid digital output resource on the RPi | | Must be specified according to the 'gpio_mode'. manual_control_reqest | The digital input that is used to initiate a door open/close operation from direct hardware access. | Any valid digital input resource on the RPi | | Assumed to be a push button or some other form of digital input control.Must be specified according to the 'gpio_mode'. soft_locked | The initial state of the software lock. | true, false | true | (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.

Key | Description | Value(s) | Default(s) | Remark(s) :--- | :----------- | :-------- | :---------- | :--------- id | Unique name identifying this sensor | Any non-null string | | The id field is only used for debugging.Uniqueness of the name is not checked or enforced class | Classification/Type for this sensor | SonarSensor, ProximitySwitchSensor | | Case sensitive function | Detection function for this sensor | OPEN, CLOSE | | Only 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

Key | Description | Value(s) | Default(s) | Remark(s) :--- | :----------- | :-------- | :---------- | :--------- polling_interval | (Optional) Interval, specified in seconds, over which to measure distance from the sensor | Any positive number greater than or equal to 0.25 seconds. | 5.0 seconds | The minimum bound accounts for the maximum measurement cycle of 60ms-100ms and prevents overlapping trigger requests with the resulting echo signal trigger_out | The 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_in | The 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 RPi | | Must 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.0 | 0.08 meters | The distance_changed event is not currently used in this application | detect_threshold_min | Minimum threshold, specified in meters, to define a measurement range for detecting the object. | Any number greater than or equal to 0.0 | | Used 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_max | Maximum threshold, specified in meters, to define a measurement range for detecting the object. | Any number greater than 0.0 | | Used 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

Key | Description | Value(s) | Default(s) | Remark(s) :--- | :----------- | :-------- | :---------- | :--------- detect_in | The digital input that is used to detect the door state, as defined by the sensor | Any valid digital input resource on the RPi | | Must be specified according to the 'gpio_mode'. debounce_time | (Optional) The time, in seconds, to debounce the sensor input | Any number greater than or equal to 1.0 | 1.0 second | This 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 open | true, false | true | true 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.