homebridge-plugins / homebridge-roomba2

Homebridge plugin to connect iRobot Roomba devices with Homebridge/HomeKit.
MIT License
143 stars 17 forks source link

Constant timeouts. Attached what was returned when I tried to install dorita #109

Open T1rasus opened 2 years ago

T1rasus commented 2 years ago

I get constant timeouts. Had odd returns when I pasted sudo npm install -g dorita980 command in tp://hoobs.local:9090

hoobs@hoobs:~ $ hoobs@hoobs:~ $ sudo npm install -g dorita980 [sudo] password for hoobs: npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated request-promise@4.2.6: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142

changed 126 packages, and audited 127 packages in 20s

3 packages are looking for funding run npm fund for details

4 high severity vulnerabilities

To address all issues (including breaking changes), run: npm audit fix --force

Run npm audit for details. hoobs@hoobs:~ $

Steps to Reproduce (for bugs)

It's my current log when I start Roomba2

Versions


### Homebridge Log / Command Output
16/03/2022, 12:50:11Roomba BridgeRoombaDEBUG: Connection close received
16/03/2022, 12:51:08Roomba BridgeRoombaWARNINGTimed out after 60001ms trying to connect to Roomba
16/03/2022, 12:51:08Roomba BridgeRoombaWARNINGReleasing an unexpected Roomba instance
16/03/2022, 12:51:08Roomba BridgeRoombaWARNINGFailed to connect to Roomba to refresh state: Connect timed out
16/03/2022, 12:51:08Roomba BridgeRoombaDEBUG: Refreshing Roomba's status (repeating in 1m)
16/03/2022, 12:51:08Roomba BridgeRoombaDEBUG: Connecting to Roomba (0 others waiting)...
16/03/2022, 12:51:08Roomba BridgeRoombaDEBUG: Connection close received
16/03/2022, 12:52:08Roomba BridgeRoombaWARNINGTimed out after 60000ms trying to connect to Roomba
16/03/2022, 12:52:08Roomba BridgeRoombaWARNINGReleasing an unexpected Roomba instance
16/03/2022, 12:52:08Roomba BridgeRoombaWARNINGFailed to connect to Roomba to refresh state: Connect timed out
16/03/2022, 12:52:08Roomba BridgeRoombaDEBUG: Refreshing Roomba's status (repeating in 1m)
16/03/2022, 12:52:08Roomba BridgeRoombaDEBUG: Connecting to Roomba (0 others waiting)...
16/03/2022, 12:52:11Roomba BridgeRoombaDEBUG: Connection close received
16/03/2022, 12:53:08Roomba BridgeRoombaWARNINGTimed out after 60001ms trying to connect to Roomba
16/03/2022, 12:53:08Roomba BridgeRoombaWARNINGReleasing an unexpected Roomba instance
16/03/2022, 12:53:08Roomba BridgeRoombaWARNINGFailed to connect to Roomba to refresh state: Connect timed out
16/03/2022, 12:53:08Roomba BridgeRoombaDEBUG: Refreshing Roomba's status (repeating in 1m)
16/03/2022, 12:53:08Roomba BridgeRoombaDEBUG: Connecting to Roomba (0 others waiting)...
16/03/2022, 12:53:11Roomba BridgeRoombaDEBUG: Connection close received
16/03/2022, 12:54:08Roomba BridgeRoombaWARNINGTimed out after 60002ms trying to connect to Roomba
16/03/2022, 12:54:08Roomba BridgeRoombaWARNINGReleasing an unexpected Roomba instance
16/03/2022, 12:54:08Roomba BridgeRoombaWARNINGFailed to connect to Roomba to refresh state: Connect timed out
16/03/2022, 12:54:08Roomba BridgeRoombaDEBUG: Refreshing Roomba's status (repeating in 1m)
16/03/2022, 12:54:08Roomba BridgeRoombaDEBUG: Connecting to Roomba (0 others waiting)...
16/03/2022, 12:54:11Roomba BridgeRoombaDEBUG: Connection close received
16/03/2022, 12:54:53Roomba BridgeRoombaDEBUG: Connecting to Roomba (0 others waiting)...
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Running status: Returning no value due to timeout
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Low Battery status: Returning no value due to timeout
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Battery level: Returning no value due to timeout
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Charging status: Returning no value due to timeout
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Bin status: Returning no value due to timeout
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Dock status: Returning no value due to timeout
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Running status: Returning no value due to timeout
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Bin status: Returning no value due to timeout
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Docking status: Returning no value due to timeout
16/03/2022, 12:54:54Roomba BridgeRoombaDEBUG: Returning Home: Returning no value due to timeout
16/03/2022, 12:54:58Roomba BridgeRoombaDEBUG: Watching Roomba's status (repeating in 5s, idle timeout in 595s)
16/03/2022, 12:55:03Roomba BridgeRoombaDEBUG: Watching Roomba's status (repeating in 5s, idle timeout in 590s)
16/03/2022, 12:55:03Roomba BridgeRoombaDEBUG: Connecting to Roomba (1 others waiting)...
maochen commented 2 years ago

+1, checked my credentials. Log shows as:

[3/23/2022, 10:19:47 PM] [roomba] Releasing an unexpected Roomba instance
[3/23/2022, 10:19:47 PM] [roomba] Failed to connect to Roomba to refresh state: Connect timed out
[3/23/2022, 10:19:57 PM] [roomba] Timed out after 60001ms trying to connect to Roomba
[3/23/2022, 10:19:57 PM] [roomba] Releasing an unexpected Roomba instance
[3/23/2022, 10:19:57 PM] [roomba] Failed to connect to Roomba to refresh state: Connect timed out
[3/23/2022, 10:20:07 PM] [roomba] Timed out after 60000ms trying to connect to Roomba
[3/23/2022, 10:20:07 PM] [roomba] Releasing an unexpected Roomba instance
[3/23/2022, 10:20:07 PM] [roomba] Failed to connect to Roomba to refresh state: Connect timed out
[3/23/2022, 10:20:22 PM] [roomba] Timed out after 60001ms trying to connect to Roomba
[3/23/2022, 10:20:22 PM] [roomba] Releasing an unexpected Roomba instance
[3/23/2022, 10:20:22 PM] [roomba] Failed to connect to Roomba to refresh state: Connect timed out
[3/23/2022, 10:20:32 PM] [roomba] Timed out after 60001ms trying to connect to Roomba
[3/23/2022, 10:20:32 PM] [roomba] Releasing an unexpected Roomba instance
[3/23/2022, 10:20:32 PM] [roomba] Failed to connect to Roomba to refresh state: Connect timed out
[3/23/2022, 10:20:42 PM] [roomba] Timed out after 60001ms trying to connect to Roomba
[3/23/2022, 10:20:42 PM] [roomba] Releasing an unexpected Roomba instance
[3/23/2022, 10:20:42 PM] [roomba] Failed to connect to Roomba to refresh state: Connect timed out
[3/23/2022, 10:20:52 PM] [roomba] Timed out after 60000ms trying to connect to Roomba
[3/23/2022, 10:20:52 PM] [roomba] Releasing an unexpected Roomba instance
[3/23/2022, 10:20:52 PM] [roomba] Failed to connect to Roomba to refresh state: Connect timed out
[3/23/2022, 10:21:02 PM] [roomba] Timed out after 60001ms trying to connect to Roomba
[3/23/2022, 10:21:02 PM] [roomba] Releasing an unexpected Roomba instance
[3/23/2022, 10:21:02 PM] [roomba] Failed to connect to Roomba to refresh state: Connect timed out
[3/23/2022, 10:21:12 PM] [roomba] Timed out after 60001ms trying to connect to Roomba
[3/23/2022, 10:21:12 PM] [roomba] Releasing an unexpected Roomba instance
[3/23/2022, 10:21:12 PM] [roomba] Failed to connect to Roomba to refresh state: Connect timed out
kkissane0328 commented 2 years ago

+1, same issue. 980 works fine but J7 has issues

6/8/2022, 9:29:33 AMRoomba BridgeNew RoombaWARNINGTimed out after 60001ms trying to connect to Roomba 6/8/2022, 9:29:33 AMRoomba BridgeNew RoombaWARNINGReleasing an unexpected Roomba instance 6/8/2022, 9:29:33 AMRoomba BridgeNew RoombaWARNINGFailed to connect to Roomba to refresh state: Connect timed out 6/8/2022, 9:29:35 AMRoomba BridgeNew RoombaWARNINGTimed out after 59999ms trying to connect to Roomba 6/8/2022, 9:29:35 AMRoomba BridgeNew RoombaWARNINGReleasing an unexpected Roomba instance 6/8/2022, 9:30:33 AMRoomba BridgeNew RoombaWARNINGTimed out after 59999ms trying to connect to Roomba 6/8/2022, 9:30:33 AMRoomba BridgeNew RoombaWARNINGReleasing an unexpected Roomba instance 6/8/2022, 9:30:33 AMRoomba BridgeNew RoombaWARNINGFailed to connect to Roomba to refresh state: Connect timed out

karlvr commented 1 year ago

Please test this again with the latest beta release. There were issues with Node 18 and with J7 that are hopefully resolved. Other issues with connecting to Roomba occur if there is something else connected to Roomba, like the app, or another Roomba integration. Please re-open if you continue to have the same issue.

asweet commented 1 year ago

Still getting this pretty constantly with a 960, reserved IP address on the roomba, Node v16 and v18, reboots and reconnects on all applicable devices and services. 1.2.2 remains the most stable and responsive (for me at least)

karlvr commented 1 year ago

@asweet could you please post some logs of this issue from the latest plugin version?

NateUT99 commented 1 year ago

I get similar issues with my 960... it seems to happen most often (but not always) when the Roomba gets interrupted during a cleaning cycle (ex. the battery dies before it makes it back to the base). It does seem to be better with the latest version, but I will keep an eye on it and try to capture some logs the next time I see it occur.

asweet commented 1 year ago

@karlvr Sorry for the radio silence, been a while since I looked at this. Not sure I have the logs from two weeks back.

On the other hand, after having some difficulties rolling back to 1.2.2, I've since completely reinstalled the roomba2 plugin, and cleared out any plugin data from before (if there was any... I don't remember), and set it all up from scratch on version 1.4 with node v16.18.1 (I bounced between node versions).

So far, so good, even when the roomba dies in the middle of a job. Only getting "Releasing an unexpected Roomba instance" notifications, but the plugin is functioning properly from what I can see so far.

asweet commented 1 year ago

May have spoke too soon. got a long string of Connect timed out alerts. Roomba has a reserved IP address, so that didn't change, it was also definitely connected to wifi the whole time. I was able to connect to it through the iRobot app when I noticed that homekit wasn't able to talk to the bot.

[2022-12-20, 4:45:49 p.m.] [Ba-Boomba] Failed to refresh Roomba's state: Connect timed out
[2022-12-20, 5:01:49 p.m.] [Ba-Boomba] Failed to refresh Roomba's state: Connect timed out
[2022-12-20, 5:17:49 p.m.] [Ba-Boomba] Failed to refresh Roomba's state: Connect timed out

Rebooting the roomba didn't resolve it, but subsequently rebooting the entire homebridge server did. I'll turn on debug logs for the plugin and report more if it happens again.

asweet commented 1 year ago

OK, @karlvr this might be a bit overkill, but I'm attaching 2 hours of annotated plugin debug log.

At a high level, here's what happens:

[2023-01-12, 2:09:40 p.m.] Roomba running, performing a cleaning job
[2023-01-12, 2:21:09 p.m.] Roomba moves to dock
[2023-01-12, 2:24:13 p.m.] Roomba docks
[2023-01-12, 2:27:38 p.m.] Plugin connects to roomba only after an unusually long time, 34s instead of 3.2s
[2023-01-12, 2:27:38 p.m.] First of the "Releasing an unexpected Roomba instance" error
[2023-01-12, 2:52:07 p.m.] First of the "Failed to refresh Roomba's state: Connect timed out" errors
[2023-01-12, 2:53:28 p.m.] Last of the "Releasing an unexpected Roomba instance" errors
[2023-01-12, 3:09:33 p.m.] A single "ECONNRESET" error
[2023-01-12, 3:30:00 p.m.] Used Unifi admin page to force Roomba to reconnect to WiFi (estimated time), errors continue
[2023-01-12, 3:36:04 p.m.] Full restart of server, errors continue
[2023-01-12, 3:38:38 p.m.] Last of the "Failed to refresh Roomba's state: Connect timed out" errors
[2023-01-12, 3:43:00 p.m.] Restarted Roomba through the iRobot app (estimated time)
[2023-01-12, 3:58:21 p.m.] Opened Home app on laptop, roomba data is up to date and shown as connected

Problem seems to be cleared from then on. Until it happens again, of course.

Versions and configurations OS: Debian GNU/Linux Buster (10) Homebridge: 1.6.0 Node: 16.18.1 Roomba2 Plugin: 1.4.0 running under a child bridge Roomba Model: R960020 Roomba IP: DHCP with static reservation (IP address filled in in the plugin configuration)

Throughout the process, apart from intentional restarts and disconnects, pings from my laptop to the roomba were rock solid (generally single digit millisecond ping time, negligible packet loss).

From memory, I get the feeling that the disconnects tend to start happening generally after the roomba has completed a job, but not all the time. I'm wondering if it's reporting something back to iRobot, and in so doing somehow blocks the plugin from connecting. This seems to be supported by the dns server logs for the roomba's queries, which I've attached to the log file.

Homebridge-Roomba-Error.log

Stilnight commented 1 year ago

Hey Facing exactly same issue with 980 with Fixed IP address on the bot. And indeed Irobot app is still working but not anymore on Homebridge. iT Was working Yesterday, and now the plugin cannot Reach him anymore.

BTW, saying is not able to reach, I tried tthe command getpassword for the sake of it is still working for a part, he is able to give blid and other info, but he is not able to get the password.

Here is the error from the get password if it can help to solve the probs: node:events:491 throw er; // Unhandled 'error' event ^

Error: connect ETIMEDOUT 192.168.1.11:8883 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16) Emitted 'error' event on TLSSocket instance at: at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { errno: -110, code: 'ETIMEDOUT', syscall: 'connect', address: 'XXX.XXX.1.11', port: 8883 }

Node.js v18.12.1

karlvr commented 1 year ago

Please try the latest beta 1.5.0-beta.0 (instructions for installation at https://github.com/homebridge-plugins/homebridge-roomba2/wiki/Pre-release-versions) as I have changed the connection logic to support more / newer Roomba's.