apexad / eufy-robovac Goto Github PK
View Code? Open in Web Editor NEWNodeJS library to control Eufy RoboVac
License: MIT License
NodeJS library to control Eufy RoboVac
License: MIT License
for robvax as the old way not work to get code for local ID and device ID
Hi,
I see you updated and merged support for the latest RoboVac but I am wondering if you could push an update to NPM as I am using a project called homebridge-eufy-robovac and it is dependent on your changes to work.
Thanks
Kept on getting the following error message.
This plugin slows down Homebridge. The read handler for the characteristic 'On' didn't respond at all!. Please check that you properly call the callback! See https://homebridge.io/w/JtMGR for more info.
Any solutions?
Thanks
This looks really interesting, and I'm going to try it out as soon as I can. Have you thought about adding some kind of mapping algorithm to allow it to find it's way home a little easier?
You mentioned that this works with an Android phone; is there any way to get the localKey with an iPhone and Mac?
I'm on Mac OS high Sierra
iMac:eufy-robovac-master toshibo$ adb shell logcat -e 'tuya.m.my.group.device.list'
-bash: adb: command not found
please help
I'd like to be able to programmatically trigger my X8 to go to named room(s) and clean.
Is this something you'd be interested in implementing? If not could you provide some pointers on if there's a way to explore the available APIs to see what's possible?
"npm run demo" does show some changes when I instruct the vacuum to clean a room. I've included some status responses below.
Initially when auto-cleaning:
{
dps: {
'1': true,
'2': true,
'5': 'auto',
'15': 'Running',
'101': false,
'102': 'Standard',
'103': false,
'104': 87,
'106': 0,
'107': false,
'109': 751,
'110': 16,
'111': 40,
'118': true,
'122': 'Continue',
'130': 'Standard',
'131': false,
'135': true,
'137': 0
}
}
When instructed to clean my hall (and on its way there):
{
dps: {
'1': true,
'2': true,
'5': 'room',
'15': 'Running',
'101': false,
'102': 'Max',
'103': false,
'104': 78,
'106': 0,
'107': false,
'109': 0,
'110': 0,
'111': 40,
'118': true,
'122': 'Continue',
'130': 'Standard',
'131': false,
'135': true,
'137': 0
}
}
While cleaning my hall:
{
dps: {
'1': true,
'2': true,
'5': 'room',
'15': 'Running',
'101': false,
'102': 'Max',
'103': false,
'104': 78,
'106': 0,
'107': false,
'109': 70,
'110': 2,
'111': 40,
'118': true,
'122': 'Continue',
'130': 'Standard',
'131': false,
'135': true,
'137': 0
}
}
Later in the cleaning of the hall:
{
dps: {
'1': true,
'2': true,
'5': 'room',
'15': 'Running',
'101': false,
'102': 'Max',
'103': false,
'104': 72,
'106': 0,
'107': false,
'109': 420,
'110': 10,
'111': 40,
'118': true,
'122': 'Continue',
'130': 'Standard',
'131': false,
'135': true,
'137': 0
}
}
The way to extract the local and device ID via adb doesn't work anymore with Eufy Home 2.4+ as the JSON isn't logged anymore.
The pull request #19 changed the cli arguments for the demo to include the ip address. This is missing from the documentation and the error message.
PS: I have to specify deviceId and ip to connect to my robovac, otherwise the find() method fails.
Struggling to get to device and local ID
Tried everything to get it working with hoobs and HomeBridge I tried everything with a virtual PC and android and I still can't get the local ID I've tried the app for eufy app if anybody can help please in between the appreciated
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
Does the Eufy API expose more granular info like when the vacuum bumps into an object? How would one go about adding this to your API?
I completed all the steps correctly as far as I know, including finding the devID and key for my Robovac, but after completing the setup in Homebridge and restarting it, my Robovac only shows "no respose."
Anyway you could do this in the terminal command like
Hey.
I want to use the Eufy via Homebridge Adapter in my iobroker.
All configured right, but dont work.
In the Debug i can see:
ham.0
2021-10-25 11:25:27.273 debug [2021-10-25 11:25:27] Registering accessory '@lu7as/homebridge-eufy-robovac.Eufy RoboVac'
ham.0
2021-10-25 11:25:27.273 debug [2021-10-25 11:25:27] Plugin '@lu7as/homebridge-eufy-robovac' tried to register with an incorrect plugin identifier: 'homebridge-eufy-robovac'. Please report this to the developer!
ham.0
2021-10-25 11:25:27.272 debug [2021-10-25 11:25:27] Loaded plugin: @lu7as/[email protected]
ham.0
2021-10-25 11:25:26.542 debug [2021-10-25 11:25:26] Registering accessory 'homebridge-eufy-robovac.Eufy RoboVac'
ham.0
2021-10-25 11:25:26.540 debug [2021-10-25 11:25:26] Loaded plugin: [email protected]
ham.0
2021-10-25 11:25:22.490 info Install/Update @lu7as/[email protected]
ham.0
2021-10-25 11:25:22.489 info Install/Update [email protected]
ham.0
2021-10-25 11:25:22.486 info Install/Update the following Libraries: [email protected], [email protected], @lu7as/[email protected]
I just purchased a Robovac G30 Edge and got it running in Homebridge using this plugin. However, it was a bit of challenge. The instructions in the README did not work for me, as BlueStacks doesn't run on M1 and EufyHome 2.3.2 is no longer supported for my device.
The length of the provided data is not a multiple of the block length
(as described here)What worked for me was to spy on traffic on the latest version of the EufyHome app. One of the API responses has the device ID and localKey
.
Instructions for macOS arm64:
brew install android-platform-tools
)adb install -r ./com.eufylife.smarthome_2021-11-25.apk
) (note: I had to increase the free space allocated to the emulator, see https://stackoverflow.com/a/35828035/417083)frida --no-pause -U -l ./frida-script.js -f com.eufylife.smarthome
localKey
Hope this is useful for someone.
I noticed the plugin has a fan speed option setup, but the fan only shows up as an on/off. I am not familiar with plugin creation within this environment so I don't know how to configure the item in homebridge to allow for variable speeds. It seems if the speed can be set in the Home app, then some logic in the setCleanSpeed function like below would allow it to set the fan speed appropriately.
I'd be willing to work on the code portion if someone can suggest how to make the speed variable in the configuration.
let speeds = [[1, 34, 67], [33, 66, 100], [STANDARD, BOOST_IQ, MAX]]
for (row of speeds) {
if (cleanSpeed >= row[0] && cleanSpeed <= row[1]) {
await this.doWork(async () => {
await this.set({
[this.CLEAN_SPEED]: row[2]
})
});
}
}
I've tried everything. I just need personal help at this point. Thanks in advance.
Hello there,
The G30 Hybrid doesnt work with the old Eufy app, so i cant get the key and localid from the app there.
So i tried to use ADB on my W11. I did manage to get the ID but the key seems to not come up.
What i do get is [fetchEncodeKey:65]: md5 key len:16 (and a few others).
Do you have any idea what i can do to continue?
I am following the instructions yet I am unable to get any response in terminal with any logging.
I have the latest version of the app, I only just got my Robovac 35C yesterday, it is all configured in the app, I'm not sure if I'm doing the wrong terminal though (just using CMD on windows).
Am i meant to be doing this in HA terminal?
Hi,
I get this persistent error which appears to prevent any other plugins from displaying their accessories in Hoobs.
24/01/2021, 17:24:51 Error: find() timed out. Is the device powered on and the ID or IP correct?
24/01/2021, 17:24:51 at /home/hoobs/.hoobs/node_modules/tuyapi/index.js:622:13
24/01/2021, 17:24:51 at Timeout._onTimeout (/home/hoobs/.hoobs/node_modules/p-timeout/index.js:25:13)
24/01/2021, 17:24:51 at listOnTimeout (internal/timers.js:554:17)
24/01/2021, 17:24:51 at processTimers (internal/timers.js:497:7)
System details -
Hoobs 3.3.2
Node 14.15.1
Eufy Robovac 2.1.1
Device Eufy 30C Max
Device WiFi 1.1.5
Device MCU 1.2.1
DevId & LocalKey are confirmed correct.
got a copy of the modified app can't get local ID and credentials
Hi,
When I try to run this I get the following error:
Error: Cannot find module './dist/index'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/home/smart/eufy-robovac/demo.js:1:11)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] demo: `node demo.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] demo script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/smart/.npm/_logs/2020-01-06T14_53_32_709Z-debug.log
When I installed it, I got a warning saying that the fsevents optional dependency was skipped because I didn't have the right system, not sure if it is linked to this.
I'm using Ubuntu on an Intel NUC if that helps.
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.