This is a Python 3.5+ module aiming to interact with the Chamberlain MyQ API.
Code is licensed under the MIT license.
pip install pymyq
pymyq
starts within an aiohttp
ClientSession
:
import asyncio
from aiohttp import ClientSession
async def main() -> None:
"""Create the aiohttp session and run."""
async with ClientSession() as websession:
# YOUR CODE HERE
asyncio.get_event_loop().run_until_complete(main())
To get all MyQ devices associated with an account:
import asyncio
from aiohttp import ClientSession
import pymyq
async def main() -> None:
"""Create the aiohttp session and run."""
async with ClientSession() as websession:
# Valid Brands: 'chamberlain', 'craftsman', 'liftmaster', 'merlin'
myq = await pymyq.login('<EMAIL>', '<PASSWORD>', '<BRAND>', websession)
# Return only cover devices:
devices = await myq.get_devices()
# Return *all* devices:
devices = await myq.get_devices(covers_only=False)
asyncio.get_event_loop().run_until_complete(main())
brand
: the brand of the devicedevice_id
: the device's MyQ IDparent_id
: the device's parent device's MyQ IDname
: the name of the deviceavailable
: if device is onlineserial
: the serial number of the devicestate
: the device's current statetype
: the type of MyQ deviceopen_allowed
: if device can be opened unattendedclose_allowed
: if device can be closed unattended
All of the routines on the MyQDevice
class are coroutines and need to be
await
ed.
close
: close the deviceopen
: open the deviceupdate
: get the latest device state (which can then be accessed via thestate
property). Retrieval of state from cloud is will only be done if more then 5 seconds has elapsed since last request. State for all devices is retrieved through (1) request.close_connection
: close web session connection, will only close the web session if none was provided initially
The code here is based off of an unsupported API from Chamberlain and is subject to change without notice. The authors claim no responsibility for damages to your garage door or property by use of the code within.