apexad / eufy-robovac

NodeJS library to control Eufy RoboVac
MIT License
59 stars 17 forks source link

Can't find the right combination of devId & localKey #13

Closed dallombra closed 4 years ago

dallombra commented 4 years ago

Hi there, when trying to find the devId/LocalKey combo, I can't seem to find exactly what's needed. Looking at the log file, I have the following

device_key --> 16 digits alphanumeric local_code --> 16 digits alphanumeric device_id --> 36 digits alphanumeric (including 4 dashes - ) These are the only things I can find in the logs, but no combinations of those actually result in a successful connection.

Any ideas?

To add more context, I'm using the latest version of Bluestack on Windows 10 and using the linked APK for the EUFY Home app

apexad commented 4 years ago

Try this to get what I call the 'Devce Id' or let me know if it is the same as something you already got.

The Home Assistant Eufy Page shows how to get the local key (access token):

https://www.home-assistant.io/components/eufy/

curl -H "Content-Type: application/json" -d '{"client_id":"eufyhome-app", "client_Secret":"GQCpr9dSp3uQpsOMgJ4xQ", "email":"[replace by your eufy login email", "password":"[replace by your eufy login password]"}' https://home-api.eufylife.com/v1/user/email/login
curl -H token:[replace by access_token from previous command] -H category:Home https://home-api.eufylife.com/v1/device/list/devices-and-groups

"access_token" can be get from the first command "id" is "device":{"id" from 2nd command "type" is "product_code" from 2nd command

Then try local_code or device_key (from what you got prior with Bluetacks) for what I generally call 'local key'.

dallombra commented 4 years ago

Hi, thanks for the help and sorry for the duplicates!

using these commands I'm getting exactly the same values I found from Bluestack, and still any combinations tried gets the errors.

dallombra commented 4 years ago

If it helps, this is the error displayed by Homebridge after the restart (same error no matter which combination of ID/localkey

(node:718) UnhandledPromiseRejectionWarning: Error: find() timed out. Is the device powered on and the ID or IP correct?
    at /homebridge/node_modules/homebridge-eufy-robovac/node_modules/tuyapi/index.js:622:13
    at Timeout._onTimeout (/homebridge/node_modules/homebridge-eufy-robovac/node_modules/p-timeout/index.js:25:13)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7)
(node:718) 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:718) [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.
apexad commented 4 years ago

@dallombra Please make sure the Eufy app is closed in BlueStacks and all other devices, then restart Homebridge.

dallombra commented 4 years ago

unfortunately that doesn't seem to make any difference. I have the codes saved. haven't opened bluestack or the app directly in days!

apexad commented 4 years ago

One other thing to check is setting up your router to always give devices the same IP address. This could be the issue. Otherwise, I cannot really help further on this but hopefully I will get time to work on #14 soon!