homebridge-plugin-eufy-security
homebridge-plugin-eufy-security copied to clipboard
Nothing shows in Homebridge App
I have installed the plugin in homebridge and supplied valid credentials, no accessories ever appear. Are there any additional instructions we should be following? I have restarted Homebridge multiple times, nothing ever appears. This is a Battery 2K Doorbell.
Plugin version - 0.0.3 Homebridge - v1.2.3 NPM - 6.14.7
12/1/2020, 8:17:03 PM] [EufySecurityHomebridgePlugin] credentials found. reusing them...
Try the 0.1.1 version I just published. Start with homebridge -D
and see if there are any logs
I have installed the plugin in homebridge and supplied valid credentials, no accessories ever appear. Are there any additional instructions we should be following? I have restarted Homebridge multiple times, nothing ever appears. This is a Battery 2K Doorbell.
Plugin version - 0.0.3 Homebridge - v1.2.3 NPM - 6.14.7
12/1/2020, 8:17:03 PM] [EufySecurityHomebridgePlugin] credentials found. reusing them...
I'm having the same issue too.
Edit: I removed the log due to security reasons.
I've updated to 0.1.1 and I'm still having this exact issue, including the part where the only thing the log says is [EufySecurityHomebridgePlugin] credentials found. reusing them...
I have the original 2K Battery doorbell (the one that connects to the Home Base 2).
Hi!
I have used a previous version of the plug-in with the exact same Doorbell. It worked after installing twice.
I've uninstalled and reinstalled so many times. I've installed while it's already installed. I've tried from the terminal and from the HomeBridge UI. I've restarted the server repeatedly. Set up a new guest account for the doorbell, turned off 2FA, nothing.
I'm running HomeBridge on a Synology NAS through Docker, if that makes a difference.
I'm having the same issue too. I'm sending you a zip of the home bridge.log file
You might want to take this attachment down and change your eufy password ASAP as it was in the above log file.
I ran homebridge in debug mode and below is the only additional information displayed in the logs.
[12/2/2020, 4:35:38 AM] [EufySecurityHomebridgePlugin] Initializing EufySecurityHomebridgePlugin platform... [12/2/2020, 4:35:38 AM] [EufySecurityHomebridgePlugin] Config { username: '[email protected]', password: 'xxxxx', platform: 'EufySecurityHomebridgePlugin' } [12/2/2020, 4:35:38 AM] [EufySecurityHomebridgePlugin] Finished initializing platform: undefined
I'm having this exact same issue. I spent some time debugging with log files and this like seems to be where it bails:
https://github.com/birkir/homebridge-plugin-eufy-security/blob/master/src/platform.ts#L82
I cannot get passed that. I do currently have 2FA turned off for testing. I have a wired doorbell, but I don't think it matters in this case.
I'm having this exact same issue. I spent some time debugging with log files and this like seems to be where it bails:
https://github.com/birkir/homebridge-plugin-eufy-security/blob/master/src/platform.ts#L82
I cannot get passed that. I do currently have 2FA turned off for testing. I have a wired doorbell, but I don't think it matters in this case.
I initially had 2FA turned on as well, but disabled for testing. Not sure if that has something to do with it not working or not.
Same! I had 2FA on at first, and it won't work for me. Even rolling back my config file and completely setting up the plug-in from scratch, it still says it found existing credentials and is reusing them. I think this is the problem.
I got same issue. Got the wired door bell. Installed version 0.1.1 of plugin. installing twice did not help.
Startup logs says:
2.12.2020, 15:47:47 (node:9291) UnhandledPromiseRejectionWarning: Error: Request failed: https://security-app-eu.eufylife.com/v1/passport/login -> 26052 - need validate code
2.12.2020, 15:47:47 at /home/hoobs/.hoobs/node_modules/eufy-node-client/build/http/http.utils.js:24:15
2.12.2020, 15:47:47 at Generator.next (--unhandled-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
2.12.2020, 15:47:47 (node:9291) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
I actually tried deleting the "eufy-security-credentials.json" file and running again. It found the new credentials in this case, but still nothing showing in Home.
@raphb83 do you have 2 Factor Auth (2FA) enabled? I believe I saw the same behavior when I did. Currently 2FA isn't supported.
@DaveM8686 same here. I had hoped it was bad credentials due to the 2FA issue, but it didn't help.
@raphb83 do you have 2 Factor Auth (2FA) enabled? I believe I saw the same behavior when I did. Currently 2FA isn't supported.
I'm having the same issue but without 2FA...
With some more debugging and patience (takes 5+ minutes) I finally got an error out of: https://github.com/birkir/homebridge-plugin-eufy-security/blob/master/src/platform.ts#L82
{ RequestError: read ECONNRESET
at ClientRequest.request.once (/homebridge/node_modules/homebridge-plugin-eufy-security/node_modules/got/dist/source/core/index.js:953:111)
at Object.onceWrapper (events.js:286:20)
at ClientRequest.emit (events.js:203:15)
at ClientRequest.origin.emit.args (/homebridge/node_modules/homebridge-plugin-eufy-security/node_modules/@szmarczak/http-timer/dist/source/index.js:39:20)
at TLSSocket.socketErrorListener (_http_client.js:401:9)
at TLSSocket.emit (events.js:198:13)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
at TLSWrap.onStreamRead (internal/stream_base_commons.js:111:27)
name: 'RequestError',
code: 'ECONNRESET',
timings:
{ start: 1606905673656,
socket: 1606905673656,
lookup: 1606905673674,
connect: 1606905673762,
secureConnect: 1606905675424,
upload: 1606905673657,
response: undefined,
end: undefined,
error: 1606905675794,
abort: undefined,
phases:
{ wait: 0,
dns: 18,
tcp: 88,
tls: 1662,
request: NaN,
firstByte: undefined,
download: undefined,
total: 2138 } } }
This is a pretty opaque error in that it just means that the Eufy server abruptly closed the connection (probably due to a timeout after 5m!).
Because I catch that exception and return from the function, it then tries to find the devices, and results in this:
UnhandledPromiseRejectionWarning: RequestError: getaddrinfo EAI_AGAIN security-app.eufylife.com security-app.eufylife.com:443
at ClientRequest.request.once (/homebridge/node_modules/homebridge-plugin-eufy-security/node_modules/got/dist/source/core/index.js:953:111)
at Object.onceWrapper (events.js:286:20)
at ClientRequest.emit (events.js:203:15)
at ClientRequest.origin.emit.args (/homebridge/node_modules/homebridge-plugin-eufy-security/node_modules/@szmarczak/http-timer/dist/source/index.js:39:20)
at TLSSocket.socketErrorListener (_http_client.js:401:9)
at TLSSocket.emit (events.js:198:13)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
(node:6518) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:6518) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
This is a DNS issue. So I figured out the IP for security-app.eufylife.com (it's a CNAME to AWS, which then resolves to multiple IPs, I picked the first one), and added it to my /etc/hosts
and now I get:
{ HTTPError: Response code 401 (Unauthorized)
at Request.request.once (/homebridge/node_modules/homebridge-plugin-eufy-security/node_modules/got/dist/source/as-promise/index.js:117:42)
at process._tickCallback (internal/process/next_tick.js:68:7)
name: 'HTTPError',
code: undefined,
timings:
{ start: 1606957517771,
socket: 1606957517771,
lookup: 1606957517771,
connect: 1606957517880,
secureConnect: 1606957517984,
upload: 1606957517771,
response: 1606957518074,
end: 1606957518074,
error: undefined,
abort: undefined,
phases:
{ wait: 0,
dns: 0,
tcp: 109,
tls: 104,
request: NaN,
firstByte: 303,
download: 0,
total: 303 } } }`
and when trying to find devices:
UnhandledPromiseRejectionWarning: HTTPError: Response code 401 (Unauthorized)
at Request.request.once (/homebridge/node_modules/homebridge-plugin-eufy-security/node_modules/got/dist/source/as-promise/index.js:117:42)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:7344) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:7344) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
This might be caused by my docker-in-virtualbox-bridged-bridged networking, so I'd love to know if anyone else can confirm.
If you want to try yourself, edit node_modules/homebridge-plugin-security-eufy/dist/platform.js
in your Homebridge installation directory, and look for this line around line 65 (I've added multiple debug lines above, not sure how many):
await this.httpService.registerPushToken(fcmToken);
and replace with:
try {
await this.httpService.registerPushToken(fcmToken);
} catch (e) {
this.log.debug("EXCEPTION!");
this.log.debug(e);
return;
}
If you want to try yourself, edit
node_modules/homebridge-plugin-security-eufy/dist/platform.js
in your Homebridge installation directory, and look for this line around line 65 (I've added multiple debug lines above, not sure how many):await this.httpService.registerPushToken(fcmToken);
and replace with:
try { await this.httpService.registerPushToken(fcmToken); } catch (e) { this.log.debug("EXCEPTION!"); this.log.debug(e); return; }
I was able to find my cached credential .Json file and I deleted it. After doing that and putting in the log statements you stated above, i was able to duplicate what you are seeing. I am not running this in docker though, this is homebridge running on an Ubuntu VM.
[12/3/2020, 2:39:03 AM] [EufySecurityHomebridgePlugin] EXCEPTION!
[12/3/2020, 2:39:03 AM] [EufySecurityHomebridgePlugin] { HTTPError: Response code 401 (Unauthorized)
at Request.request.once (/usr/lib/node_modules/homebridge-plugin-eufy-security/node_modules/got/dist/source/as-promise/index.js:117:42)
at process._tickCallback (internal/process/next_tick.js:68:7)
name: 'HTTPError',
code: undefined,
timings:
{ start: 1606984743636,
socket: 1606984743636,
lookup: 1606984743664,
connect: 1606984743703,
secureConnect: 1606984743748,
upload: 1606984743636,
response: 1606984743794,
end: 1606984743794,
error: undefined,
abort: undefined,
phases:
{ wait: 0,
dns: 28,
tcp: 39,
tls: 45,
request: NaN,
firstByte: 158,
download: 0,
total: 158 } } }
[12/3/2020, 2:39:03 AM] [EufySecurityHomebridgePlugin] Executed didFinishLaunching callback
(node:670387) UnhandledPromiseRejectionWarning: HTTPError: Response code 401 (Unauthorized)
at Request.request.once (/usr/lib/node_modules/homebridge-plugin-eufy-security/node_modules/got/dist/source/as-promise/index.js:117:42)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:670387) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:670387) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
@raphb83 do you have 2 Factor Auth (2FA) enabled? I believe I saw the same behavior when I did. Currently 2FA isn't supported.
As far as i know i do not have 2FA enabled. Sorry about the question: where do i have to look if it is enabled?😬
I am having the same issue. I dont have 2FA enabled. after putting in my credentials and plug in nothing appears in accessories
Also having this issue. On 0.1.1, just got my battery doorbell cam, no 2FA, but nothing shows up in Home.
Getting this error when attempting to use the plugin
I deleted my eufy-security-credentials.json
file as I had changed my password after turning off 2FA and I'm now getting this:
12/4/2020, 10:42:26] [EufySecurityHomebridgePlugin] credentials found. reusing them...
(node:31054) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 shutdown listeners added to [HomebridgeAPI]. Use emitter.setMaxListeners() to increase limit
and this
[12/4/2020, 10:37:59] [EufySecurityHomebridgePlugin] wait a short time (5sec)...
(node:30864) UnhandledPromiseRejectionWarning: HTTPError: Response code 401 (Unauthorized)
at Request.<anonymous> (/usr/local/lib/node_modules/homebridge-plugin-eufy-security/node_modules/got/dist/source/as-promise/index.js:117:42)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:30864) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4)
(node:30864) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
If it's a 2FA related problem, you can try creating an new account and inviting to have read only access to the cameras/doorbells you want to expose. Then use that new account's credentials for this plugin and you can keep 2FA enabled for your admin account.
I'd suggest that's a better and more secure way of setting this up anyway.
If it's a 2FA related problem, you can try creating an new account and inviting to have read only access to the cameras/doorbells you want to expose. Then use that new account's credentials for this plugin and you can keep 2FA enabled for your admin account.
I'd suggest that's a better and more secure way of setting this up anyway.
I’ve done this and it didn’t fix anything. I created a whole new account that never had 2FA, deleted the credentials file, uninstalled the plugin, then redid it all and it’s the same problem.
I added a option to disable push if you like (and fixed the issue that it blocks further code to run).
I also added some debug parameters so you should be able to report better logs for me.
@birkir After updating and enabling debug
[12/5/2020, 12:23:32] [EufySecurityHomebridgePlugin] Initializing EufySecurityHomebridgePlugin platform...
[12/5/2020, 12:23:32] [EufySecurityHomebridgePlugin] Config {
username: 'email-redacted',
password: 'password-redacted',
platform: 'EufySecurityHomebridgePlugin'
}
[12/5/2020, 12:23:32] [EufySecurityHomebridgePlugin] Finished initializing platform: undefined
[12/5/2020, 12:23:33] [EufySecurityHomebridgePlugin] push client disabled
[12/5/2020, 12:23:33] [EufySecurityHomebridgePlugin] Executed didFinishLaunching callback
(node:17243) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 shutdown listeners added to [HomebridgeAPI]. Use emitter.setMaxListeners() to increase limit
I added a option to disable push if you like (and fixed the issue that it blocks further code to run).
I also added some debug parameters so you should be able to report better logs for me.
Version 0.1.2 working with 2FA disabled and wired door bell😃 Great
I added a option to disable push if you like (and fixed the issue that it blocks further code to run).
What does this disable? Notifications?
I also added some debug parameters so you should be able to report better logs for me.
Great!
Here's my current (redacted) logs:
[12/5/2020, 12:32:44 PM] [EufySecurityHomebridgePlugin] Initializing EufySecurityHomebridgePlugin platform...
[12/5/2020, 12:32:44 PM] [EufySecurityHomebridgePlugin] Config {
username: '[email protected]',
password: 'PASSWORDHERE',
enablePush: false,
platform: 'EufySecurityHomebridgePlugin'
}
[12/5/2020, 12:32:44 PM] [EufySecurityHomebridgePlugin] Finished initializing platform: undefined
[12/5/2020, 12:32:44 PM] [EufySecurityHomebridgePlugin] push client disabled
[12/5/2020, 12:32:44 PM] [EufySecurityHomebridgePlugin] Executed didFinishLaunching callback
(node:65778) UnhandledPromiseRejectionWarning: HTTPError: Response code 401 (Unauthorized)
at Request.<anonymous> (/Users/dshafik/.nvm/versions/node/v14.15.1/lib/node_modules/homebridge-plugin-eufy-security/node_modules/got/dist/source/as-promise/index.js:117:42)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:65778) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:65778) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
One issue that can be easily fixed is:
[12/5/2020, 12:32:44 PM] [EufySecurityHomebridgePlugin] Finished initializing platform: undefined
-- this.log.debug("Finished initializing platform:", this.config.name);
++ this.log.debug("Finished initializing platform:", this.config.platform);
But that's not going to impact anything of consequence.
Still nothing for me, with push on or off.
Is there a dependent package for this? Like a camera or doorbell one?