Jump to content
View in the app

A better way to browse. Learn more.

Universal Devices Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

cannot import name 'Mapping' from 'collections'

Featured Replies

Posted

I just added the roomba plugin to my eisy setup running 6.0 and pg3,  it's not finding our roomba s9+

It doesn't start and discover doesn't appear to do anything. 

 

I can control it from the app just fine, looking in the logs there are a bunch of errors that look like python errors:

 

2025-10-06 09:14:18.142 MainThread udi_interface      INFO     __init__:<module>: Loading udi_interface module
2025-10-06 09:14:18.143 MainThread udi_interface      INFO     __init__:<module>: Loading node module
2025-10-06 09:14:18.143 MainThread udi_interface      INFO     __init__:<module>: Loading custom module
2025-10-06 09:14:18.143 MainThread udi_interface      INFO     __init__:<module>: Loading isy module
2025-10-06 09:14:18.143 MainThread udi_interface      INFO     __init__:<module>: Loading OAuth module
2025-10-06 09:14:18.144 MainThread udi_interface      INFO     __init__:<module>: UDI interface initialized
2025-10-06 09:14:18.144 MainThread udi_interface      INFO     __init__:<module>: UDI Python Interface for Polyglot version 3 3.3.18 Starting...
2025-10-06 09:14:18.146 MainThread udi_interface      ERROR    udi_interface:write: Traceback (most recent call last):
2025-10-06 09:14:18.146 MainThread udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026aaf_9/roomba-poly.py", line 19, in <module>
2025-10-06 09:14:18.146 MainThread udi_interface      ERROR    udi_interface:write: from roomba import Roomba
2025-10-06 09:14:18.147 MainThread udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026aaf_9/roomba.py", line 42, in <module>
2025-10-06 09:14:18.147 MainThread udi_interface      ERROR    udi_interface:write: from collections import Mapping
2025-10-06 09:14:18.147 MainThread udi_interface      ERROR    udi_interface:write: ImportError
2025-10-06 09:14:18.147 MainThread udi_interface      ERROR    udi_interface:write: :
2025-10-06 09:14:18.147 MainThread udi_interface      ERROR    udi_interface:write: cannot import name 'Mapping' from 'collections' (/usr/local/lib/python3.11/collections/__init__.py)

 

Hmm. This is not my plugin, but I recognize this error. The Mapping class is in collections.abc, not collections. And it's been that way since Python 3.3. I think Python 3.3-3.9 had an alias that allowed imports from collections, but that was removed in Python 3.10. But that was like 4 years ago. And udx has included Python 3.10 or 3.11 for most of that timeframe. So it doesn't make a lot of sense that it would just now be cropping up now. I guess it's possible that the Roomba plugin (or the roomba library it depends on) hasn't been updated in A LONG TIME.

Edited by Goose66

I see the plugin is in a GitHub repo and it's free. The quick fix for you would be to ssh into your eisy or policy, navigate to the /var/polyglot/pg3/ns/0021b9026aaf_9/roomba.py file, and change

 from collections import Mapping

to

 from collections.abc import Mapping

using a text editor, like ee or vi

A better solution would be to fork the repository in GitHub, make the fix and make a pull request to Bob to merge it back in and upload a new version of the plugin. That way, it should work for anyone who needs it.

  • Author

Thanks I opened a bug.  I Did also try editing the python and it got further log says made a node but no node actually appears.  My guess is the plugin is orphaned given the python issue just kinda gives the feeling of nobody is using it.

Not really orphaned, just low priority and difficult to debug as I'm not the original author of the plug-in and it does depend on the external library for all the interaction with the Roomba.   

Since that external library was developed without any documentation or support from Roomba, it is also possible that Roomba has updated the firmware so that it no longer works.

The external library hasn't been updated in about 4 years except for one minor change and I've added that one change and it didn't make any difference.

I'll spend some more time and see if I can track down the issue.

I managed to find a couple of things and it seems to be working for me now.

First, it looks like the newer OpenSSL liibs now being used on eisy/Polisy block the security methods Roomba uses and I wasn't able to get a connection to the Roomba.  I found a workaround for that overrides the block and that allows it to connect and I was getting data from the Roomba.

At some point the external library being used switch to an asyncio based library but plug-ins are not asyncio.  This means you have to some modifications in the plug-in to properly call the asyncio based functions in the library.  I had already make most of those changes.  But there was one place I didn't have it right and it was hanging in the initialization code where it waits for the Roomba to send out the updates to get the full state of the Roomba.

Once I fixed that, the node was created and I think it's working.  However, there still could be places where I don't have proper code in there to access the asyncio functions.

Version 2.0.8 should be in the store now. 

Thanks for the update.  I have tried to update the plugin but it never really updated the roomba plugin.  Finally just deleted the old one and reinstalled.  that worked and now I am running 2.0.8.

However when trying to connect the Roomba device I still see the following error in the log:

 
2025-10-09 22:01:25.678 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:getPassword: start password discovery
2025-10-09 22:01:25.679 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:getPassword: Connecting to 10.100.100.142 on port 8883
2025-10-09 22:01:26.150 Thread-5 (handleConfigDone) udi_interface ERROR roomba-poly:getPassword: Failed to connect to robot: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1016)
11 hours ago, leonpc said:

Thanks for the update.  I have tried to update the plugin but it never really updated the roomba plugin.  Finally just deleted the old one and reinstalled.  that worked and now I am running 2.0.8.

However when trying to connect the Roomba device I still see the following error in the log:

 
2025-10-09 22:01:25.678 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:getPassword: start password discovery
2025-10-09 22:01:25.679 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:getPassword: Connecting to 10.100.100.142 on port 8883
2025-10-09 22:01:26.150 Thread-5 (handleConfigDone) udi_interface ERROR roomba-poly:getPassword: Failed to connect to robot: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1016)

Looks like that's another place that needs the workaround to enable unsafe renegotiation.  When I tested, it didn't call that function, probably because the vacuum was already know to the plug-in.

I'm gone for a few days so it'll probably be sometime next week that I can fix it.

Never mind, that took about a minute to do so I just submitted version 2.0.9 to the store

Thanks will test it and let you know...  Appreciate your trouble!

I just pulled the latest after having that issue.  I still get what looks like the same issue.

2025-10-11 00:00:14.423 MainThread udi_interface      ERROR    udi_interface:write: Traceback (most recent call last):
2025-10-11 00:00:14.423 MainThread udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026dfb_3/roomba-poly.py", line 19, in <module>
2025-10-11 00:00:14.424 MainThread udi_interface      ERROR    udi_interface:write: from roomba import Roomba
2025-10-11 00:00:14.424 MainThread udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026dfb_3/roomba.py", line 42, in <module>
2025-10-11 00:00:14.424 MainThread udi_interface      ERROR    udi_interface:write: from collections import Mapping
2025-10-11 00:00:14.424 MainThread udi_interface      ERROR    udi_interface:write: ImportError
 

Edit: sorry old log. New version does not save logs, or produces any logs at all, or finds roombas.

Edited by Lore

It appears that you don't have the updated roomba.py file.  The failure is showing on line 42, which in the latest version is a blank line so very likely not a failure.

The current version of roomba.py is 2.0.2, version 2.0.0i would have that failure on line 42

I have updated my roomba plugin to v2.0.9. However since the update I cannot get the roomba plugin to connect and I cannot get any logs to display.

I'm having the same problem. Program loads very quickly, does not appear to start, shows diconnected, get error meassage, file not found when trying to check logs. Version v2.0.8 did start but never connected to any devices. Orphaned/abadoned plugin bpwwer has tried to get it going again but not his plugin.

2 hours ago, EricBarish said:

I'm having the same problem. Program loads very quickly, does not appear to start, shows diconnected, get error meassage, file not found when trying to check logs. Version v2.0.8 did start but never connected to any devices. Orphaned/abadoned plugin bpwwer has tried to get it going again but not his plugin.

Same issue. Plug-in appears to do nothing. Logs not outputting or saving.

Ok, with multiple people seeing the same thing, it probably means that I screwed something up. I'll take a look and report back.

Yeah, all my fault. Made what I thought was a simple change and didn't test it. Fixed in 2.0.10 which I just submitted to the store.

Now using 2.0.10. Had to reboot and reinstall and it's connecting fine. It's just not discovering my 3 Roombas and I get a message (a different Roomba each time) to hold the home button and make the WiFi flash, which I do. Even tried all three flashing at once. No luck. Here's the log...

2025-10-20 05:50:51.431 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:discover: Attempting to discover Roombas

2025-10-20 05:50:51.432 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:_get_response: Comparing irobotmcs with irobotmcs

2025-10-20 05:50:51.492 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:_get_response: Comparing {"ver":"3","hostname":"Roomba-3166481071120860","robotname":"Living Roomba","ip":"192.168.1.210","mac":"D0:C5:D3:0D:07:3C","sw":"v2.4.17-138","sku":"R985020","nc":0,"proto":"mqtt","cap":{"pose":1,"ota":2,"multiPass":2,"carpetBoost":1,"pp":1,"binFullDetect":1,"langOta":1,"maps":1,"edge":1,"eco":1,"svcConf":1}} with irobotmcs

2025-10-20 05:50:52.352 MQTT udi_interface.interface INFO interface:_message: Profile installation finished

2025-10-20 05:50:52.495 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:_get_response: Comparing {"ver":"3","hostname":"Roomba-80B2841452328550","robotname":"Entry Roomba","ip":"192.168.1.212","mac":"70:66:55:42:E6:BA","sw":"v2.4.17-138","sku":"R981020","nc":0,"proto":"mqtt","cap":{"pose":1,"ota":2,"multiPass":2,"carpetBoost":1,"pp":1,"binFullDetect":1,"langOta":1,"maps":1,"edge":1,"eco":1,"svcConf":1}} with irobotmcs

2025-10-20 05:50:53.500 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:_get_response: Comparing {"ver":"3","hostname":"Roomba-3164421081537810","robotname":"Upstairs Roomba","ip":"192.168.1.211","mac":"80:C5:F2:C6:7D:78","sw":"v2.4.17-138","sku":"R985020","nc":0,"proto":"mqtt","cap":{"pose":1,"ota":2,"multiPass":2,"carpetBoost":1,"pp":1,"binFullDetect":1,"langOta":1,"maps":1,"edge":1,"eco":1,"svcConf":1}} with irobotmcs

2025-10-20 05:50:54.503 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:_get_response: Comparing irobotmcs with irobotmcs

2025-10-20 05:50:54.504 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:_get_response: Comparing {"ver":"3","hostname":"Roomba-80B2841452328550","robotname":"Entry Roomba","ip":"192.168.1.212","mac":"70:66:55:42:E6:BA","sw":"v2.4.17-138","sku":"R981020","nc":0,"proto":"mqtt","cap":{"pose":1,"ota":2,"multiPass":2,"carpetBoost":1,"pp":1,"binFullDetect":1,"langOta":1,"maps":1,"edge":1,"eco":1,"svcConf":1}} with irobotmcs

2025-10-20 05:50:55.504 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:_get_response: Comparing {"ver":"3","hostname":"Roomba-3164421081537810","robotname":"Upstairs Roomba","ip":"192.168.1.211","mac":"80:C5:F2:C6:7D:78","sw":"v2.4.17-138","sku":"R985020","nc":0,"proto":"mqtt","cap":{"pose":1,"ota":2,"multiPass":2,"carpetBoost":1,"pp":1,"binFullDetect":1,"langOta":1,"maps":1,"edge":1,"eco":1,"svcConf":1}} with irobotmcs

2025-10-20 05:50:56.512 Thread-5 (handleConfigDone) udi_interface ERROR roomba-poly:discover: Failed to discover any Roomba robots

2025-10-20 05:50:56.513 Thread-5 (handleConfigDone) udi_interface.custom INFO custom:_save: Sending data notices to Polyglot.

2025-10-20 05:50:56.513 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:getPassword: start password discovery

2025-10-20 05:50:56.513 Thread-5 (handleConfigDone) py.warnings WARNING warnings:_showwarnmsg: /var/polyglot/pg3/ns/0021b9026dfb_3/roomba-poly.py:769: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket()

2025-10-20 05:50:56.513 Thread-5 (handleConfigDone) py.warnings WARNING warnings:_showwarnmsg: /var/polyglot/pg3/ns/0021b9026dfb_3/roomba-poly.py:769: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket()

2025-10-20 05:50:56.513 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: Exception in thread

2025-10-20 05:50:56.513 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: Thread-5 (handleConfigDone)

2025-10-20 05:50:56.513 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: :

2025-10-20 05:50:56.513 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: Traceback (most recent call last):

2025-10-20 05:50:56.513 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/threading.py", line 1045, in bootstrapinner

2025-10-20 05:50:56.514 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: self.run()

2025-10-20 05:50:56.514 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/threading.py", line 982, in run

2025-10-20 05:50:56.515 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: self._target(*self._args, **self._kwargs)

2025-10-20 05:50:56.515 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026dfb_3/roomba-poly.py", line 869, in handleConfigDone

2025-10-20 05:50:56.515 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: discoverRobots()

2025-10-20 05:50:56.516 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026dfb_3/roomba-poly.py", line 957, in discoverRobots

2025-10-20 05:50:56.516 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: getPassword(robot)

2025-10-20 05:50:56.516 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026dfb_3/roomba-poly.py", line 769, in getPassword

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ssl_socket = ssl.wrap_socket(

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.517 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.518 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.518 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.518 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.518 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.518 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.518 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.518 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ^

2025-10-20 05:50:56.518 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/ssl.py", line 1473, in wrap_socket

2025-10-20 05:50:56.519 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: raise ValueError("certfile must be specified")

2025-10-20 05:50:56.519 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: ValueError

2025-10-20 05:50:56.519 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: :

2025-10-20 05:50:56.519 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: certfile must be specified

2025-10-20 05:50:56.616 MQTT udi_interface.interface INFO interface:_message: Successfully set key = notices

  • Author

I am getting the same results, but I never had the Roomba plugin before to know if it even works. Ours is an S9+

When I press + hold the home button after a few second I get a spinning blue LED circle (there is no wifi light) and the above errors almost identical to Lore.

ac","robotid":"046421AC1F41453CA786C42390BAFA01","ip":"192.168.84.228","mac":"50:14:79:1E:FD:42","sw":"soho+22.29.10+2023-10-09-2b3f87f75e8+Firmware-Build+4863","sku":"s910020","nc":0,"proto":"mqtt","cap":{"carpetBoost":1,"binFullDetect":2,"oMode":2,"dockComm":1,"edge":0,"maps":3,"pmaps":10,"mc":2,"tLine":2,"area":1,"eco":1,"multiPass":2,"team":1,"pp":0,"pose":2,"lang":2,"gentle":1,"5ghz":1,"prov":3,"sched":2,"svcConf":1,"ota":2,"log":2,"langOta":0,"ns":1,"tileScan":1}} with irobotmcs
2025-10-20 21:07:05.712 MQTT       udi_interface.interface INFO     interface:_message: Profile installation finished
2025-10-20 21:07:06.230 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:_get_response: Comparing irobotmcs with irobotmcs
2025-10-20 21:07:06.451 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:_get_response: Comparing {"ver":"3","hostname":"iRobot-046421AC1F41453CA786C42390BAFA01","robotname":"Main Floor Vac","robotid":"046421AC1F41453CA786C42390BAFA01","ip":"192.168.84.228","mac":"50:14:79:1E:FD:42","sw":"soho+22.29.10+2023-10-09-2b3f87f75e8+Firmware-Build+4863","sku":"s910020","nc":0,"proto":"mqtt","cap":{"carpetBoost":1,"binFullDetect":2,"oMode":2,"dockComm":1,"edge":0,"maps":3,"pmaps":10,"mc":2,"tLine":2,"area":1,"eco":1,"multiPass":2,"team":1,"pp":0,"pose":2,"lang":2,"gentle":1,"5ghz":1,"prov":3,"sched":2,"svcConf":1,"ota":2,"log":2,"langOta":0,"ns":1,"tileScan":1}} with irobotmcs
2025-10-20 21:07:07.460 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:_get_response: Comparing irobotmcs with irobotmcs
2025-10-20 21:07:07.685 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:_get_response: Comparing {"ver":"3","hostname":"iRobot-046421AC1F41453CA786C42390BAFA01","robotname":"Main Floor Vac","robotid":"046421AC1F41453CA786C42390BAFA01","ip":"192.168.84.228","mac":"50:14:79:1E:FD:42","sw":"soho+22.29.10+2023-10-09-2b3f87f75e8+Firmware-Build+4863","sku":"s910020","nc":0,"proto":"mqtt","cap":{"carpetBoost":1,"binFullDetect":2,"oMode":2,"dockComm":1,"edge":0,"maps":3,"pmaps":10,"mc":2,"tLine":2,"area":1,"eco":1,"multiPass":2,"team":1,"pp":0,"pose":2,"lang":2,"gentle":1,"5ghz":1,"prov":3,"sched":2,"svcConf":1,"ota":2,"log":2,"langOta":0,"ns":1,"tileScan":1}} with irobotmcs
2025-10-20 21:07:08.690 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:_get_response: Comparing irobotmcs with irobotmcs
2025-10-20 21:07:09.039 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:_get_response: Comparing {"ver":"3","hostname":"iRobot-046421AC1F41453CA786C42390BAFA01","robotname":"Main Floor Vac","robotid":"046421AC1F41453CA786C42390BAFA01","ip":"192.168.84.228","mac":"50:14:79:1E:FD:42","sw":"soho+22.29.10+2023-10-09-2b3f87f75e8+Firmware-Build+4863","sku":"s910020","nc":0,"proto":"mqtt","cap":{"carpetBoost":1,"binFullDetect":2,"oMode":2,"dockComm":1,"edge":0,"maps":3,"pmaps":10,"mc":2,"tLine":2,"area":1,"eco":1,"multiPass":2,"team":1,"pp":0,"pose":2,"lang":2,"gentle":1,"5ghz":1,"prov":3,"sched":2,"svcConf":1,"ota":2,"log":2,"langOta":0,"ns":1,"tileScan":1}} with irobotmcs
2025-10-20 21:07:10.045 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:_get_response: Comparing irobotmcs with irobotmcs
2025-10-20 21:07:10.142 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:_get_response: Comparing {"ver":"3","hostname":"iRobot-046421AC1F41453CA786C42390BAFA01","robotname":"Main Floor Vac","robotid":"046421AC1F41453CA786C42390BAFA01","ip":"192.168.84.228","mac":"50:14:79:1E:FD:42","sw":"soho+22.29.10+2023-10-09-2b3f87f75e8+Firmware-Build+4863","sku":"s910020","nc":0,"proto":"mqtt","cap":{"carpetBoost":1,"binFullDetect":2,"oMode":2,"dockComm":1,"edge":0,"maps":3,"pmaps":10,"mc":2,"tLine":2,"area":1,"eco":1,"multiPass":2,"team":1,"pp":0,"pose":2,"lang":2,"gentle":1,"5ghz":1,"prov":3,"sched":2,"svcConf":1,"ota":2,"log":2,"langOta":0,"ns":1,"tileScan":1}} with irobotmcs
2025-10-20 21:07:11.150 Thread-5 (handleConfigDone) udi_interface      ERROR    roomba-poly:discover: Failed to discover any Roomba robots
2025-10-20 21:07:11.150 Thread-5 (handleConfigDone) udi_interface.custom INFO     custom:_save: Sending data notices to Polyglot.
2025-10-20 21:07:11.150 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:getPassword: start password discovery
2025-10-20 21:07:11.150 Thread-5 (handleConfigDone) py.warnings        WARNING  warnings:_showwarnmsg: /var/polyglot/pg3/ns/0021b9026aaf_5/roomba-poly.py:769: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket()
2025-10-20 21:07:11.150 Thread-5 (handleConfigDone) py.warnings        WARNING  warnings:_showwarnmsg: /var/polyglot/pg3/ns/0021b9026aaf_5/roomba-poly.py:769: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket()
2025-10-20 21:07:11.151 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: Exception in thread
2025-10-20 21:07:11.151 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: Thread-5 (handleConfigDone)
2025-10-20 21:07:11.151 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: :
2025-10-20 21:07:11.151 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: Traceback (most recent call last):
2025-10-20 21:07:11.151 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
2025-10-20 21:07:11.151 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: self.run()
2025-10-20 21:07:11.152 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: File "/usr/local/lib/python3.11/threading.py", line 982, in run
2025-10-20 21:07:11.152 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: self._target(*self._args, **self._kwargs)
2025-10-20 21:07:11.152 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026aaf_5/roomba-poly.py", line 869, in handleConfigDone
2025-10-20 21:07:11.152 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: discoverRobots()
2025-10-20 21:07:11.153 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026aaf_5/roomba-poly.py", line 957, in discoverRobots
2025-10-20 21:07:11.153 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: getPassword(robot)
2025-10-20 21:07:11.153 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/0021b9026aaf_5/roomba-poly.py", line 769, in getPassword
2025-10-20 21:07:11.153 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ssl_socket = ssl.wrap_socket(
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ^
2025-10-20 21:07:11.154 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: File "/usr/local/lib/python3.11/ssl.py", line 1473, in wrap_socket
2025-10-20 21:07:11.155 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: raise ValueError("certfile must be specified")
2025-10-20 21:07:11.155 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: ValueError
2025-10-20 21:07:11.155 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: :
2025-10-20 21:07:11.155 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: certfile must be specified

Submitted version 2.0.11 to the store. This has an updated getPassword() function that should be compatible with the latest OpenSSL versions.

Version 2.0.11

This looks totally sus..

2025-10-21 10:56:46.890 Thread-5 (handleConfigDone) udi_interface      ERROR    udi_interface:write: NameError

2025-10-21 10:56:46.890 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: :

2025-10-21 10:56:46.890 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: name 'getPassword' is not defined

2025-10-21 10:56:46.890 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: . Did you mean: '

2025-10-21 10:56:46.890 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: getPasswordOld

Sorry, my mistake, fixed and submitted as version 2.0.12

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.