core icon indicating copy to clipboard operation
core copied to clipboard

Roomba j7 still not integrating after 2024.3.0

Open bkr1969 opened this issue 1 year ago • 60 comments

The problem

I have read some "solutions" but nothing has worked. My Roombas are detected and I get a notification but get "Unknown error" when trying to configure.

What version of Home Assistant Core has the issue?

2024.3.0

What was the last working version of Home Assistant Core?

2024.2.2

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Roomba

Link to integration documentation on our website

https://www.home-assistant.io/integrations/roomba/

Diagnostics information

Nothing in error logs at all.

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

bkr1969 avatar Mar 06 '24 23:03 bkr1969

Hey there @pschmitt, @cyr-ius, @shenxn, @xitee1, @orhideous, mind taking a look at this issue as it has been labeled with an integration (roomba) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of roomba can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign roomba Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


roomba documentation roomba source (message by IssueLinks)

home-assistant[bot] avatar Mar 06 '24 23:03 home-assistant[bot]

I'll second this. I was able to add my M6 Braava mops but J7 series machines will not connect. It won't even locate them on the network. Also not seeing anything in the logs related. Thanks to all who support this integration. irobot-ha-2024 3-error

mediacutlet avatar Mar 09 '24 13:03 mediacutlet

Anything in the logs?

joostlek avatar Mar 09 '24 13:03 joostlek

Nothing in the logs but I just followed these simple instructions (just restarted the bots). HA picked them up and configured succesfully. Not sure if this will resolve the issue @bkr1969 encountered but my issue is resolved!

mediacutlet avatar Mar 09 '24 13:03 mediacutlet

Nope. I appreciate the suggestion but it did not work.

bkr1969 avatar Mar 09 '24 22:03 bkr1969

Hello, same issue:

the logs: 2024-03-10 17:40:56.596 DEBUG (SyncWorker_23) [roombapy.discovery] Socket server started, port 5678 2024-03-10 17:40:56.597 DEBUG (SyncWorker_23) [roombapy.discovery] Message sent 2024-03-10 17:40:56.989 DEBUG (SyncWorker_23) [roombapy.discovery] Received response: b'{"ver":"4","hostname":"iRobot-XX","robotname":"Roomba","robotid":"XX","ip":"192.168.0.XX","mac":"4C:B9:EA:XXXXXX","sw":"sapphire+23.37.5+2023-10-17-5245d211fc3+Firmware-Production+165","sku":"j755840","nc":0,"proto":"mqtt","cap":{"binFullDetect":2,"addOnHw":1,"oMode":10,"odoa":7,"dockComm":1,"maps":3,"pmaps":10,"mc":2,"sem2umf":2,"tLine":2,"area":1,"eco":1,"multiPass":2,"pp":0,"edge":null,"team":1,"pose":2,"lang":2,"hm":0,"5ghz":1,"prov":3,"sched":2,"svcConf":1,"ota":2,"log":2,"langOta":0,"ns":1,"bleLog":1,"expectingUserConf":2,"idl":1},"freq":5580,"cloudConnState":14}', address: ('192.168.0.XX', 5678) 2024-03-10 17:41:01.995 INFO (SyncWorker_23) [roombapy.discovery] Socket timeout

yannc74 avatar Mar 10 '24 16:03 yannc74

OK. After Supervisor update today I was able to connect one of the two (same make and model so I'm not sure why both won't connect) but the status just shows "null." The other one still shows as discovered but I get the same error when trying to configure.

bkr1969 avatar Mar 12 '24 18:03 bkr1969

2024.3.0 Same problem. Integration can not find my Roomba J7plus not in automatic nor manual mode by IP address. Nothing in logs. Hope it will be fixed in the next release.

gershte avatar Mar 21 '24 14:03 gershte

2024.3.3 cannot add roomba j7+

Emissasry avatar Mar 25 '24 13:03 Emissasry

Hello, after many tries, I'm abble to connect Roomba J7+ with HA. I followed these steps:

  1. Stop HA
  2. Stop the app IRobot.
  3. Retrieve the credentials with dorita980 : a. Launch the app IRobot and restart the Roomba J7+. Close the app. b. launch the dorita command. c. After few minutes, you heard a bip on the Roomba. So, dorita is abble to retrieve the credentials. (you can relaunch many times dorita, before the bip)
  4. Launch the app IRobot and restart the Roomba J7+
  5. Launch the IRobot integration, give the IP adress and wait some times. (Retry this step if neccessary, before the bip on the robot)
  6. HA and Roomba are connected !

In fact, the connection between HA and IRobot is made just after the Restart/few minutes/bip.

After, you can retrieve the zone as described here: https://blog.hessindustria.com/home-assistant-roomba-s9-integration/ But, you must stop HA before using dorita (otherwise, i'm not abble to connect to the irobot - only one connection is available) don't change the option HA/Integration Irobot/Continuous)

I hope it's the solution for you !

yannc74 avatar Mar 26 '24 04:03 yannc74

Hello, after many tries, I'm abble to connect Roomba J7+ with HA. I followed these steps:

  1. Stop HA
  2. Stop the app IRobot.
  3. Retrieve the credentials with dorita980 : a. Launch the app IRobot and restart the Roomba J7+. Close the app. b. launch the dorita command. c. After few minutes, you heard a bip on the Roomba. So, dorita is abble to retrieve the credentials. (you can relaunch many times dorita, before the bip)
  4. Launch the app IRobot and restart the Roomba J7+
  5. Launch the IRobot integration, give the IP adress and wait some times. (Retry this step if neccessary, before the bip on the robot)
  6. HA and Roomba are connected !

In fact, the connection between HA and IRobot is made just after the Restart/few minutes/bip.

After, you can retrieve the zone as described here: https://blog.hessindustria.com/home-assistant-roomba-s9-integration/ But, you must stop HA before using dorita (otherwise, i'm not abble to connect to the irobot - only one connection is available) don't change the option HA/Integration Irobot/Continuous)

I hope it's the solution for you !

Thank you! But this doesn't work in general. This morning, I migrated the system to new HASS hardware. It was a fresh installation, and before restoring the system backup, it automatically detected my Roomba and suggested configuring it. However, after restoring the backup, the Roomba became inaccessible again. Therefore, it can be inferred that the issue lies with one of the already installed integrations. However, there are dozens of them in my system. Therefore, finding the problem is impossible...

gershte avatar Mar 26 '24 15:03 gershte

After software update of Supervisor to 2024.04.0 version, in my case the problem was solved. Roomba was detected and connected with no issue.

gershte avatar Apr 03 '24 14:04 gershte

After software update of Supervisor to 2024.04.0 version, in my case the problem was solved. Roomba was detected and connected with no issue.

What do you mean update Supervisor ? Doesn't seem to be a release of Home Assistant mentionning that. My install runs in a docker container, is it possible to apply such an update ?

maxiwheat avatar Apr 03 '24 17:04 maxiwheat

Brand new J9+ vac and M6 Mop. HAOS found the M6 Mop but no the J9+ Vac.

Attempting to connect directly via IP and providing password from dorita fail.

One thing I wonder might be an issue is the BLID numbers for the MOP and the VAC are different. Does the main integration re-use the BLID number from previous integrations to add more items?

Also, the passwords returned contain special chars. Could that be something new that's tripping up the scripts?

Then there's all the deprication warnings on the docker container that runs dorita to pull the UN&PASS. Could those deprications be causing issues with the data returned?

I couldn't get the integration to pull the UN & PASS using the instructions for either the VAC or the MOP. The MOP finally was connected using the password provided by dorita after numerous attempts and failures.

XXXXXX@docker1:~$ sudo docker run -it node sh -c "npm install -g dorita980 && get-roomba-password-cloud [email protected] XXXXXXXXXXXXXXXXXXXXX"
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: 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 [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142

added 125 packages in 7s

4 packages are looking for funding
  run `npm fund` for details
npm notice
npm notice New patch version of npm available! 10.5.0 -> 10.5.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.5.1
npm notice Run npm install -g [email protected] to update!
npm notice
(node:27) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Found 2 robot(s)!
Robot "Moppy" (sku: m611320 SoftwareVer: sanmarino+22.29.6+2022-12-01-82f3372a65c+Firmware-Build+2321):
BLID=> FC86XXXXXXXXXXXXXXXXXXX
Password=> :1:171XXXXXXXXXXXXXXXX <= Yes, all this string.

Robot "Sucky" (sku: j955020 SoftwareVer: ruby+23.37.5+2023-10-17-5245d211fc3+Firmware-Production+167):
BLID=> 95C31XXXXXXXXXXXXXX
Password=> :1:171XXXXXXXXXXXXXXXXXXXXXXXX <= Yes, all this string.

Use this credentials in dorita980 lib :)

quadcom avatar Apr 10 '24 16:04 quadcom

Brand new J9+ vac and M6 Mop. HAOS found the M6 Mop but no the J9+ Vac.

Attempting to connect directly via IP and providing password from dorita fail.

One thing I wonder might be an issue is the BLID numbers for the MOP and the VAC are different. Does the main integration re-use the BLID number from previous integrations to add more items?

Also, the passwords returned contain special chars. Could that be something new that's tripping up the scripts?

Then there's all the deprication warnings on the docker container that runs dorita to pull the UN&PASS. Could those deprications be causing issues with the data returned?

I couldn't get the integration to pull the UN & PASS using the instructions for either the VAC or the MOP. The MOP finally was connected using the password provided by dorita after numerous attempts and failures.

XXXXXX@docker1:~$ sudo docker run -it node sh -c "npm install -g dorita980 && get-roomba-password-cloud [email protected] XXXXXXXXXXXXXXXXXXXXX"
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: 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 [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142

added 125 packages in 7s

4 packages are looking for funding
  run `npm fund` for details
npm notice
npm notice New patch version of npm available! 10.5.0 -> 10.5.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.5.1
npm notice Run npm install -g [email protected] to update!
npm notice
(node:27) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Found 2 robot(s)!
Robot "Moppy" (sku: m611320 SoftwareVer: sanmarino+22.29.6+2022-12-01-82f3372a65c+Firmware-Build+2321):
BLID=> FC86XXXXXXXXXXXXXXXXXXX
Password=> :1:171XXXXXXXXXXXXXXXX <= Yes, all this string.

Robot "Sucky" (sku: j955020 SoftwareVer: ruby+23.37.5+2023-10-17-5245d211fc3+Firmware-Production+167):
BLID=> 95C31XXXXXXXXXXXXXX
Password=> :1:171XXXXXXXXXXXXXXXXXXXXXXXX <= Yes, all this string.

Use this credentials in dorita980 lib :)

Same issue here with 966. I used to have the integration running for more than an year. Nothing have changed, I just lost connectivity.

valentinmirchev avatar Apr 15 '24 10:04 valentinmirchev

Same issue here with J9+. I've now tried it with two J9's. No problem getting the password using get-roomba-password-cloud via dorita on my rpi4. Then run the HA integration, it finds the vacuum, but doesn't accept password. I've tried every sequence of button pushes and reboots that I can fathom--it never gets the password. So then I paste it manually, and I still get a "Failed to connect" message. I have a Braava that continues to be connected to HA without a problem.

@Orhideous, you wrote in the HA community to mention you on the github issue. Not sure if there's anything you can do to help, but I'd be greatly appreciative.

Logs say: Logger: roombapy.remote_client Source: /usr/local/lib/python3.12/site-packages/roombapy/remote_client.py:95 First occurred: 12:19:55 AM (39 occurrences) Last logged: 12:38:42 AM

Can't connect to 192.168.1.91 Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/roombapy/remote_client.py", line 93, in connect self._open_mqtt_connection() File "/usr/local/lib/python3.12/site-packages/roombapy/remote_client.py", line 121, in _open_mqtt_connection self.mqtt_client.reconnect() File "/usr/local/lib/python3.12/site-packages/paho/mqtt/client.py", line 1044, in reconnect sock = self._create_socket_connection() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/socket.py", line 852, in create_connection raise exceptions[0] File "/usr/local/lib/python3.12/socket.py", line 837, in create_connection sock.connect(sa) ConnectionRefusedError: [Errno 111] Connection refused

mluckolson avatar Apr 18 '24 04:04 mluckolson

I have two devices, an i8 and a 974. i8 is still working but the 974 cant login anymore. Even with the password I got from dorita980. So the device does get recognized when searching for it but the password is not accepted.

alebr001 avatar Apr 22 '24 13:04 alebr001

I suspect this may have something to do with the outdated libraries used in the dorita980 scripts. There were multiple warnings of depreciation when I ran it. If the integration uses those same depreciated libraries to pull the passwords, that would make sense that things are failing.

quadcom avatar Apr 22 '24 13:04 quadcom

After software update of Supervisor to 2024.04.0 version, in my case the problem was solved. Roomba was detected and connected with no issue.

What do you mean update Supervisor ? Doesn't seem to be a release of Home Assistant mentionning that. My install runs in a docker container, is it possible to apply such an update ?

I believe the poster is running HAOS which is a complete system running either on bare metal of a VM. There's a lot more to HA than just the core in that case, Supervisor being one of them.

quadcom avatar Apr 22 '24 14:04 quadcom

If it's of any help, I am currently running the latest HAOS release.

Core: 2024.4.3 Supervisor: 2024.04.0 Operating System: 12.2 Frontend: 20240404.2

quadcom avatar Apr 22 '24 14:04 quadcom

I suspect this may have something to do with the outdated libraries used in the dorita980 scripts. There were multiple warnings of depreciation when I ran it. If the integration uses those same depreciated libraries to pull the passwords, that would make sense that things are failing.

I dont know that much about those deprecated libraries, but if that would break anything I would assume that the password as a whole cannot be retrieved, not that it would make a password up. Also it doesnt really make sense that my password can not be auto-retrieved anymore in the roomba integration itself.

alebr001 avatar Apr 22 '24 14:04 alebr001

I suspect this may have something to do with the outdated libraries used in the dorita980 scripts. There were multiple warnings of depreciation when I ran it. If the integration uses those same depreciated libraries to pull the passwords, that would make sense that things are failing.

I dont know that much about those deprecated libraries, but if that would break anything I would assume that the password as a whole cannot be retrieved, not that it would make a password up. Also it doesnt really make sense that my password can not be auto-retrieved anymore in the roomba integration itself.

If the integration uses those libraries to pull, and most likely decrypt the returned password. It could possibly pull the password hash but fail on the decrypt part. One of the deprications mentions mathrandom() which could be used in this case;

npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: 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 [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142

Not a definitive answer but just suggesting possibilities. It appears the dorita980 scripts are somewhat old.

quadcom avatar Apr 22 '24 14:04 quadcom

Yes that might makes sense, unfortunately if I use the Roomba980 repo i get the same password

alebr001 avatar Apr 22 '24 14:04 alebr001

I have a Roomba 980 and a i7. Both are detected automatically by HA 2024.4.3 (2024.04.0 | 12.2) I can configure the i7 with no problem in seconds using the password I retrieved with the dorita980 script.

But failing to do so with the 980, no matter which combination of pressing Home, Home and Spot or none after a few seconds the Integration reports back with ^failed to connect'

Bildschirmfoto 2024-04-23 um 09 54 36

I've had both devices running for more than a year previously with no problems. After updating HA to 2023.12.0 the 980 stoped working within HA and none of the following releases of HA solved my problem. With some versions the 980 wasn't even detected automatically, this started to work again with 2024.4.0 - nonetheless Integration still fails.

adamengineering avatar Apr 23 '24 07:04 adamengineering

Brand new J9+ vac and M6 Mop. HAOS found the M6 Mop but no the J9+ Vac. Attempting to connect directly via IP and providing password from dorita fail. One thing I wonder might be an issue is the BLID numbers for the MOP and the VAC are different. Does the main integration re-use the BLID number from previous integrations to add more items? Also, the passwords returned contain special chars. Could that be something new that's tripping up the scripts? Then there's all the deprication warnings on the docker container that runs dorita to pull the UN&PASS. Could those deprications be causing issues with the data returned? I couldn't get the integration to pull the UN & PASS using the instructions for either the VAC or the MOP. The MOP finally was connected using the password provided by dorita after numerous attempts and failures.

XXXXXX@docker1:~$ sudo docker run -it node sh -c "npm install -g dorita980 && get-roomba-password-cloud [email protected] XXXXXXXXXXXXXXXXXXXXX"
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: 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 [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142

added 125 packages in 7s

4 packages are looking for funding
  run `npm fund` for details
npm notice
npm notice New patch version of npm available! 10.5.0 -> 10.5.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.5.1
npm notice Run npm install -g [email protected] to update!
npm notice
(node:27) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Found 2 robot(s)!
Robot "Moppy" (sku: m611320 SoftwareVer: sanmarino+22.29.6+2022-12-01-82f3372a65c+Firmware-Build+2321):
BLID=> FC86XXXXXXXXXXXXXXXXXXX
Password=> :1:171XXXXXXXXXXXXXXXX <= Yes, all this string.

Robot "Sucky" (sku: j955020 SoftwareVer: ruby+23.37.5+2023-10-17-5245d211fc3+Firmware-Production+167):
BLID=> 95C31XXXXXXXXXXXXXX
Password=> :1:171XXXXXXXXXXXXXXXXXXXXXXXX <= Yes, all this string.

Use this credentials in dorita980 lib :)

Same issue here with 966. I used to have the integration running for more than an year. Nothing have changed, I just lost connectivity.

Update: Yesterday I tried again and the integration worked with no issue. Password was retrieved automatically and the roomba integrated without any issue.

valentinmirchev avatar Apr 23 '24 08:04 valentinmirchev

Tried again with the J9+ vaccuum (not the combo, why they kept the same model number is beyond me). Same problem.

One thing I wanted to point out is the J9+ vacuum only has one button. The HA integration states to hold down the Home button for 2 seconds until it makes a noise. For this vacuum, you have to hold that button down for 15+ seconds and it appears to hard reboot the device. The integration then says to hit submit within 30 seconds but it takes more than 30 seconds for the vacuum to reboot and hook back onto the network. If a connection is only successful during a period of time during bootup and unless we are very lucky with the timing, it's not going to be easy to get the integration to connect reliably.

Integration message image

Only one button on the vac image

quadcom avatar Apr 23 '24 16:04 quadcom

@valentinmirchev, since you seem to have succeeded with a J9+, I’d appreciate hearing what your button push sequence and timing looked like. Read @quadcom’s message immediately above. I have the exact same quandary so curious how you navigated this. Thanks in advance.

Can any devs offer a suggested path forward given that the dorita980 scripts appear to be the root of the problem?

mluckolson avatar Apr 23 '24 16:04 mluckolson

since you seem to have succeeded with a J9+

His may have been the J9+ combo which is different device. The J9+ that I have is just a vacuum. It's not the vac/mop combo unit.

Just to clarify.

quadcom avatar Apr 23 '24 16:04 quadcom

Ahh fair point

mluckolson avatar Apr 23 '24 16:04 mluckolson

Guys it's not j9, I have a 966

valentinmirchev avatar Apr 23 '24 17:04 valentinmirchev