myq

package module
v0.0.0-...-7afac17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2023 License: MIT Imports: 15 Imported by: 3

README

MyQ

GoDoc

This project is now archived, see Status below.

myq is a Go package and command-line tool providing access to the Liftmaster / Chamberlain MyQ API.

With the MyQ API you can get a list of devices and open and close garage doors and gates.

Command-line tool

The myq tool can be installed with:

go install github.com/joeshaw/myq/cmd/myq@latest

Run myq by itself to see full usage information.

To list devices:

myq -username <username> -password <password> devices

To open a door:

myq -username <username> -password <password> open <device ID>

To close a door:

myq -username <username> -password <password> open <device ID>

Usernames and passwords can also be provided through the environment variables MYQ_USERNAME and MYQ_PASSWORD.

MyQ protocol

David Pfeffer's MyQ API reference on Apiary was a helpful reference.

David also has an implementation in Ruby: https://github.com/pfeffed/liftmaster_myq

ArrayLab has a Python implementation: https://github.com/arraylabs/pymyq

J. Nunn has a Python implementation that ties in with Amazon Alexa: https://github.com/jbnunn/Alexa-MyQGarage

HJD has a JavaScript implementation: https://github.com/hjdhjd/myq

Status

In October and November 2023, MyQ made their API much harder to access by third parties. See this article on The Verge for more details.

I've replaced my MyQ Wifi module with a Ratgdo, which I strongly recommend. As a result, I am no longer maintaining this project.

License

Copyright 2018-2022 Joe Shaw

myq is licensed under the MIT License. See the LICENSE file for details.

Documentation

Index

Constants

View Source
const (
	ActionClose = "close"
	ActionOpen  = "open"

	StateUnknown = "unknown"
	StateOpen    = "open"
	StateClosed  = "closed"
	StateStopped = "stopped"
)

Variables

View Source
var (
	// Debug indiciates whether to log HTTP responses to stderr
	Debug = false

	// ErrNotLoggedIn is returned whenever an operation is run the
	// user has not logged in
	ErrNotLoggedIn = errors.New("not logged in")
)

Functions

This section is empty.

Types

type Account

type Account struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

type Device

type Device struct {
	Account      *Account
	SerialNumber string
	Type         string
	Name         string
	DoorState    string
}

Device defines a MyQ device

type Session

type Session struct {
	Username string
	Password string
	// contains filtered or unexported fields
}

Session represents an authenticated session to the MyQ service.

func (*Session) DeviceState

func (s *Session) DeviceState(serialNumber string) (string, error)

DeviceState returns the device state (open, closed, etc.) for the provided device serial number

func (*Session) Devices

func (s *Session) Devices() ([]Device, error)

Devices returns the list of MyQ devices

func (*Session) Login

func (s *Session) Login() error

Login establishes an authenticated Session with the MyQ service

func (*Session) SetDoorState

func (s *Session) SetDoorState(serialNumber string, action string) error

SetDoorState sets the target door state (open or closed) for the provided device serial number

Directories

Path Synopsis
cmd
myq

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL