Giter Site home page Giter Site logo

homebridge-eufy-robovac's Introduction

homebridge-eufy-robovac

Homebridge plugin for Eufy RoboVac

Features

  • Switch on / off. When off, it will returning to charging dock automatically.

  • Display battery level, and notify on low battery.

  • Display battery charging state.

  • Find robot

Configuration

This easiest way to use this plugin is to use homebridge-config-ui-x.
To configure manually, add to the accessories section of homebridge's config.json after installing the plugin.

Command: npm install -g homebridge-eufy-robovac

Config:

  {
    "accessory": "Eufy RoboVac",
    "name": "Vacuum Cleaner",
    "ip": "<IP address of your vacuum cleaner>",
    "deviceId": "<deviceId/devId>",
    "localKey": "<localKey>",
    "hideFindButton": "<true | false, defaults to false>",
    "hideErrorSensor": "<true | false, defaults to false>",
    "useSwitchService": "<true | false, defaults to false>",
    "debugLog": "<true | false, defaults to false>"
  }

You can find out more about the deviceId/localKey here

Eufy RoboVac will be added to Home app a fan accessory (since HomeKit does not natively support vacuums).
If hideFindButton is not supplied or set to false, a switch that performs the 'Find' function will also be added.
If hideErrorSensor is not supplied or set to false, a Motion Sensor that is active when the vacuum has an error will also be added.
If useSwitchService is true, main Vacuum will be a switch instead of fan.
if debugLog is enabled (set to true), the underlying library will outut many logs.

Get Device ID & Local Key

To get the deviceId/localKey use the eufy-clean-local-key-grabber repository.

In a somewhat recent Python 3 environment (Python 3.9 was used for development), execute the following commands:

pip install -r requirements.txt
python -m eufy_local_id_grabber "<EUFY ACCOUNT EMAIL>" "<EUFY ACCOUNT PASSWORD>"

You will receive the following output:

Home: <home ID>
Device: RoboVac, device ID <device ID>, local key <local key>

This will list all the devices in all the "homes" on your account. Note that it's unclear whether you can have more than one "home" in Eufy.

Thank You

  • mitchellrj - Did most of the legwork in figuring out how to talk to the Eufy
  • seikan - Provided a great example for how to expose a vacuum cleaner in homebridge/homekit

Development

This plugin is written in TypeScript. You should just need to run npm run build after making changes in the src/ directory.

Also this plugin is dependent on eufy-robovac so you will probably want to fork that repo as well.

homebridge-eufy-robovac's People

Contributors

aperkins1310 avatar apexad avatar askovi avatar dependabot[bot] avatar duartemartins avatar joshstrange avatar rosemaryorchard avatar sefasenturk95 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

Watchers

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

homebridge-eufy-robovac's Issues

Plugin stopped working

Hello,

I've been using the plugin on Hoobs for a while now and everything was working flawlessly. Last night all of a sudden, it completely stopped working and the status is stuck on "Updating". I reinstalled the plugin but nothing's changed.

Any tips?

Issues with the RoboVac Plugin

All is setup properly and appropriately within my homebridge.

All works great in my apple HomeKit too. However, only for a short period. Maybe a few hours. I can call it through Siri to start, stop. Etc. As I said all works great.

The error I get thrown is (As well as others of the same nature):

  • _This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.

Ive put the plugin into a child bridge on the homebridge UI, I’ve restarted the server, the docker container, reset the entire homebridge, apple HomeKit, the lot.

I have the correct deviceID and LocalKey too.

I am aware you have said in previous posts on Reddit and on here that the plugin needs to be rebuilt from the ground up. However I’m unsure as to whether this has been done or not in the year since you last posted on Reddit about this plugin.

I am really hoping you might be able to help as this plugin would really help my disabled parter work the hoover without needing to push buttons etc. As its been setup by myself to work with automations within apple HomeKit.

Thanks in advance.

Device descriptions are gone in overview

With version 1.3.1 the issue with the wrong status is gone but now I'm facing the issue that the device's custom names are gone.
WrongNames

The details of each tile is correct. So basically the display name in tiles are ignored. This causes Homekit to display wrong names. In my case I have three RoboVacs which are now all the same.
This is a display issue only.

WrongName2

Individually work, but fail when more than one Robovac is connected

Hi,
I have three robovacs, a G10, 30C and 15C Max. I have the device ID and Localkey for each which i sniffed from bluestacks. When i load them in individually, they work. However, when i try and have more than one vacuum identified it throws out the following error in Homebridge status Log:

"Error: find() timed out. Is the device powered on and the ID or IP correct?
at /usr/local/lib/node_modules/homebridge-eufy-robovac/node_modules/tuyapi/index.js:622:13
at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-eufy-robovac/node_modules/p-timeout/index.js:25:13)
at listOnTimeout (internal/timers.js:554:17)
at processTimers (internal/timers.js:497:7)"

By connecting more than one at a time, none of them work. I have to completely reinstall the plugin when there is a failure. Here is the config file (please excuse the stupid names):
{
"bridge": {
"name": "Homebridge removed",
"username": "removed",
"port": removed,
"pin": "removed"
},
"accessories": [
{
"name": "Claude",
"deviceId": "70636387a4cf12e129ee",
"localKey": "361ba1588facd637",
"hideFindButton": false,
"hideErrorSensor": false,
"useSwitchService": false,
"debugLog": false,
"accessory": "Eufy RoboVac"
},
{
"name": "Effy",
"deviceId": "51066360cc50e33205ae",
"localKey": "8d2631d6498d4e70",
"hideFindButton": false,
"hideErrorSensor": false,
"useSwitchService": false,
"debugLog": false,
"accessory": "Eufy RoboVac"
},
{
"name": "Verity",
"deviceId": "bf8064d5a3e5f3ef17tsod",
"localKey": "2e812507ccb1ce71",
"hideFindButton": false,
"hideErrorSensor": false,
"useSwitchService": false,
"debugLog": false,
"accessory": "Eufy RoboVac"
}
],
"platforms": [
{
"name": "Config",
"port": 8581,
"auth": "form",
"theme": "dark-mode-grey",
"tempUnits": "c",
"lang": "auto",
"platform": "config"
},
{
"platform": "PS4WakerPlatform",
"name": "PS4",
"accessories": [
{
"serial": "03274523235940406",
"model": "CUH-1216A",
"ip": "192.168.1.87",
"credentials": "/home/pi/.ps4-wake.credentials.json"
}
],
"global": {
"timeout": 10000
}
}
]
}

*As an aside, you'll notice the G10 (Verity) has a 22 digit hex - perhaps a new feature for the newer models?

Any help or guidance you can give would be great. I'm pretty new to all this, but i've seen elsewhere people with more than one vacuum so i think it's possible.

Thanks

Accessory not showing in Hoobs

My vac was showing in 1.4. Since updating to 2.0.1, it won't show up at all in either Hoobs or Homekit. Log states:

6/25/2020, 2:06:07 PM The requested accessory "Eufy RoboVac" was not registered by any plugin.
6/25/2020, 2:06:07 PM Your config.json is requesting the accessory "Eufy RoboVac" which has not been published by any installed plugins.

My JSON config is:

    {
        "accessory": "Eufy RoboVac",
        "plugin_map": {
            "plugin_name": "homebridge-eufy-robovac",
            "index": 0
        },
        "name": "RoboVac",
        "hideFindButton": true,
        "hideErrorSensor": true,
        "useSwitchService": false,
        "debugLog": false,
        "deviceId": "78041805XXXXXXXXXX",
        "localKey": "e41XXXXXXXXXXXXXX"
    }

Feature Request: notification within homekit

Not sure if it is possible in general, but the Robovacs give me push notifications when something went wrong (ie. if a device eats up stuff which blocks the mechanics).

Is it possible to catch those notifications? If yes, it would enable me to block all outgoing connections for all robovacs to internet.
Any idea if this is possible?

Robovac Error

I'm getting the following error in the logs:

[homebridge-eufy-robovac] 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://git.io/JtMGR for more info.

Connecting...
Robovac Error {}
Disconnected!
Connecting...
Robovac Error {}
Disconnected!

Is there anything I can do to diagnose this?

not a big deal

Hi, first of all thanks for this plug-in, it is great.

I'm having this logs, I haven't seeing another one reported it here, so I'm just letting you know

[2/17/2021, 11:13:31 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.
[2/17/2021, 11:13:31 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Status Low Battery' was slow to respond! See https://git.io/JtMGR for more info.
[2/17/2021, 11:13:31 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Battery Level' was slow to respond! See https://git.io/JtMGR for more info.
[2/17/2021, 11:13:31 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Charging State' was slow to respond! See https://git.io/JtMGR for more info.

[2/17/2021, 11:15:09 AM] [homebridge-eufy-robovac] 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://git.io/JtMGR for more info.
[2/17/2021, 11:15:09 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Status Low Battery' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[2/17/2021, 11:15:09 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Battery Level' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[2/17/2021, 11:15:09 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Charging State' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.

Control Robovac via home app switches itself off.

As title says, Robovac (15C) turns off after turning on in HomeKit. What happens is very similar to the quick test command @mitchellrj talks about in eufy-robovac.

Where command is either "quickTest" or "status". The quickTest command will:

Connect to your device
Print out the current statuses
Start cleaning
Wait 10 seconds
Pause cleaning
Wait 1 second
Send device home
Wait 1 second
Disconnect & exit

For me:

Press "turn fan on" for Robovac in HomeKit.
Vacuum turns on and exits base.
Switch in HomeKit turns itself off.
Vacuum beeps and returns to base.
Vacuum beeps again and begins charging.

Turning on in HomeKit reproduces this every time.

Attempted restart homebridge & reboot Pi.

Systemctl log when I turn robotic on via home app:

Jul 22 21:04:49 raspberrypi homebridge[28021]: "2": true Jul 22 21:04:49 raspberrypi homebridge[28021]: } Jul 22 21:04:49 raspberrypi homebridge[28021]: Status Updated! Jul 22 21:04:49 raspberrypi homebridge[28021]: Status Updated! Jul 22 21:04:49 raspberrypi homebridge[28021]: Status Updated! Jul 22 21:04:50 raspberrypi homebridge[28021]: Setting: { Jul 22 21:04:50 raspberrypi homebridge[28021]: "2": false Jul 22 21:04:50 raspberrypi homebridge[28021]: } Jul 22 21:04:50 raspberrypi homebridge[28021]: Status Updated! Jul 22 21:04:51 raspberrypi homebridge[28021]: Status Updated! Jul 22 21:04:51 raspberrypi homebridge[28021]: Status Updated! Jul 22 21:04:52 raspberrypi homebridge[28021]: Setting: { Jul 22 21:04:52 raspberrypi homebridge[28021]: "101": true Jul 22 21:04:52 raspberrypi homebridge[28021]: }

Robovac Error

Hi,

I just installed this plugin and when robovac is cleaning, I'm getting a Robovac Error.
After the error all my Homekit accessories are not available anymore.
I turned the debuglog on and this is what's going on:

Found device 78551441bcddc23bf1e4 at 192.168.1.5
Connecting...
Found device 78551441bcddc23bf1e4 at 192.168.1.5
Connecting...
Found device 78551441bcddc23bf1e4 at 192.168.1.5
Connecting...
Found device 78551441bcddc23bf1e4 at 192.168.1.5
Connecting...
Connected!
Connected!
Robovac Error {}
Disconnected!
Disconnected!
(node:24753) UnhandledPromiseRejectionWarning: Error: connection timed out
at Socket. (/usr/local/lib/node_modules/homebridge-eufy-robovac/node_modules/tuyapi/index.js:302:18)
at Object.onceWrapper (events.js:416:28)
at Socket.emit (events.js:310:20)
at Socket._onTimeout (net.js:479:8)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7)
(node:24753) 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:24753) [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.
Connected!
Robovac Error {}
Disconnected!
Status Updated!
Robovac Error {}
Disconnected!

Can you help me out?
Thanks,

Rob

Robovac X8

Hey,

it's not possible to use it for the robovac x8 actually.
I'm not able to claim the local ID.

Vacuum Cleaner reports as off when it is actually on

Just wanted to put this here in case anyone else experiences this issue.

This causes a problem with the 'turn off to return home' feature of the plugin. There is a workaround where you can simply click it back on and then Off again and the Vacuum will return to the base station after several beeps. However, this is not ideal.

In reviewing why this is occurring it seems like the get function is for some reason returning undefined at times and I have yet to figure out why.

Robovac Error Disconnected

I continue to get the error below. Any help troubleshooting this would be appreciated.

Looking for device...
Error: find() timed out. Is the device powered on and the ID or IP correct?
    at /usr/local/lib/node_modules/homebridge-eufy-robovac/node_modules/tuyapi/index.js:622:13
    at Timeout._onTimeout (/usr/local/lib/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)
Connecting...
Error: find() timed out. Is the device powered on and the ID or IP correct?
    at /usr/local/lib/node_modules/homebridge-eufy-robovac/node_modules/tuyapi/index.js:622:13
    at Timeout._onTimeout (/usr/local/lib/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)
Connecting...
Error: find() timed out. Is the device powered on and the ID or IP correct?
    at /usr/local/lib/node_modules/homebridge-eufy-robovac/node_modules/tuyapi/index.js:622:13
    at Timeout._onTimeout (/usr/local/lib/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)
Connecting...
Error: find() timed out. Is the device powered on and the ID or IP correct?
    at /usr/local/lib/node_modules/homebridge-eufy-robovac/node_modules/tuyapi/index.js:622:13
    at Timeout._onTimeout (/usr/local/lib/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)
Connecting...
Robovac Error {}
Robovac Error {}
Robovac Error {}
Disconnected!
Disconnected!
Disconnected!
Disconnected!

Error Sensor Missing

I am not getting the Motion Sensor in the Home app.

I added "hideErrorSensor": false to the JSON configuration for the plugin and it still does not appear after a restart.

No logs even with debug logging enabled.

Pause functionality

Is it possible to add an extra toggle to pause the device? I would really love to ask Siri to pause my robot vacuum sometimes

Error: connection timed out

Getting these errors from time to time and it renders my whole HomeKit operation unusable until I restart Homebridge.

Any ideas what could be causing this error and any possible solution?

    at Socket.<anonymous> (/usr/lib/node_modules/homebridge-eufy-robovac/dist/index.js:1:23097)
    at Object.onceWrapper (events.js:312:28)
    at Socket.emit (events.js:223:5)
    at Socket._onTimeout (net.js:474:8)
    at listOnTimeout (internal/timers.js:531:17)
    at processTimers (internal/timers.js:475:7)```

Robovac Error/Disconnected/Slowness/Warning in Homebridge 1.3.0: Slow to respond

Just a heads up, as long as it still works as it does, I'm happy :) But maybe something can be done about it in the long run:

[2/22/2021, 10:16:53 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.
[2/22/2021, 10:16:53 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Status Low Battery' was slow to respond! See https://git.io/JtMGR for more info.
[2/22/2021, 10:16:53 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Battery Level' was slow to respond! See https://git.io/JtMGR for more info.
[2/22/2021, 10:16:53 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Charging State' was slow to respond! See https://git.io/JtMGR for more info.
[2/22/2021, 10:16:53 AM] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.

Battery Status Not Displayed

I am not getting the Battery Level or Charging State in the Home app.

I can see that it correctly polls my RoboVac:

Data from device: {
dps: {
'2': false,
'5': 'Nosweep',
'15': 'Charging',
'101': true,
'102': 'Max',
'104': 76,
'106': 0,
'107': false,
'109': 0,
'110': 0,
'122': 'Nosweep',
'131': false,
'132': 2504,
'133': 24,
'134': 1,
'137': 0,
'140': '0070000024025042504'
}
}

I am not getting any obvious errors in the log with debugging logs enabled.

I do get this when restarting the plugin:

Error: find() timed out. Is the device powered on and the ID or IP correct?
at /var/lib/homebridge/node_modules/homebridge-eufy-robovac/node_modules/tuyapi/index.js:622:13
at Timeout._onTimeout (/var/lib/homebridge/node_modules/homebridge-eufy-robovac/node_modules/p-timeout/index.js:25:13)
at listOnTimeout (node:internal/timers:573:17)
at processTimers (node:internal/timers:514:7)
Connecting...
Robovac Error {}
Disconnected!

I also get:

[10/02/2024, 13:33:57] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://homebridge.io/w/JtMGR for more info.
[10/02/2024, 13:34:03] [homebridge-eufy-robovac] 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.

Looping and beeping with 1.3.0 update

Just installed 1.3.0 on my homebridge and after restarting homebridge my robovac started looping repeatedly through stop, standby, home over and over again. Pulled the power on my homebridge to stop it.

Accessory not responding.

text-0B579462CFF3-1.txt
Config attached.
Is IP the ip address grabbed using adb or the local IP as per my router?

Homebridge is showing the device in the app, but it is always showing no response, and the accessory is not responding. Sometimes the status is all off in red. Is this git still supported?

2.2.1 - No Find Button, Error Sensor or Battery Status

Hi - installed 2.2.1 and configured for my Eufy C30.
Config UI X doesn't provide me with the options for Find/Error and despite adding them to the config, no such options show up in HomeKit. I also can't see any battery status - is this an issue?

{
"name": "Vacuum Cleaner",
"deviceId": "06868586807d3a1af4f2",
"localKey": "b37a89883999ba27",
"useSwitchService": false,
"debugLog": false,
"hideFindButton": false,
"hideErrorSensor": false,

"accessory": "Eufy RoboVac",
"_bridge": {
"username": "xxxx",
"port": 35270
}
}

UnhandledPromiseRejectionWarning / No Response

Getting this error while running homebridge in debug mode to see what's making it not recognize the Robovac as a device. The "devices" show on Home App (Switch to Find and Fan for Vacuum) but they're always on a "No Response" status.

Error

TuyAPI Connecting to 192.168.6.248... +2ms
[8/10/2019, 7:38:40 AM] [LGtv] webOS - TV state: On
(node:1988) UnhandledPromiseRejectionWarning: Error: connection timed out
    at Socket.<anonymous> (/usr/lib/node_modules/homebridge-eufy-robovac/dist/index.js:1:23283)
    at Object.onceWrapper (events.js:291:20)
    at Socket.emit (events.js:203:13)
    at Socket._onTimeout (net.js:434:8)
    at listOnTimeout (internal/timers.js:531:17)
    at processTimers (internal/timers.js:475:7)
(node:1988) 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: 2)
  TuyAPI Socket closed: 192.168.6.248 +5s
Disconnected!
(node:1988) UnhandledPromiseRejectionWarning: Error: connection timed out
    at Socket.<anonymous> (/usr/lib/node_modules/homebridge-eufy-robovac/dist/index.js:1:23283)
    at Object.onceWrapper (events.js:291:20)
    at Socket.emit (events.js:203:13)
    at Socket._onTimeout (net.js:434:8)
    at listOnTimeout (internal/timers.js:531:17)
    at processTimers (internal/timers.js:475:7)
(node:1988) 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: 3)

Config File

	{
      "accessory": "Eufy RoboVac",
      "name": "Robotina",
      "ip": "192.168.6.248",
      "deviceId": "60608308ecfabc982fba",
      "localKey": "b32c7a55c9f1f301"
    }

I've set a reservation for the vacuum on my router to have this specific IP and I got the keys using the guide provided by mitchellrj using adb and logcat.

Any ideas on what could be happening?

Not responding

Device has been working fine, I'm running hoobs and I've updated to 3.3.3 today and Node 14.16.0

Since then device has become unresponsive, can go into settings and view it's charging, and see the charge level, yet pressing on the device won't activate it.

Also getting this in the log;

05/03/2021, 14:01:25 [HOOBS C4BE@On] The write handler for the characteristic 'On' on the accessory 'Boris the Bastard' was slow to respond! 05/03/2021, 14:01:31 [HOOBS C4BE@On] The write handler for the characteristic 'On' on the accessory 'Boris the Bastard' didn't respond at all!. Please check that you properly call the callback!

Plugin dows down Homebridge, characteristics slow/fail to respond & unhandled promise rejections

I just updated my HomeBridge to v1.3.0, and these entries now appear in the log file when HomeBridge starts:

[date, time] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.
[date, time] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Status Low Battery' was slow to respond! See https://git.io/JtMGR for more info.
[date, time] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Battery Level' was slow to respond! See https://git.io/JtMGR for more info.
[date, time] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Charging State' was slow to respond! See https://git.io/JtMGR for more info.
[date, time] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.
[date, time] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Motion Detected' was slow to respond! See https://git.io/JtMGR for more info.
(node:20736) UnhandledPromiseRejectionWarning: Error: connection timed out
    at Socket.<anonymous> (/usr/lib/node_modules/homebridge-eufy-robovac/node_modules/tuyapi/index.js:303:18)
    at Object.onceWrapper (events.js:420:28)
    at Socket.emit (events.js:314:20)
    at Socket._onTimeout (net.js:483:8)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
(node:20736) 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: 3)
(node:20736) [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.
[date, time][homebridge-eufy-robovac] 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://git.io/JtMGR for more info.
[date, time][homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Charging State' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[date, time][homebridge-eufy-robovac] 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://git.io/JtMGR for more info.
[date, time][homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'Motion Detected' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.

No response

Hi! I'm getting this error in HB:

[11/03/2022, 08:55:56] [homebridge-eufy-robovac] 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://git.io/JtMGR for more info.

Vac shows up in Home but with 'No Response'

Any help much appreciated!

Find My Robot Not Working

It appears I do not have the Find My Robot functionality in the Home app at all.

I added "hideFindButton": false to my json configuration but after a restart it still does not display.

No logs displayed even with debug logging enabled.

Install command on NPM/GitHub readme refers to incorrect package

The readme files on GitHub and NPM for v 1.2.1 and 1.2.0-beta.5 have the following install command shown:

npm install -g homebridge-mysmartblinds-bridge

Presumably this is not the correct package reference, as I believe it should be homebridge-eufy-robovac

Battery state - Apple Home

Hi, finally managed to get the plugin working with a bit of help from Reddit. Works great!

Only one 'issue' within the Homebridge app you can see the Charging state and percentage, is that feature usable within Apple Home? As I cant see any button/feature for it. The only entry that appears is the 3 bundled accessories including the off/on the buzzer and the motion sensor.

Is this a limitation of apple home or am I missing something?

exception on loading config

(node:1696) UnhandledPromiseRejectionWarning: TypeError: Key is missing or incorrect.
at new t.exports (/usr/lib/node_modules/homebridge-eufy-robovac/dist/webpack:/node_modules/eufy-robovac/dist/index.js:1:13622)
at new t (/usr/lib/node_modules/homebridge-eufy-robovac/dist/webpack:/node_modules/eufy-robovac/dist/index.js:1:5798)
at t. (/usr/lib/node_modules/homebridge-eufy-robovac/dist/webpack:/src/index.ts:80:18)
at /usr/lib/node_modules/homebridge-eufy-robovac/dist/webpack:/webpack/bootstrap:83:1
at Object.next (/usr/lib/node_modules/homebridge-eufy-robovac/dist/webpack:/webpack/bootstrap:83:1)
at /usr/lib/node_modules/homebridge-eufy-robovac/dist/webpack:/webpack/bootstrap:83:1
at new Promise ()
at r (/usr/lib/node_modules/homebridge-eufy-robovac/dist/webpack:/webpack/bootstrap:83:1)
at t.setup (/usr/lib/node_modules/homebridge-eufy-robovac/dist/webpack:/src/index.ts:79:2)
at new t (/usr/lib/node_modules/homebridge-eufy-robovac/dist/webpack:/src/index.ts:76:8)
at /usr/lib/node_modules/homebridge/src/server.ts:356:50
at Array.forEach ()
at Server._loadAccessories (/usr/lib/node_modules/homebridge/src/server.ts:329:29)
at Server.start (/usr/lib/node_modules/homebridge/src/server.ts:155:12)
at cli (/usr/lib/node_modules/homebridge/src/cli.ts:80:10)
at Object. (/usr/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (internal/modules/cjs/loader.js:1133:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
at Module.load (internal/modules/cjs/loader.js:977:32)
at Function.Module._load (internal/modules/cjs/loader.js:877:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47
(node:1696) 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:1696) [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.

No response from robovac in HomeKit

[01/03/2022, 20:30:08] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.
[01/03/2022, 20:30:14] [homebridge-eufy-robovac] 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://git.io/JtMGR for more info.
Connecting...
Robovac Error {}
Disconnected!
Connecting...
Robovac Error {}
Disconnected!
Connecting...
Robovac Error {}
Disconnected!
[01/03/2022, 20:30:45] [homebridge-eufy-robovac] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.
[01/03/2022, 20:30:51] [homebridge-eufy-robovac] 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://git.io/JtMGR for more info.

This device is the new Eufy RoboVac X8 with the latest 1.3.1.1 firmware.

Hope this helps with your diagnostics

As stated, this device never goes to online more in HomeKit, jut bounces from Updating to No Response then repeating.

What is weird though is that my TuyaLan plugin detects the device ID but obviously does not connect to It. so the device ID is correct

Feature Request: different cleaning profile

[LOW PRIO]

Hi @apexad
any idea how we could implement different cleaning profiles within homekit?
The remote for the 30c has several different cleaning profiles like "clean edges", "clean in circle" or other things like different fan power.

Not sure if it is possible at all, but I wonder if homekit offers something like a control for this. I guess homekit is not sufficient at this perspective as most of the special features of a robovac is handled by the app.

The background of this is, that my son is now crawling on the floor and I will have to let robovacs clean more often. Basically the edges are from special interest of my son :) So I would like to clean the edges too without doing it manually.

Any idea?

You don't need to code something here, for now I would just like to know your thoughts about this.

Option to emulate "Switch" instead of "Fan"

I know that HomeKit doesn't currently officially support Vacuums which is why it appears as a Fan but is it possible to have an option to appear as a Switch instead as I have multiple real fans in the same room and when I use siri to switch them on and off in bulk my RoboVac also switches on.

no response - id and key set

after sniffing data and editing config.json I am getting logs as follow:

when starting homebridge:

[8/29/2019, 7:35:41 AM] Loading 2 accessories...
[8/29/2019, 7:35:41 AM] [Vacuum] Initializing Eufy RoboVac accessory...
111Config { accessory: 'Eufy RoboVac',
name: 'Vacuum',
ip: '192.168.5.92',
deviceId: '***********************',
localKey: '87076b12de34edb6' }
Connecting...
[8/29/2019, 7:35:41 AM]

and when opening Home app:

Disconnected!
Connecting...
Connecting...
Connecting...
Connected!
{}
Disconnected!
Connected!
(node:17783) UnhandledPromiseRejectionWarning: Error: connection timed out
at Socket.client.setTimeout (/usr/lib/node_modules/homebridge-eufy-robovac/dist/index.js:1:23345)
at Object.onceWrapper (events.js:277:13)
at Socket.emit (events.js:189:13)
at Socket._onTimeout (net.js:446:8)
at listOnTimeout (timers.js:324:15)
at processTimers (timers.js:268:5)
(node:17783) 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:17783) [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.

Every homebridge device is "no response" status after that.

Device ID masked intentionally.

Issue with last version

Hi, I’m having some issues in hoobs using the last version. The log is showing this. I have identified the device id and the local key (but not sure if they are ok)

Thanks!

10/7/2020 16:05:14 (node:6631) UnhandledPromiseRejectionWarning: Error: find() timed out. Is the device powered on and the ID or IP correct?
10/7/2020 16:05:14 at /home/hoobs/.hoobs/node_modules/tuyapi/index.js:619:13
10/7/2020 16:05:15 at Timeout._onTimeout (/home/hoobs/.hoobs/node_modules/p-timeout/index.js:25:13)
10/7/2020 16:05:15 at listOnTimeout (internal/timers.js:549:17)
10/7/2020 16:05:15 at processTimers (internal/timers.js:492:7)
10/7/2020 16:05:15 (node:6631) 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)
10/7/2020 16:05:15 (node:6631) [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.

Can't find the local_key

I’m trying to setup my Eufy Robavac C35 to HA, But I am struggling to get the device_id and de Local_key. I used a Samsung A20e and Bluestack but I did succeed yet.

I used adb logcat and searched for the id and key I found the key but did succeed to find the local_Key. If I search for local_code the value is empty

I tried multiple versions of the app 2.3.1/2.3.2/2.4.0.

Output (*** == hide value) (### == find the device id here)

OkHttp : {"res_code":1,"message":"","devices":[{"id":"(###","sn":"","name":"35C","alias_name":"***","bluetooth":null,"wifi":{"mac":"E0:98:06:06:20:0A","wifi_ssid":"***","lan_ip_addr":"***"},"product":{"id":"cbbebfbb-67f5-11e8-a09e-0242ac130017","name":"35C","region":"US","default_name":"RoboVac","icon_url":"https://d1teb1w17vl5yo.cloudfront.net/eufyhome/products/T2117_addProduct.png","category":"Home","appliance":"Cleaning","connect_type":1,"pictures":[{"code":"addProductIcon","url":"https://d1teb1w17vl5yo.cloudfront.net/eufyhome/products/T2117_addProduct.png","description":""},{"code":"selectDeviceImage","url":"https://d1teb1w17vl5yo.cloudfront.net/eufyhome/products/T2117_selectProduct.png","description":""},{"code":"feedbackImage","url":"https://d1teb1w17vl5yo.cloudfront.net/eufyhome/products/T2117_feedback.png","description":""}],"description":"T2117 RoboVac 35C, connected via EufyHome","product_code":"T2117","wifi_ssid_prefix":"eufy RoboVac 35C","wifi_ssid_prefix_full":"eufy RoboVac 35C-","index":15,"create_time":1493114110,"update_time":1528774126,"is_show":false,"tuya_pid":""},"user_id":"***","owner_info":null,"home_id":"a0c216eb-f229-4576-aeae-1cd520ce43f1","home_name":"","room_id":"***","room_name":"***Room","connect_type":1,"grant_by":0,"software_version":"1.1.5","index":0,"device_key":"","create_time":1626370028,"update_time":***,"hardware_version":"","local_code":"","needUpdate":false,"setting":{"id":"","device_id":"","is_default":true},"update_packages":[]}],"groups":[]}

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

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.