Posted October 6Oct 6 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)
October 6Oct 6 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 October 6Oct 6 by Goose66
October 6Oct 6 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.
October 8Oct 8 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.
October 9Oct 9 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.
October 9Oct 9 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.
October 10Oct 10 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)
October 10Oct 10 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.
October 10Oct 10 Never mind, that took about a minute to do so I just submitted version 2.0.9 to the store
October 11Oct 11 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 Roomba2025-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 Mapping2025-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 Saturday at 11:06 AM5 days by Lore
October 13Oct 13 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
Saturday at 06:38 AM5 days 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.
Saturday at 12:22 PM5 days 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.
Saturday at 03:07 PM4 days 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.
Saturday at 04:06 PM4 days Ok, with multiple people seeing the same thing, it probably means that I screwed something up. I'll take a look and report back.
Saturday at 04:13 PM4 days 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.
Monday at 01:12 PM2 days 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 Roombas2025-10-20 05:50:51.432 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:_get_response: Comparing irobotmcs with irobotmcs2025-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 irobotmcs2025-10-20 05:50:52.352 MQTT udi_interface.interface INFO interface:_message: Profile installation finished2025-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 irobotmcs2025-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 irobotmcs2025-10-20 05:50:54.503 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:_get_response: Comparing irobotmcs with irobotmcs2025-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 irobotmcs2025-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 irobotmcs2025-10-20 05:50:56.512 Thread-5 (handleConfigDone) udi_interface ERROR roomba-poly:discover: Failed to discover any Roomba robots2025-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 discovery2025-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 thread2025-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 bootstrapinner2025-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 run2025-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 handleConfigDone2025-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 discoverRobots2025-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 getPassword2025-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_socket2025-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: ValueError2025-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 specified2025-10-20 05:50:56.616 MQTT udi_interface.interface INFO interface:_message: Successfully set key = notices
Tuesday at 01:36 AM2 days 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
Tuesday at 04:16 PM1 day Submitted version 2.0.11 to the store. This has an updated getPassword() function that should be compatible with the latest OpenSSL versions.
Tuesday at 06:01 PM1 day Version 2.0.11This looks totally sus..2025-10-21 10:56:46.890 Thread-5 (handleConfigDone) udi_interface ERROR udi_interface:write: NameError2025-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 defined2025-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
Tuesday at 07:14 PM1 day Version 2.0.12, Discovery seems to work, but no nodes show up. There's a blue notice that pops up saying it's "Initializing Connection to Living Roomba" which is the first one, but then all activity stops and no nodes are listed.2025-10-21 12:02:09.293 Command udi_interface.interface INFO interface:_handleInput: Received stop from Polyglot... Shutting Down.2025-10-21 12:02:09.294 Command udi_interface.interface INFO interface:stop: Disconnecting from MQTT... localhost:88832025-10-21 12:02:09.294 Command udi_interface.interface INFO interface:_disconnect: MQTT Unexpected disconnection. Reason code: Normal disconnection. Sent by server: False. Retry in 10 seconds.2025-10-21 12:02:13.785 MainThread udi_interface INFO polylogger:set_basic_config: set_basic_config: enable=True level=302025-10-21 12:02:13.786 MainThread udi_interface INFO init:<module>: UDI interface initializing2025-10-21 12:02:13.786 MainThread udi_interface INFO init:<module>: User=None2025-10-21 12:02:13.786 MainThread udi_interface INFO init:<module>: Home=/var/polyglot/pg3/ns/0021b9026dfb_32025-10-21 12:02:13.786 MainThread udi_interface INFO init:<module>: Node Server Path=/var/polyglot/pg3/ns/0021b9026dfb_32025-10-21 12:02:13.786 MainThread udi_interface INFO init:<module>: PG3INIT=eyJ1dWlkIjoiMDA6MjE6Yjk6MDI6NmQ6ZmIiLCJwcm9maWxlTnVtIjozLCJsb2dMZXZlbCI6IklORk8iLCJ0b2tlbiI6ImNyaWlMVFV0V2ltPXBrJkciLCJtcXR0SG9zdCI6ImxvY2FsaG9zdCIsIm1xdHRQb3J0Ijo4ODgzLCJzZWN1cmUiOjEsImlzUEczeCI6dHJ1ZSwicGczVmVyc2lvbiI6IjMuMy4yMiIsImlzeVZlcnNpb24iOiI2LjAuMCIsImVkaXRpb24iOiJGcmVlIn0=2025-10-21 12:02:13.786 MainThread udi_interface INFO init:<module>: Loading interface module2025-10-21 12:02:13.828 MainThread udi_interface INFO interface:<module>: Loading MQTT module2025-10-21 12:02:14.317 MainThread udi_interface INFO interface:<module>: MQTT module loaded2025-10-21 12:02:14.531 MainThread udi_interface INFO init:<module>: Loading udi_interface module2025-10-21 12:02:14.532 MainThread udi_interface INFO init:<module>: Loading node module2025-10-21 12:02:14.532 MainThread udi_interface INFO init:<module>: Loading custom module2025-10-21 12:02:14.532 MainThread udi_interface INFO init:<module>: Loading isy module2025-10-21 12:02:14.532 MainThread udi_interface INFO init:<module>: Loading OAuth module2025-10-21 12:02:14.533 MainThread udi_interface INFO init:<module>: UDI interface initialized2025-10-21 12:02:14.533 MainThread udi_interface INFO init:<module>: UDI Python Interface for Polyglot version 3 3.3.18 Starting...2025-10-21 12:02:14.539 MainThread udi_interface DEBUG udi_interface:write: CV or numpy module not found, falling back to PIL2025-10-21 12:02:14.539 MainThread udi_interface DEBUG udi_interface:write: PIL module not found, maps are disabled2025-10-21 12:02:14.540 MainThread udi_interface.interface INFO interface:__init__: Initialization received from Polyglot V3 3.3.22 [ISY: 6.0.0, Slot: 3]2025-10-21 12:02:14.540 MainThread udi_interface.interface INFO interface:__init__: Connect: Network Interface: {'addr': '192.168.1.220', 'netmask': '255.255.255.0', 'broadcast': '192.168.1.255'}2025-10-21 12:02:14.541 Interface udi_interface.interface INFO interface:_startMqtt: Connecting to MQTT... localhost:88832025-10-21 12:02:14.541 MainThread udi_interface.interface INFO interface:updateProfile: Sending Install Profile command to Polyglot.2025-10-21 12:02:14.541 Interface udi_interface.interface INFO interface:_startMqtt: Using SSL cert: 0021b9026dfb_3.cert key: 0021b9026dfb_3.key ca: /usr/local/etc/ssl/certs/ud.ca.cert2025-10-21 12:02:14.548 Thread-1 udi_interface INFO roomba-poly:start: Roomba node server starting2025-10-21 12:02:14.549 Interface udi_interface.interface INFO interface:_startMqtt: MQTT keepalive is 300 seconds.2025-10-21 12:02:14.600 MQTT udi_interface.interface INFO interface:_connect: MQTT Connected with Reason code: Success2025-10-21 12:02:14.601 MQTT udi_interface.interface INFO interface:_connect: MQTT Subscribing to topic: udi/pg3/ns/clients/00:21:b9:02:6d:fb_3 - MID: 2 Result: 02025-10-21 12:02:14.643 MQTT udi_interface.interface INFO interface:_subscribe: MQTT Subscribed Successfully for Message ID: 2. Reason codes: ['Granted QoS 0']2025-10-21 12:02:14.734 MQTT udi_interface.interface INFO interface:_message: Successfully set key = customparamsdoc2025-10-21 12:02:14.776 Thread-3 (handleRobotData) udi_interface INFO roomba-poly:handleRobotData: Loading saved robots {'robots': {'192.168.1.210': {'hostname': 'Roomba-3166481071120860', 'robot_name': 'Living Roomba', 'ip': '192.168.1.210', 'mac': 'D0:C5:D3:0D:07:3C', 'firmware': 'v2.4.17-138', 'sku': 'R985020', 'blid': '3166481071120860', 'capabilities': {'pose': 1, 'ota': 2, 'multiPass': 2, 'carpetBoost': 1, 'pp': 1, 'binFullDetect': 1, 'langOta': 1, 'maps': 1, 'edge': 1, 'eco': 1, 'svcConf': 1}}, '192.168.1.211': {'hostname': 'Roomba-3164421081537810', 'robot_name': 'Upstairs Roomba', 'ip': '192.168.1.211', 'mac': '80:C5:F2:C6:7D:78', 'firmware': 'v2.4.17-138', 'sku': 'R985020', 'blid': '3164421081537810', 'capabilities': {'pose': 1, 'ota': 2, 'multiPass': 2, 'carpetBoost': 1, 'pp': 1, 'binFullDetect': 1, 'langOta': 1, 'maps': 1, 'edge': 1, 'eco': 1, 'svcConf': 1}}, '192.168.1.212': {'hostname': 'Roomba-80B2841452328550', 'robot_name': 'Entry Roomba', 'ip': '192.168.1.212', 'mac': '70:66:55:42:E6:BA', 'firmware': 'v2.4.17-138', 'sku': 'R981020', 'blid': '80B2841452328550', 'capabilities': {'pose': 1, 'ota': 2, 'multiPass': 2, 'carpetBoost': 1, 'pp': 1, 'binFullDetect': 1, 'langOta': 1, 'maps': 1, 'edge': 1, 'eco': 1, 'svcConf': 1}}}}2025-10-21 12:02:14.777 Thread-3 (handleRobotData) udi_interface INFO roomba-poly:handleRobotData: We have restored the saved robot list2025-10-21 12:02:14.777 Thread-3 (handleRobotData) udi_interface INFO roomba-poly:handleRobotData: Finished with handleRobotData2025-10-21 12:02:14.877 Thread-5 (handleConfigDone) udi_interface.custom INFO custom:_save: Sending data notices to Polyglot.2025-10-21 12:02:14.971 MQTT udi_interface.interface INFO interface:_message: Successfully set key = notices2025-10-21 12:02:15.777 MQTT udi_interface.interface INFO interface:_message: Profile installation finished2025-10-21 12:02:19.550 Thread-1 udi_interface INFO roomba-poly:addNodes: Discovery fround 3 robots!2025-10-21 12:02:19.550 Thread-1 udi_interface.custom INFO custom:_save: Sending data notices to Polyglot.2025-10-21 12:02:19.550 Thread-1 udi_interface INFO roomba-poly:addNodes: Create a new node for Living Roomba ...2025-10-21 12:02:19.550 Thread-1 udi_interface INFO roomba-poly:addNodes: Create Roomba Object2025-10-21 12:02:19.664 MQTT udi_interface.interface INFO interface:_message: Successfully set key = notices Edited Tuesday at 10:18 PM1 day by Lore
Yesterday at 12:01 AM1 day That's where the log stops? After "Create Roomba Object" it calls into the external roomba library and tries to initialize the robot. One of the very first things it does it output a log message, which isn't in your log.Can you check the PG3x log to see if there are any errors there?The only thing I can think of is that it's calling in with bad parameters. I'll add a log message to log what parameters it's sending.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.