naofireblade / homebridge-neato

A Neato vacuum robot plugin for homebridge.
MIT License
69 stars 18 forks source link

Error with multiple robots since v0.7.0 #47

Open CooperCGN opened 4 years ago

CooperCGN commented 4 years ago

Everything was working correctly with my two D5 up to 0.6.3. After the update homebridge throws the following error log. went back to 0.6.3. and they switch to responding again.

Oct 14 13:07:53 raspberrypi systemd[1]: Started Node.js HomeKit Server.
Oct 14 13:07:56 raspberrypi homebridge[24512]: [10/14/2019, 1:07:55 PM] Loaded config.json with 0 accessories and 1 platforms.
Oct 14 13:07:56 raspberrypi homebridge[24512]: [10/14/2019, 1:07:56 PM] ---
Oct 14 13:07:56 raspberrypi homebridge[24512]: [10/14/2019, 1:07:56 PM] Loaded plugin: homebridge-neato
Oct 14 13:07:56 raspberrypi homebridge[24512]: [10/14/2019, 1:07:56 PM] Registering platform 'homebridge-neato.NeatoVacuumRobot'
Oct 14 13:07:56 raspberrypi homebridge[24512]: [10/14/2019, 1:07:56 PM] ---
Oct 14 13:07:56 raspberrypi homebridge[24512]: [10/14/2019, 1:07:56 PM] Loading 1 platforms...
Oct 14 13:07:56 raspberrypi homebridge[24512]: [10/14/2019, 1:07:56 PM] [NeatoVacuumRobot] Initializing NeatoVacuumRobot platform...
Oct 14 13:07:56 raspberrypi homebridge[24512]: [10/14/2019, 1:07:56 PM] [NeatoVacuumRobot] Refresh is set to: 120 seconds
Oct 14 13:07:56 raspberrypi homebridge[24512]: [10/14/2019, 1:07:56 PM] Loading 0 accessories...
Oct 14 13:07:59 raspberrypi homebridge[24512]: [10/14/2019, 1:07:59 PM] [NeatoVacuumRobot] Found robot #1 named "Unten" with serial "OPS50316-XXXXXXXXXXXX"
Oct 14 13:07:59 raspberrypi homebridge[24512]: [10/14/2019, 1:07:59 PM] [NeatoVacuumRobot] Added cleaning device named: Unten
Oct 14 13:07:59 raspberrypi homebridge[24512]: [10/14/2019, 1:07:59 PM] [NeatoVacuumRobot] Found robot #2 named "Oben" with serial "OPS48616-XXXXXXXXXXXX"
Oct 14 13:07:59 raspberrypi homebridge[24512]: [10/14/2019, 1:07:59 PM] [NeatoVacuumRobot] Added cleaning device named: Oben
Oct 14 13:07:59 raspberrypi homebridge[24512]: [10/14/2019, 1:07:59 PM] [NeatoVacuumRobot] Initializing platform accessory 'Unten'...
Oct 14 13:07:59 raspberrypi homebridge[24512]: HAP Warning: Characteristic undefined not in required or optional characteristics for service 00000049-0000-1000-8000-0026BB765291. Adding anyway.
Oct 14 13:07:59 raspberrypi homebridge[24512]: [10/14/2019, 1:07:59 PM] [NeatoVacuumRobot] Error getting robot meta information: Error: Cannot add a Characteristic with the same UUID as another Characteristic in this Service: 1E79C603-63B8-4E6A-9CE1-D31D67981831: null
Oct 14 13:07:59 raspberrypi homebridge[24512]: [10/14/2019, 1:07:59 PM] [NeatoVacuumRobot] Found robot #1 named "Unten" with serial "OPS50316-XXXXXXXXXXXX"
Oct 14 13:07:59 raspberrypi homebridge[24512]: HAP Warning: Characteristic undefined not in required or optional characteristics for service 00000049-0000-1000-8000-0026BB765291. Adding anyway.
Oct 14 13:07:59 raspberrypi homebridge[24512]: (node:24512) UnhandledPromiseRejectionWarning: Error: Cannot add a Characteristic with the same UUID as another Characteristic in this Service: 1E79C603-63B8-4E6A-9CE1-D31D67981831
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at Service.Switch.Service.addCharacteristic (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Service.js:80:13)
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at Service.Switch.Service.getCharacteristic (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Service.js:162:19)
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at Service.Switch.Service.setCharacteristic (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Service.js:183:8)
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at NeatoVacuumRobotAccessory.updated (/usr/local/lib/node_modules/homebridge-neato/accessories/neatoVacuumRobot.js:669:33)
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at updateRobot (/usr/local/lib/node_modules/homebridge-neato/index.js:253:24)
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at NeatoVacuumRobotPlatform.updateRobot (/usr/local/lib/node_modules/homebridge-neato/index.js:214:4)
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at NeatoVacuumRobotPlatform.updateRobotTimer (/usr/local/lib/node_modules/homebridge-neato/index.js:246:8)
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at robots.forEach (/usr/local/lib/node_modules/homebridge-neato/index.js:64:10)
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at Array.forEach (<anonymous>)
Oct 14 13:07:59 raspberrypi homebridge[24512]:     at getRobots (/usr/local/lib/node_modules/homebridge-neato/index.js:59:16)
Oct 14 13:07:59 raspberrypi homebridge[24512]: (node:24512) 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)
Oct 14 13:07:59 raspberrypi homebridge[24512]: (node:24512) [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.
Oct 14 13:08:00 raspberrypi homebridge[24512]: HAP Warning: Characteristic undefined not in required or optional characteristics for service 00000049-0000-1000-8000-0026BB765291. Adding anyway.
Oct 14 13:08:00 raspberrypi homebridge[24512]: [10/14/2019, 1:08:00 PM] [NeatoVacuumRobot] Cannot update robot. Check if robot is online. Error: Cannot add a Characteristic with the same UUID as another Characteristic in this Service: 1E79C603-63B8-4E6A-9CE1-D31D67981831
Oct 14 13:08:00 raspberrypi homebridge[24512]: HAP Warning: Characteristic undefined not in required or optional characteristics for service 00000049-0000-1000-8000-0026BB765291. Adding anyway.
Oct 14 13:08:00 raspberrypi homebridge[24512]: (node:24512) UnhandledPromiseRejectionWarning: Error: Cannot add a Characteristic with the same UUID as another Characteristic in this Service: 1E79C603-63B8-4E6A-9CE1-D31D67981831
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at Service.Switch.Service.addCharacteristic (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Service.js:80:13)
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at Service.Switch.Service.getCharacteristic (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Service.js:162:19)
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at Service.Switch.Service.setCharacteristic (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Service.js:183:8)
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at NeatoVacuumRobotAccessory.updated (/usr/local/lib/node_modules/homebridge-neato/accessories/neatoVacuumRobot.js:669:33)
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at updateRobot (/usr/local/lib/node_modules/homebridge-neato/index.js:253:24)
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at robot.device.getState (/usr/local/lib/node_modules/homebridge-neato/index.js:226:5)
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at Robot.<anonymous> (/usr/local/lib/node_modules/homebridge-neato/node_modules/node-botvac/lib/robot.js:39:17)
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at /usr/local/lib/node_modules/homebridge-neato/node_modules/node-botvac/lib/robot.js:506:17
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at /usr/local/lib/node_modules/homebridge-neato/node_modules/node-botvac/lib/api.js:34:45
Oct 14 13:08:00 raspberrypi homebridge[24512]:     at process._tickCallback (internal/process/next_tick.js:68:7)
Oct 14 13:08:00 raspberrypi homebridge[24512]: (node:24512) 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)
Oct 14 13:09:07 raspberrypi systemd[1]: Stopping Node.js HomeKit Server...
Oct 14 13:09:07 raspberrypi homebridge[24512]: [10/14/2019, 1:09:07 PM] Got SIGTERM, shutting down Homebridge...
Oct 14 13:09:12 raspberrypi systemd[1]: homebridgeneato.service: Main process exited, code=exited, status=143/n/a
Oct 14 13:09:12 raspberrypi systemd[1]: Stopped Node.js HomeKit Server.
Oct 14 13:09:12 raspberrypi systemd[1]: homebridgeneato.service: Unit entered failed state.
Oct 14 13:09:12 raspberrypi systemd[1]: homebridgeneato.service: Failed with result 'exit-code'.
CooperCGN commented 4 years ago

config.json looks like this:

{
            "platform": "NeatoVacuumRobot",
            "email": "email",
            "password": "password",
            "refresh": "120",
            "extraCareNavigation": false,
            "disabled": [
                "dock",
                "dockstate",
                "eco",
                "nogolines",
                "extracare",
                "schedule"
            ]
        }
naofireblade commented 4 years ago

Hi sorry to hear that. I think you can disable "spot" as a workaround until I fixed that.

CooperCGN commented 4 years ago

Doesn't help, I will stay on 0.6.3 till it is fixed.

naofireblade commented 4 years ago

Alright thanks for reporting, I will look into this.

Web-Fashion commented 4 years ago

I have the exact same problem:/

Web-Fashion commented 4 years ago

I have 2 D7 btw.

naofireblade commented 4 years ago

This will be fixed in v0.7.2. I might need help in testing a beta from one of you because I have only one robot.

Web-Fashion commented 4 years ago

Great! Thank you so much💪🏼 I will be happy to help beta testing

naofireblade commented 4 years ago

Alright, I might fixed the problem in v0.7.2-beta.1.

I work on this problem like a blind taxi driver (I know the streets but without a second robot, I can only guess the traffic 😄). Could you check it please?

You can install the beta version with npm install -g homebridge-neato@beta

CooperCGN commented 4 years ago

Sorry, can’t test before the weekend, won’t be home until Sunday. :(

Web-Fashion commented 4 years ago

Hello again:) i have just tested the beta, and it seems you have fixed the problem👍🏼 Thank you for your awesome work😃

naofireblade commented 4 years ago

Glad to hear that.

CooperCGN commented 4 years ago

I am sorry to say but it doesn't work our me. My new config.json looks like this, I just need the dock command.

{ "platform": "NeatoVacuumRobot", "email": "xxxxx", "password": "xxxxx", "refresh": "120", "hidden": ["dockstate", "eco", "nogolines", "extracare", "schedule", "find", "spot"] }

and it throws the following error:

[NeatoVacuumRobot] Error getting robot meta information: Error: Request failed with status code 404: null

If I add the dock back into the ignore list, it works again.

naofireblade commented 4 years ago

Was your robot maybe offline? This looks like another error.

RCdiy commented 4 years ago

My account https://user-images.githubusercontent.com/20209851/71785259-8eddf980-2fcb-11ea-8b99-44a5dc8fbad6.png { "platform": "NeatoVacuumRobot", "email": "x@x", "password": "xxx" } [1/5/2020, 2:27:20 PM] [NeatoVacuumRobot] Initializing NeatoVacuumRobot platform... [1/5/2020, 2:27:20 PM] [NeatoVacuumRobot] Refresh is set to: auto [1/5/2020, 2:27:20 PM] Loading 0 accessories... [1/5/2020, 2:27:21 PM] [NeatoVacuumRobot] Error getting robot meta information: no serial or secret: null Setup Payload: X-HM://0023IX8JIE9NF Scan this code with your HomeKit app

[1/5/2020, 2:27:21 PM] [NeatoVacuumRobot] Error getting robot meta information: no serial or secret: null [1/5/2020, 2:27:21 PM] [NeatoVacuumRobot] Successful login but can't connect to your neato robot: Error: This callback function has already been called by someone else; it can only be called one time. [1/5/2020, 2:27:21 PM] Homebridge is running on port 51826. (node:1672) UnhandledPromiseRejectionWarning: Error: This callback function has already been called by someone else; it can only be called one time. at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:12:13 at /usr/local/lib/node_modules/homebridge-neato/index.js:116:7 at /usr/local/lib/node_modules/homebridge-neato/index.js:147:7 at Client. (/usr/local/lib/node_modules/homebridge-neato/node_modules/node-botvac/lib/client.js:46:25) at /usr/local/lib/node_modules/homebridge-neato/node_modules/node-botvac/lib/api.js:34:45 at processTicksAndRejections (internal/process/task_queues.js:97:5) (node:1672) 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:1672) [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. [1/5/2020, 2:27:22 PM] [WebUI] Homebridge Config UI X v4.6.7 is listening on :: port 8080

naofireblade commented 4 years ago

Thanks for the screenshot. I guess the problem occurs because of your other non smart robots. I will try to fix that. I created a new issue for your problem: #49

itselifb commented 4 years ago

I’m also getting the “error getting robot meta information: request failed with status 404”

One robot: Botvac Connected.

Config file is pretty much identical to the others here.

olliegg123 commented 4 years ago

I’m also getting the “error getting robot meta information: request failed with status 404”

Same here. Detecting neither of my robots because of the 404.

alexanderbjelos commented 4 years ago

Hello @naofireblade,

i bought my second Neato and also received the following message:

Error getting robot meta information: Error: Request failed with status code 404: null

Can you help us? I you need more informations or if I can help you, please let me know.

Alex

technikjunge commented 3 years ago

Got the same problem... one of my 2 robots failed to load. I added a robots.pop(); in the code before the forEach to let at least one robot run. But I wonder how to fix the bug. Unfortunately I understand too little about programming.