hov3rcraft / homebridge-eufy-robovac

Homebridge plugin for Eufy RoboVac
MIT License
9 stars 0 forks source link

Issue with Plugin for Eufy Clean L60 #6

Open coneseek opened 1 month ago

coneseek commented 1 month ago

Hi hov3rcraft,

First of all, thank you for creating such a great plugin! Unfortunately, I'm currently experiencing an issue with it. I am using a Eufy Clean L60, but the plugin throws the following error while pressing the buttons in the home app:

[08/09/2024, 18:06:02] [@hov3rcraft/homebridge-eufy-robovac] New data from L60 received - updated 0 characteristics. [08/09/2024, 18:06:03] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic was supplied illegal value: number -1 exceeded minimum of 0. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:06:44] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic was supplied illegal value: number -1 exceeded minimum of 0. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:03] [@hov3rcraft/homebridge-eufy-robovac] Fetching status update... [08/09/2024, 18:07:03] [@hov3rcraft/homebridge-eufy-robovac] New data from L60 received - updated 0 characteristics. [08/09/2024, 18:07:03] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:03] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:03] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic value expected valid finite number and received "undefined" (undefined). See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:25] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:25] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:25] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic value expected valid finite number and received "undefined" (undefined). See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:26] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:26] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:37] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:37] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:37] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic value expected valid finite number and received "undefined" (undefined). See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:47] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:47] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:07:58] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic value expected valid finite number and received "undefined" (undefined). See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:08:24] [@hov3rcraft/homebridge-eufy-robovac] An error occurred! (during SET of Find Robot to true ): Error: A set command is already in progress. Can not issue a second one that also should return a response. at TuyaDevice.set (/var/lib/homebridge/node_modules/@hov3rcraft/homebridge-eufy-robovac/node_modules/tuyapi/index.js:396:13) at RoboVac.set (/var/lib/homebridge/node_modules/@hov3rcraft/homebridge-eufy-robovac/src/robovac-api.ts:319:28) at RoboVac.setFindRobot (/var/lib/homebridge/node_modules/@hov3rcraft/homebridge-eufy-robovac/src/robovac-api.ts:433:21) at EufyRobovacAccessory.setFindRobot (/var/lib/homebridge/node_modules/@hov3rcraft/homebridge-eufy-robovac/src/accessory.ts:224:22) at On. (/var/lib/homebridge/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2552:42) at step (/var/lib/homebridge/node_modules/homebridge/node_modules/tslib/tslib.js:195:27) at Object.next (/var/lib/homebridge/node_modules/homebridge/node_modules/tslib/tslib.js:176:57) at /var/lib/homebridge/node_modules/homebridge/node_modules/tslib/tslib.js:169:75 at new Promise () at Object.__awaiter (/var/lib/homebridge/node_modules/homebridge/node_modules/tslib/tslib.js:165:16) [08/09/2024, 18:08:24] [@hov3rcraft/homebridge-eufy-robovac] Disconnected from device. [08/09/2024, 18:08:25] [@hov3rcraft/homebridge-eufy-robovac] Error! Timeout waiting for status response from device id: bf1c35d35a0e67**** [08/09/2024, 18:08:25] [@hov3rcraft/homebridge-eufy-robovac] Setting Running to true successful. [08/09/2024, 18:08:26] [@hov3rcraft/homebridge-eufy-robovac] Connected to device! [08/09/2024, 18:08:26] [@hov3rcraft/homebridge-eufy-robovac] Setting Find Robot to true successful. [08/09/2024, 18:08:26] [@hov3rcraft/homebridge-eufy-robovac] New data from L60 received - updated 0 characteristics. [08/09/2024, 18:08:39] [@hov3rcraft/homebridge-eufy-robovac] Error! Timeout waiting for status response from device id: bf1c35d35a0e67**** [08/09/2024, 18:08:39] [@hov3rcraft/homebridge-eufy-robovac] Disconnected from device. [08/09/2024, 18:08:39] [@hov3rcraft/homebridge-eufy-robovac] Setting Running to true successful. [08/09/2024, 18:08:42] [@hov3rcraft/homebridge-eufy-robovac] Connected to device! [08/09/2024, 18:08:42] [@hov3rcraft/homebridge-eufy-robovac] Setting Running to true successful. [08/09/2024, 18:08:42] [@hov3rcraft/homebridge-eufy-robovac] New data from L60 received - updated 0 characteristics. [08/09/2024, 18:09:19] [@hov3rcraft/homebridge-eufy-robovac] Restarting child bridge... [08/09/2024, 18:09:19] Got SIGTERM, shutting down child bridge process... [08/09/2024, 18:09:24] [@hov3rcraft/homebridge-eufy-robovac] Child bridge process ended [08/09/2024, 18:09:24] [@hov3rcraft/homebridge-eufy-robovac] Process Ended. Code: 143, Signal: null [08/09/2024, 18:09:31] [@hov3rcraft/homebridge-eufy-robovac] Restarting Process... [08/09/2024, 18:09:33] [@hov3rcraft/homebridge-eufy-robovac] Launched child bridge with PID 4599 [08/09/2024, 18:09:33] Registering platform '@hov3rcraft/homebridge-eufy-robovac.EufyRobovac' [08/09/2024, 18:09:33] [@hov3rcraft/homebridge-eufy-robovac] Loaded @hov3rcraft/homebridge-eufy-robovac v3.2.0-beta2 child bridge successfully [08/09/2024, 18:09:33] Loaded 1 cached accessories from cachedAccessories.0EE4C3E5****. [08/09/2024, 18:09:33] [@hov3rcraft/homebridge-eufy-robovac] Loading accessory from cache: L60 [08/09/2024, 18:09:33] [@hov3rcraft/homebridge-eufy-robovac] Restoring existing accessory from cache: L60 [08/09/2024, 18:09:33] [@hov3rcraft/homebridge-eufy-robovac] Finished initializing accessory: L60 [08/09/2024, 18:09:33] Homebridge v1.8.4 (HAP v0.12.2) (Staubsauger) is running on port 45317.

These errors occur while i am not doing anything:

[08/09/2024, 18:11:28] [@hov3rcraft/homebridge-eufy-robovac] New data from L60 received - updated 0 characteristics. [08/09/2024, 18:11:28] [@hov3rcraft/homebridge-eufy-robovac] New data from L60 received - updated 0 characteristics. [08/09/2024, 18:11:28] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:11:28] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:11:31] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https:// homebridge.io/w/JtMGR for more info. [08/09/2024, 18:34:40] [@hov3rcraft/homebridge-eufy-robovac] New data from L60 received - updated 0 characteristics. [08/09/2024, 18:56:51] [@hov3rcraft/homebridge-eufy-robovac] Disconnected from device. [08/09/2024, 18:57:55] [@hov3rcraft/homebridge-eufy-robovac] Fetching status update... [08/09/2024, 18:57:55] [@hov3rcraft/homebridge-eufy-robovac] Connected to device!

I configured the plugin like this:

{ "devices": [ { "name": "Staubsauger", "deviceId": "bf1c35d35a0e67****", "localKey": "Sc:z-Zih0Pt***", "deviceIp": "192.168.1.158", "useSwitchService": true, "findButtonEnabled": true, "batteryInformationEnabled": true, "errorSensorEnabled": true } ], "debugLogEnabled": false, "_bridge": { "name": "Staubsauger", "username": "0E:E4:C3:::", "manufacturer": "Eufy", "model": "Eufy Clean L60" }, "platform": "EufyRobovac" }

The Homebridge (v1.8.4) is running on a Raspberry Pi Zero 2W, connected via Wi-Fi, and everything is on the same network. I’ve tried troubleshooting (reinstalling the plugin, restarting the homebridge, checking if the ID etc is correct) on my own but haven’t had any luck. I would really appreciate it if you could help or provide some guidance on how to resolve this issue.

Thank you in advance for your support!

Best regards, Coneseek

hov3rcraft commented 1 month ago

Hi! I am not receiving these messages with my RoboVac (different model), but let's see if we can find the problem together.

What I can see in the logs is that Homebridge receives several illegal values, like -1 for the Battery Level. I am using -1 as the default value for the Battery Level when initialising the RoboVac in the plugin, but then I mark this status as expired in the plugin, so that the plugin should pull new status data from the device before passing anything to Homebridge. So my guess is that something goes wrong during the initial status data request.

Can you please enable the debug log in the plugin settings and post it here? That might help us understanding which requests are made to the device in what order.

coneseek commented 1 month ago

Hi, sorry for the late reply. I hope the following logs will help:

Received data from device: -- Status Start -- -- Status End -- updateCharacteristics for L60 updateCharacteristics for L60 complete - updated 0 characteristics. [30/09/2024, 10:44:04] [Homebridge UI] [HapClient] Discovery :: Found HAP device with username 0E:E4:C3:E5:XX:XX [30/09/2024, 10:44:04] [Homebridge UI] [HapClient] Discovery :: Testing 0E:E4:C3:E5:XX:XX via http://127.0.0.1:39419/accessories getRunning for L60 Status request within max status update age getFindRobot for L60 Status request within max status update age getLowBattery for L60 Status request within max status update age getBatteryLevel for L60 Status request within max status update age getCharging for L60 Status request within max status update age getErrorStatus for L60 Status request within max status update age [9/30/2024, 10:44:04 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic was supplied illegal value: number -1 exceeded minimum of 0. See https://homebridge.io/w/JtMGR for more info. [30/09/2024, 10:44:04] [Homebridge UI] [HapClient] Discovery :: Success 0E:E4:C3:E5:XX:XX via http://127.0.0.1:39419/accessories [30/09/2024, 10:44:04] [Homebridge UI] [HapClient] Discovery :: [127.0.0.1:39419 (0E:E4:C3:E5:XX:XX)] Instance Registered getRunning for L60 Status request within max status update age getFindRobot for L60 Status request within max status update age getLowBattery for L60 Status request within max status update age getBatteryLevel for L60 Status request within max status update age getCharging for L60 Status request within max status update age [9/30/2024, 10:44:07 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic was supplied illegal value: number -1 exceeded minimum of 0. See https://homebridge.io/w/JtMGR for more info. getErrorStatus for L60 Status request within max status update age [30/09/2024, 10:44:07] [Homebridge UI] [HapClient] [127.0.0.1:51566 (0E:AC:68:22:XX:XX)] Connected [30/09/2024, 10:44:07] [Homebridge UI] [HapClient] [127.0.0.1:39419 (0E:E4:C3:E5:XX:XX)] Connected [30/09/2024, 10:44:07] [Homebridge UI] [HapClient] Discovery :: Re-broadcasting discovery query getRunning for L60 Status request within max status update age getFindRobot for L60 Status request within max status update age getLowBattery for L60 Status request within max status update age getBatteryLevel for L60 Status request within max status update age getCharging for L60 Status request within max status update age [9/30/2024, 10:44:10 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic was supplied illegal value: number -1 exceeded minimum of 0. See https://homebridge.io/w/JtMGR for more info. getErrorStatus for L60 Status request within max status update age setRunning for L60 set to true Setting Running to true ... getRunning for L60 Status request within max status update age getRunning for L60 Status request within max status update age getFindRobot for L60 Status request within max status update age getLowBattery for L60 Status request within max status update age getBatteryLevel for L60 Status request within max status update age getCharging for L60 Status request within max status update age getErrorStatus for L60 Status request within max status update age [9/30/2024, 10:44:34 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic was supplied illegal value: number -1 exceeded minimum of 0. See https://homebridge.io/w/JtMGR for more info. getRunning for L60 Status request within max status update age getFindRobot for L60 Status request within max status update age getLowBattery for L60 Status request within max status update age getBatteryLevel for L60 Status request within max status update age getCharging for L60 Status request within max status update age [9/30/2024, 10:44:36 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic was supplied illegal value: number -1 exceeded minimum of 0. See https://homebridge.io/w/JtMGR for more info. getErrorStatus for L60 Status request within max status update age Error! Timeout waiting for status response from device id: bf1c35d35a0e67fea1qjhf Disconnected from device. Setting Running to true successful. setRunning for L60 set to true Setting Running to true ... Connected to device! Setting Running to true successful. getRunning for L60 Fetching status update... Received data from device: -- Status Start -- -- Status End -- updateCharacteristics for L60 updateCharacteristics for L60 complete - updated 0 characteristics. Received data from device: -- Status Start -- -- Status End -- updateCharacteristics for L60 updateCharacteristics for L60 complete - updated 0 characteristics. Status update retrieved. [9/30/2024, 10:44:44 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://homebridge.io/w/JtMGR for more info. getRunning for L60 Status request within max status update age getFindRobot for L60 Status request within max status update age getLowBattery for L60 Status request within max status update age getBatteryLevel for L60 Status request within max status update age getCharging for L60 Status request within max status update age getErrorStatus for L60 Status request within max status update age [9/30/2024, 10:44:44 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://homebridge.io/w/JtMGR for more info. [9/30/2024, 10:44:44 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://homebridge.io/w/JtMGR for more info. [9/30/2024, 10:44:44 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info. [30/09/2024, 10:44:44] [Homebridge UI] [HapClient] [127.0.0.1:39419 (0E:E4:C3:E5:XX:XX)] Got Event: [{"aid":2,"iid":18,"value":0},{"aid":2,"iid":16,"value":0},{"aid":2,"iid":10,"value":0},{"aid":2,"iid":10,"value":1}] getRunning for L60 Status request within max status update age [9/30/2024, 10:44:45 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://homebridge.io/w/JtMGR for more info. getFindRobot for L60 Status request within max status update age [9/30/2024, 10:44:45 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://homebridge.io/w/JtMGR for more info. getLowBattery for L60 Status request within max status update age getBatteryLevel for L60 Status request within max status update age getCharging for L60 Status request within max status update age [9/30/2024, 10:44:45 AM] [@hov3rcraft/homebridge-eufy-robovac] This plugin generated a warning from the characteristic 'Battery Level': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info. getErrorStatus for L60 Status request within max status update age [30/09/2024, 10:44:54] [Homebridge UI] [HapClient] Discovery :: Ended