Code Monkey home page Code Monkey logo

eufy-robovac's Introduction

apexad's github stats

eufy-robovac's People

Contributors

aperkins1310 avatar apexad avatar clarkd avatar davidhaas6 avatar dependabot[bot] avatar joshstrange avatar kueblc avatar martijnpoppen avatar wilzi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eufy-robovac's Issues

New Release request

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

Mapping?

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?

iPhone

You mentioned that this works with an Android phone; is there any way to get the localKey with an iPhone and Mac?

command not found

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

Feature request: trigger clean Room instruction for X8?

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
  }
}

BlueStacks preferences - Platform settings

Hello, I don't actually have an issue. Your documentation help me a lot, thanks!

This is just a suggestion. For the BlueStacks method, you could add a mention to check the box for Enable Android Debug Bridge, otherwise the adb command won't work :/

image

Documentation for demo is incomplete

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.

Still can't get local ID and device 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

Can't find the right combination of devId & localKey

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

register with an incorrect plugin identifier

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]

Updated method of getting localKey

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.

What did not work:

  • I am on an M1 (arm64) Mac and BlueStacks is not supported on arm
    • Instead I used Android Studio to run an Android emulator and install the EufyHome APK
  • EufyHome 2.3.2 does not work at all with my device. It gives me a message that the app is outdated and I need to update to use it with the Robovac.
  • The patched EufyHome 2.4.0 APK (from these instructions) also did not work. As described by @lvcabral here, my device shows up but appears as "offline".
  • As such, the script being worked on in mitchellrj/eufy_robovac#1 also does not work, I get the error: The length of the provided data is not a multiple of the block length (as described here)

What did work:

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:

  • Install Android Studio, start Android emulator
  • Install Android platform tools (brew install android-platform-tools)
  • Download the latest EufyHome APK from here and install it on the emulator (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)
  • Install mitmproxy (instructions here)
  • Bypass certificate pinning using Frida (instructions here)
    • Follow all the steps in there, but on the last step, close the app in the emulator, then launch it again using: frida --no-pause -U -l ./frida-script.js -f com.eufylife.smarthome
  • Log in on the EufyHome app with mitmproxy running
  • Inspect responses in mitmproxy, one of them will have the localKey

Hope this is useful for someone.

Feature Request: Set the fan speed

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]
})
});
}
}

Status call not working // devId 22 char long?

hey i grabbed the devid over bluestacks and the recommended eufy app version.
The weird thing is, that the devId has a total length of 22 instead of 20.
I also tried it with the given devId and localKey but the response of the tool was:

image

Eufy G30 hybrid

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?

Unable to get any response from terminal

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?

Error: find() timed out.

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.

Cannot find module './dist/index'

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.