Skip to content
This repository has been archived by the owner on Nov 5, 2021. It is now read-only.

myq chamberlain garage opener not working with homekit #109

Open
mreassassin opened this issue Aug 24, 2018 · 6 comments
Open

myq chamberlain garage opener not working with homekit #109

mreassassin opened this issue Aug 24, 2018 · 6 comments

Comments

@mreassassin
Copy link

after connecting the smart garage opener to wink I do get the 'Garage Door' in homekit, but, when I try to open/close it through homekit it does not respond and in homebridge I get this:

`[2018-8-24 12:08:34] [Wink] Failed to update device: Garage Door (garage_door/145198) { StatusCodeError: 400 - {"data":null,"errors":["Unable to apply desired_state"],"pagination":{}}
at new StatusCodeError (/usr/lib/node_modules/homebridge-wink3/node_modules/request-promise-core/lib/errors.js:32:15)
at Request.plumbing.callback (/usr/lib/node_modules/homebridge-wink3/node_modules/request-promise-core/lib/plumbing.js:104:33)
at Request.RP$callback [as _callback] (/usr/lib/node_modules/homebridge-wink3/node_modules/request-promise-core/lib/plumbing.js:46:31)
at Request.self.callback (/usr/lib/node_modules/homebridge-wink3/node_modules/request/request.js:185:22)
at emitTwo (events.js:126:13)
at Request.emit (events.js:214:7)
at Request. (/usr/lib/node_modules/homebridge-wink3/node_modules/request/request.js:1161:10)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at IncomingMessage. (/usr/lib/node_modules/homebridge-wink3/node_modules/request/request.js:1083:12)
name: 'StatusCodeError',
statusCode: 400,
message: '400 - {"data":null,"errors":["Unable to apply desired_state"],"pagination":{}}',
error:
{ data: null,
errors: [ 'Unable to apply desired_state' ],
pagination: {} },
options:
{ baseUrl: 'https://api.wink.com',
strictSSL: true,
json: true,
method: 'PUT',
uri: '/garage_doors/145198/desired_state',
body: { desired_state: [Object], nonce: 1000005 },
headers:
{ 'User-Agent': 'Manufacturer/Apple-iPhone10_1 iOS/11.2.6 WinkiOS/6.7.0.19-production-release (Scale/2.00)',
Authorization: 'Bearer _UMadVjWHV8B_giIdqQOXP_KjPOIx-qh' },
callback: [Function: RP$callback],
transform: undefined,
simple: true,
resolveWithFullResponse: false,
transform2xxOnly: false },
response:
IncomingMessage {
_readableState:
ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: [Object],
length: 0,
pipes: null,
pipesCount: 0,
flowing: true,
ended: true,
endEmitted: true,
reading: false,
sync: true,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
destroyed: false,
defaultEncoding: 'utf8',
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null },
readable: false,
domain: null,
_events:
{ end: [Array],
close: [Array],
data: [Function],
error: [Function] },
_eventsCount: 4,
_maxListeners: undefined,
socket:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: 'api.wink.com',
npnProtocol: undefined,
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 9,
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: 'api.wink.com',
_readableState: [Object],
readable: false,
domain: null,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
_bytesDispatched: 375,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Object],
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1,
[Symbol(asyncId)]: 2015,
[Symbol(bytesRead)]: 543 },
connection:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: 'api.wink.com',
npnProtocol: undefined,
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 9,
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: 'api.wink.com',
_readableState: [Object],
readable: false,
domain: null,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
_bytesDispatched: 375,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Object],
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1,
[Symbol(asyncId)]: 2015,
[Symbol(bytesRead)]: 543 },
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
headers:
{ 'cache-control': 'no-cache, no-store, max-age=0, must-revalidate',
'content-type': 'application/json; charset=utf-8',
expires: 'Fri, 01 Jan 1990 00:00:00 GMT',
pragma: 'no-cache',
'strict-transport-security': 'max-age=31536000',
vary: 'Accept-Encoding',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-request-id': 'dcfa90d8-7818-45a2-9eaa-e085a1e44f8f',
'x-runtime': '0.043948',
'x-xss-protection': '1; mode=block',
'content-length': '72',
connection: 'Close' },
rawHeaders:
[ 'Cache-Control',
'no-cache, no-store, max-age=0, must-revalidate',
'Content-Type',
'application/json; charset=utf-8',
'Expires',
'Fri, 01 Jan 1990 00:00:00 GMT',
'Pragma',
'no-cache',
'Strict-Transport-Security',
'max-age=31536000',
'Vary',
'Accept-Encoding',
'X-Content-Type-Options',
'nosniff',
'X-Frame-Options',
'SAMEORIGIN',
'X-Request-Id',
'dcfa90d8-7818-45a2-9eaa-e085a1e44f8f',
'X-Runtime',
'0.043948',
'X-XSS-Protection',
'1; mode=block',
'Content-Length',
'72',
'Connection',
'Close' ],
trailers: {},
rawTrailers: [],
upgrade: false,
url: '',
method: null,
statusCode: 400,
statusMessage: 'Bad Request',
client:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: 'api.wink.com',
npnProtocol: undefined,
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 9,
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: 'api.wink.com',
_readableState: [Object],
readable: false,
domain: null,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
_bytesDispatched: 375,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Object],
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1,
[Symbol(asyncId)]: 2015,
[Symbol(bytesRead)]: 543 },
_consuming: true,
_dumped: false,
req:
ClientRequest {
domain: null,
_events: [Object],
_eventsCount: 5,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
upgrading: false,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket: [Object],
connection: [Object],
_header: 'PUT /garage_doors/145198/desired_state HTTP/1.1\r\nUser-Agent: Manufacturer/Apple-iPhone10_1 iOS/11.2.6 WinkiOS/6.7.0.19-production-release (Scale/2.00)\r\nAuthorization: Bearer _UMadVjWHV8B_giIdqQOXP_KjPOIx-qh\r\nhost: api.wink.com\r\naccept: application/json\r\ncontent-type: application/json\r\ncontent-length: 48\r\nConnection: close\r\n\r\n',
_onPendingData: [Function: noopPendingOutput],
agent: [Object],
socketPath: undefined,
timeout: undefined,
method: 'PUT',
path: '/garage_doors/145198/desired_state',
_ended: true,
res: [Circular],
aborted: undefined,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
[Symbol(outHeadersKey)]: [Object] },
request:
Request {
domain: null,
_events: [Object],
_eventsCount: 5,
_maxListeners: undefined,
strictSSL: true,
method: 'PUT',
uri: [Object],
body: '{"desired_state":{"position":0},"nonce":1000005}',
headers: [Object],
readable: true,
writable: true,
explicitMethod: true,
_qs: [Object],
_auth: [Object],
_oauth: [Object],
_multipart: [Object],
_redirect: [Object],
_tunnel: [Object],
_rp_resolve: [Function],
_rp_reject: [Function],
_rp_promise: [Object],
_rp_callbackOrig: undefined,
callback: [Function],
_rp_options: [Object],
setHeader: [Function],
hasHeader: [Function],
getHeader: [Function],
removeHeader: [Function],
localAddress: undefined,
pool: [Object],
dests: [],
__isRequestRequest: true,
_callback: [Function: RP$callback],
proxy: null,
tunnel: true,
setHost: true,
originalCookieHeader: undefined,
_disableCookies: true,
_jar: undefined,
port: 443,
host: 'api.wink.com',
path: '/garage_doors/145198/desired_state',
_json: true,
httpModule: [Object],
agentClass: [Object],
agent: [Object],
_started: true,
href: 'https://api.wink.com/garage_doors/145198/desired_state',
req: [Object],
ntick: true,
response: [Circular],
originalHost: 'api.wink.com',
originalHostHeaderName: 'host',
responseContent: [Circular],
_destdata: true,
_ended: true,
_callbackCalled: true },
toJSON: [Function: responseToJSON],
caseless: Caseless { dict: [Object] },
read: [Function],
body: { data: null, errors: [Array], pagination: {} } } }

`

any ideas??

I've also tried installing the liftmaster/liftmaster2 and chamerlain plugins with no luck. keep getting errors about duplicate devices, though I only have one.
is there a newer version of wink3? how do i check my version and upgrade?

thanks in advance!

@sibartlett
Copy link
Owner

Control of chamberlain garage openers is no longer supported by wink API, it’s been restricted by chamberlain to only work in the Wink app.

The only way to get it working with HomeKit - is to purchase the Chamberlain MyQ Home Bridge.

https://www.chamberlain.com/ca/myq®-home-bridge/p/MYQ-G0303-SP

@christensonautohome
Copy link

christensonautohome commented Aug 28, 2018

I suggest hiding the garage door in your wink config (following the hide_groups guide) and installing the chamberlain plugin for homebridge. It works great for me.

https://github.com/caseywebdev/homebridge-chamberlain

@sibartlett
Copy link
Owner

Good to know about that homebridge-chamberlain still works!

@mreassassin
Copy link
Author

@christensonautohome I've tried homebridge-chamberlain without success before. I'm trying again with the same error:
`
[2018-9-8 15:02:15] [Garage Door] { FetchError: request to https://myqexternal.myqdevice.com/api/v4/User/Validate failed, reason: read ECONNRESET
at ClientRequest. (/usr/lib/node_modules/homebridge-chamberlain/node_modules/node-fetch/index.js:133:11)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at TLSSocket.socketErrorListener (_http_client.js:387:9)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
name: 'FetchError',
message: 'request to https://myqexternal.myqdevice.com/api/v4/User/Validate failed, reason: read ECONNRESET',
type: 'system',
errno: 'ECONNRESET',
code: 'ECONNRESET' }

`

any ideas?

@mreassassin
Copy link
Author

figured it out! for some reason the api or servers may have been down. I actually had to re setup my chamberlain garage door opener from scratch to get it all back. after that I was getting the "found mulitple devices" error. I finally realized that the numbers it was spitting out were the numbers I needed to put in for the 'DiviceId'. it spit out 4 different numbers. process of elimination I chose it on my 3rd try! it was the number that was most unique from the 4. hope this helps the next guy!

thanks!

@sibartlett
Copy link
Owner

Sorry, I am no longer actively maintaining this project. I am no longer using Wink, and do not have the time or resources to dedicate more to ongoing maintenance.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants