myQ (Liftmaster and Chamberlain) garage and myQ devices plugin for Homebridge.
myQ Liftmaster and Chamberlain Plugin for Homebridge
homebridge-myq2
is a HomeBridge plugin to interact with myQ smart garage door openers, made primarily by Liftmaster and Chamberlain.
There are two ways to be able to control a myQ-compatible garage door opener through HomeKit:
-
Liftmaster and Chamberlain make a hardware HomeKit bridge also called Home Bridge (not to be confused with the open source Homebridge project). Unfortunately, some of us have encountered issues with the hardware bridge in a real world setting, where it either stops working or hangs for extended periods of time. Others have encountered no issues and this solution works well.
-
A plugin for homebridge like this one that emulates the capabilities of a myQ bridge.
Either solution will provide a complete solution to automating your garage door and you'll soon be automating your home with HomeKit like you always dreamed of. :)
homebridge-chamberlain exists as another good option, if you prefer. This plugin is based on the now-deprecated and retired homebridge-liftmaster2
with additional bugfixes and contributions by others. The intent is to keep this plugin up-to-date and incorporate additional capabilities as-needed without overly bloating it.
In a nutshell, the aim of this plugin for things to "just work". Without complex configuration options needed for the functionality you would expect from a first-party HomeKit plugin. But of course, those granular options are available as well for the adventurous or those with more esoteric use cases. What does "just work" mean? It means that this plugin will discover all your myQ devices and poll at regular, reasonable intervals for changes in state of a garage door opener or other myQ device and inform HomeKit of those changes. By default. Without additional configuration beyond the login information required for myQ services.
If you are new to Homebridge, please first read the Homebridge documentation.
Install homebridge:
sudo npm install -g --unsafe-perm homebridge
Install homebridge-myq2:
sudo npm install -g homebridge-myq2
Changelog starting with v2.0 is available here.
This plugin has been completely rewritten and updated to work with the modern homebridge APIs.
-
This plugin requires homebridge v1.0 on greater to work. Prior versions will not work. For some, this may be a breaking change if you are running on older versions of homebridge.
-
The myQ API gets regularly updated and unfortunately this results in regularly breaking this and other myQ-related plugins. I've refactored this plugin in part to make it easier to maintain with future breaking changes that may come.
-
By default, this plugin is set to silently fail if it can't login to the myQ API, but continue to retry at regular polling intervals.
-
The configuration block for
config.json
has changed to rename the platform (and it is case sensitive as well). This is a breaking change and you will need to update yourconfig.json
to reflect the updates.
Add the platform in config.json
in your home directory inside .homebridge
.
"platforms": [{
"platform": "myQ",
"email": "[email protected]",
"password": "password"
}]
Feature options allow you to enable or disable certain features in this plugin.
The options
setting is an array of strings used to customize feature options. Available options:
Hide.serialnumber
- hide the opener or gateway identified byserialnumber
from HomeKit.Show.serialnumber
- show the opener or gateway identified byserialnumber
from HomeKit.
The plugin will log all devices it encounters and knows about, and you can use that to guide what you'd like to hide or show.
Before using this feature, you should understand how gateways and openers work in myQ. Gateways are the devices in your home that actually communicate your status to myQ. Openers are attached to gateways. A typical home will have a single gateway and one, or more, openers. If you choose to hide a gateway, you will also hide all the openers associated with that gateway.
If you've hidden a gateway, and all it's openers with it, you can selectively enable a single opener associated with that gateway by explicitly setting a Show.
feature option. This should give you a lot of richness in how you enable or disable devices for HomeKit use.
The priority given to these options works in this order, from highest to lowest priority where settings that are higher in priority can override lower ones:
- Show any opener we've explicitly said to show.
- Show any gateway we've explicitly said to show.
- Hide any opener we've explicitly hidden.
- Hide any gateway we've explicitly hidden.
This step is not required. The defaults should work well for almost everyone.
"platforms": [{
"platform": "myQ",
"name": "myQ",
"email": "[email protected]",
"password": "password",
"debug": false,
"openDuration": 15,
"closeDuration": 25,
"longPoll": 15,
"shortPoll": 5,
"shortPollDuration": 600,
"options": ["Hide.GW12345", "Show.CG6789"]
}]
Fields | Description | Default | Required |
---|---|---|---|
platform | Must always be myQ . |
Yes | |
name | For logging purposes. | No | |
Your myQ account email. | Yes | ||
password | Your myQ account password. | Yes | |
debug | Logging verbosity for debugging purporses. | false | No |
openDuration | Time in s to open garage door completely. |
15 | No |
closeDuration | Time in s to close garage door completely. |
25 | No |
longPoll | Normal polling interval in s . |
15 | No |
shortPoll | Polling interval in s when door state changes. |
5 | No |
shortPollDuration | Duration in s to use shortPoll . |
600 | No |
options | Configure plugin feature options. | [] | No |