Chamberlain MyQ Garage

Posted on
Sat Apr 26, 2014 10:29 pm
pixelknave offline
Posts: 7
Joined: Apr 18, 2014

Chamberlain MyQ Garage

Hi folks,

I just set up a Chamberlain MyQ Garage (http://www.chamberlain.com/smartphone-c ... -myq-g0201), and would love to integrate this into my Indigo setup. As far as I know, Chamberlain hasn't made any sort of API available, but I'm wondering if anyone has sniffed around and figured out a way to have 3rd party apps communicate with the system (presumably via mychamberlain.com).

Thanks!
-Chris

Posted on
Sat Jul 19, 2014 8:20 am
rainman50 offline
Posts: 295
Joined: Feb 13, 2006
Location: Michigan

Re: Chamberlain MyQ Garage

I would like to know as well.
Because it has to do with security it might be tough to get it going.

Posted on
Wed Jul 23, 2014 11:34 am
crofford offline
Posts: 34
Joined: Jan 26, 2006

Re: Chamberlain MyQ Garage

I'm looking to install two Liftmaster 8500's but my big concern is integration and remote operation...yet another vendor with their own proprietary automation system. I don't like the idea of having to use the intermediary mychamberlain.com and their internet gateway add-on. I currently use IOLINCs with traditional overhead openers. Are the 8500's different where the push button remote connects? Can I just add my IOLINC's to the 8500?

Posted on
Thu Jul 24, 2014 1:49 pm
jay (support) offline
Site Admin
User avatar
Posts: 18212
Joined: Mar 19, 2008
Location: Austin, Texas

Re: Chamberlain MyQ Garage

This is a better question for INSTEON since they sell the garage door kit and probably know which brands and models work.

Jay (Indigo Support)
Twitter | Facebook | LinkedIn

Posted on
Wed Aug 13, 2014 3:24 pm
brentb offline
Posts: 33
Joined: Jan 20, 2014

Re: Chamberlain MyQ Garage

crofford wrote:
I'm looking to install two Liftmaster 8500's but my big concern is integration and remote operation...yet another vendor with their own proprietary automation system. I don't like the idea of having to use the intermediary mychamberlain.com and their internet gateway add-on. I currently use IOLINCs with traditional overhead openers. Are the 8500's different where the push button remote connects? Can I just add my IOLINC's to the 8500?


any luck with this? I just got a new Chamberlain garage door opener this week, and want to integrate it into indigo.

Posted on
Sat Oct 11, 2014 3:38 pm
Thorvald offline
Posts: 4
Joined: Nov 12, 2009

Re: Chamberlain MyQ Garage

Good luck with this. They are famous for closed systems.

Honestly I'd simply perform the following:

1. Pickup a Chamberlain Remote and pair to your openers.
2. Open it up and solder wires to the button contacts for how ever many doors you want to control.
3. Connect wires to any ZWave in Insteon etc Dry Contact Relay device.
4. Program those relays as "Garage Door Opener"
5. Activate relay(s) and enjoy.

You might also try adding a battery eliminator circuit to power the remote but then again, they last for years on the coin cells so might be a waste of effort.

I did something similar to this with my Motorcycle using a "double tap" device. I simply double tap my fog light switch and it activates a relay wired to a garage door opener buried inside my frame. Works brilliantly.

Then wire up a door contact of some sort so you can keep a live status of the door as well.

Cheers
Tim

Posted on
Fri Oct 17, 2014 1:45 pm
sarahcat offline
Posts: 144
Joined: Apr 16, 2011

Re: Chamberlain MyQ Garage

I just bought a Ford Escape that has a 'universal' 3 button garage door opener. I have a carport and not a garage, so I have no door and no opener. Is is possible to buy an interface that I could connect to Indigo that would allow me to use this transmitter to control Indigo devices without buying a garage door opener? I basically need some sort of transponder/protocol convertor.

Posted on
Fri Apr 01, 2016 1:14 pm
acesandeights18 offline
Posts: 12
Joined: Mar 11, 2016

Re: Chamberlain MyQ Garage

I found unpublished APIs.
http://docs.unofficialliftmastermyq.apiary.io/#
Will this make it possible for a Indigo plugin?
:)

Posted on
Fri Apr 01, 2016 4:57 pm
RichP offline
Posts: 7
Joined: Mar 30, 2016

Re: Chamberlain MyQ Garage

They have it running on the ISY994 so looks like it is possible:

https://github.com/Einstein42/myq-garage

Posted on
Fri Apr 15, 2016 12:55 pm
mediabox offline
Posts: 48
Joined: Apr 15, 2016
Location: chicago, il

Re: Chamberlain MyQ Garage

Keying of what Thorvald wrote I would suggest:

Instead of hacking a garage door transmitter, just take the Zwave/Indigo relay device and wire it in parallel to the garage door button. Then create a "on" trigger event with an auto off in 1 second. This would emulate someone pressing the garage door button for 1 second.

Pair it up with a siren to make some noise before the door moves (action group). Think that makes it OSHA (?) complaint.

Posted on
Fri Apr 22, 2016 10:42 am
gskarp offline
Posts: 143
Joined: Apr 19, 2012

Re: Chamberlain MyQ Garage

I was told by my Garage door guy that it uses a circuit board so I wouldn't be able to use the insteon contact switch. I would love to figure out how to get it to work with Indigo.

Posted on
Sun May 29, 2016 6:35 am
Bollar offline
Posts: 528
Joined: Aug 11, 2013

Re: Chamberlain MyQ Garage

As luck would have it, my garage door opener broke and I had to replace it yesterday. Given my requirements, I wound up getting the MyQ. Based on the comprehensive script at https://github.com/Einstein42/myq-garage here are a couple of scripts I hacked up. Note that this script requires the REQUESTS module. Documenting that is outside my scope.

Although I'm not a fan of needing internet connectivity to open a garage door, this is actually a fairly economical solution compared to the alternative. The highest-end door at Home Depot is the Chamberlain HD950WF and it was $238 yesterday http://www.homedepot.com/p/Chamberlain- ... /205880822 . The Insteon Garage Door Control & Status IO-Linc is $80 on its own http://www.smarthome.com/insteon-74551- ... s-kit.html

The security token seems to have a short expiration, so I get a new one each time my scripts run. I don't know how often it's safe to poll -- I have the status script scheduled for 1 minute.

There are ways to make the scripts cleaner and more useful, but these just pull the elements I needed and I just made them Action Groups so I could make a Virtual Device.

Getting Current System Status
Code: Select all
import requests

from requests.auth import HTTPBasicAuth
from requests.utils import quote


appid = (indigo.variables['chamberlainAppID'].value)
key = (indigo.variables['chamberlainSecurityToken'].value)
username = (indigo.variables['chamberlainUserID'].value)
password = (indigo.variables['chamberlainPassword'].value)

login_url = 'https://myqexternal.myqdevice.com/Membership/ValidateUserWithCulture?appid=' + appid + '&securityToken=null&username=' + username + '&password=' + password + '&culture=en'

r = requests.get(login_url)

data = r.json()

# indigo.server.log(str(data))

key = data['SecurityToken']

indigo.variable.updateValue('chamberlainSecurityToken', value=(key))

login_url = 'https://myqexternal.myqdevice.com//api/UserDeviceDetails?appId=' + appid + '&securityToken=' + key

r = requests.get(login_url)

data = r.json()

statRangeRover = data['Devices'][2]['Attributes'][3]['Value']
statRangeRoverDevice = data['Devices'][2]['DeviceId']
statTesla = data['Devices'][3]['Attributes'][3]['Value']
statTeslaDevice = data['Devices'][3]['DeviceId']

if statRangeRover == '1':
   statRangeRoverStr = 'Open'
if statRangeRover == '2':
   statRangeRoverStr = 'Closed'
if statRangeRover == '3':
   statRangeRoverStr = 'Stopped'
if statRangeRover == '4':
   statRangeRoverStr = 'Opening'
if statRangeRover == '5':
   statRangeRoverStr = 'Closing'

if statTesla == '1':
   statTeslaStr = 'Open'
if statTesla == '2':
   statTeslaStr = 'Closed'
if statTesla == '3':
   statTeslaStr = 'Stopped'
if statTesla == '4':
   statTeslaStr = 'Opening'
if statTesla == '5':
   statTeslaStr = 'Closing'


indigo.variable.updateValue('chamberlainRangeRoverStat', value=str(statRangeRoverStr))
indigo.variable.updateValue('chamberlainRangeRoverStatDeviceID', value=str(statRangeRoverDevice))
indigo.variable.updateValue('chamberlainTeslaStat', value=str(statTeslaStr))
indigo.variable.updateValue('chamberlainTeslaStatDeviceID', value=str(statTeslaDevice))


Open Garage Door
Change 'AttributeValue' to 0 to Close Garage Door
Code: Select all
import requests

from requests.auth import HTTPBasicAuth
from requests.utils import quote


appid = (indigo.variables['chamberlainAppID'].value)
key = (indigo.variables['chamberlainSecurityToken'].value)
username = (indigo.variables['chamberlainUserID'].value)
password = (indigo.variables['chamberlainPassword'].value)
deviceid = (indigo.variables['chamberlainTeslaStatDeviceID'].value)

login_url = 'https://myqexternal.myqdevice.com/Membership/ValidateUserWithCulture?appid=' + appid + '&securityToken=null&username=' + username + '&password=' + password + '&culture=en'

r = requests.get(login_url)

data = r.json()

indigo.server.log(str(data))

key = data['SecurityToken']

indigo.variable.updateValue('chamberlainSecurityToken', value=(key))

post_url = 'https://myqexternal.myqdevice.com/api/deviceattribute/putdeviceattribute'

# AttributeValue of 1 is Open, 0 is Closed
payload = {
   'ApplicationId': appid,
   'AttributeName': 'desireddoorstate',
   'DeviceId': deviceid,
   'AttributeValue': 1,
   'SecurityToken': key
   }


r = requests.put(post_url, data=payload)


indigo.server.log(str(r))

data = r.json()

indigo.server.log(str(data))


Toggle Garage Door
Code: Select all
import requests

from requests.auth import HTTPBasicAuth
from requests.utils import quote


appid = (indigo.variables['chamberlainAppID'].value)
key = (indigo.variables['chamberlainSecurityToken'].value)
username = (indigo.variables['chamberlainUserID'].value)
password = (indigo.variables['chamberlainPassword'].value)
deviceid = (indigo.variables['chamberlainTeslaStatDeviceID'].value)

# Get Security Token
login_url = 'https://myqexternal.myqdevice.com/Membership/ValidateUserWithCulture?appid=' + appid + '&securityToken=null&username=' + username + '&password=' + password + '&culture=en'
r = requests.get(login_url)
data = r.json()

key = data['SecurityToken']

indigo.variable.updateValue('chamberlainSecurityToken', value=(key))

# Check Door Status
indigo.variable.updateValue('chamberlainSecurityToken', value=(key))

login_url = 'https://myqexternal.myqdevice.com//api/UserDeviceDetails?appId=' + appid + '&securityToken=' + key

r = requests.get(login_url)

data = r.json()

statRangeRover = data['Devices'][2]['Attributes'][3]['Value']
statRangeRoverDevice = data['Devices'][2]['DeviceId']
statTesla = data['Devices'][3]['Attributes'][3]['Value']
statTeslaDevice = data['Devices'][3]['DeviceId']

if statRangeRover == '1':
   statRangeRoverStr = 'Open'
if statRangeRover == '2':
   statRangeRoverStr = 'Closed'
if statRangeRover == '3':
   statRangeRoverStr = 'Stopped'
if statRangeRover == '4':
   statRangeRoverStr = 'Opening'
if statRangeRover == '5':
   statRangeRoverStr = 'Closing'

if statTesla == '1':
   statTeslaStr = 'Open'
if statTesla == '2':
   statTeslaStr = 'Closed'
if statTesla == '3':
   statTeslaStr = 'Stopped'
if statTesla == '4':
   statTeslaStr = 'Opening'
if statTesla == '5':
   statTeslaStr = 'Closing'


indigo.variable.updateValue('chamberlainRangeRoverStat', value=str(statRangeRoverStr))
indigo.variable.updateValue('chamberlainRangeRoverStatDeviceID', value=str(statRangeRoverDevice))
indigo.variable.updateValue('chamberlainTeslaStat', value=str(statTeslaStr))
indigo.variable.updateValue('chamberlainTeslaStatDeviceID', value=str(statTeslaDevice))

#Toggle State If Closed, Then Open
if statTesla == '1':
   desiredState = '0'
elif statTesla == '2':
   desiredState = '1'
else:
   sys.exit()


post_url = 'https://myqexternal.myqdevice.com/api/deviceattribute/putdeviceattribute'
payload = {
   'ApplicationId': appid,
   'AttributeName': 'desireddoorstate',
   'DeviceId': deviceid,
   'AttributeValue': desiredState,
   'SecurityToken': key
   }
r = requests.put(post_url, data=payload)
data = r.json()
indigo.server.log(str(data))

Insteon / Z-Wave / Bryant Evolution Connex /Tesla / Roomba / Elk M1 / SiteSage / Enphase Enlighten / NOAA Alerts

Posted on
Thu Jun 09, 2016 9:54 am
gregjsmith offline
Posts: 946
Joined: Apr 01, 2003
Location: Rio Rancho, NM

Re: Chamberlain MyQ Garage

What is the Requests module?

Posted on
Thu Jun 09, 2016 10:37 am
Bollar offline
Posts: 528
Joined: Aug 11, 2013

Re: Chamberlain MyQ Garage

gregjsmith wrote:
What is the Requests module?

it's a Python add-on that simplifies dealing with accessing data over the internet.

When I get home tonight, I'll find the references on how to install it on this forum.

Insteon / Z-Wave / Bryant Evolution Connex /Tesla / Roomba / Elk M1 / SiteSage / Enphase Enlighten / NOAA Alerts

Posted on
Thu Jun 09, 2016 12:33 pm
gregjsmith offline
Posts: 946
Joined: Apr 01, 2003
Location: Rio Rancho, NM

Re: Chamberlain MyQ Garage

Thanks. I would like to try these scripts out.

Who is online

Users browsing this forum: No registered users and 0 guests