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

From 2.0.17..

2025-11-02 10:02:30.597 Thread-6 (userDiscover) udi_interface      ERROR    roomba-poly:getPassword: 'utf-8' codec can't decode byte 0xf0 in position 0: invalid continuation byte

Traceback (most recent call last):

File "/var/polyglot/pg3/ns/0021b9026dfb_3/roomba-poly.py", line 795, in getPassword

password = str(data[7:].decode().rstrip("\x00"))

^^^^^^^^^^^^^^^^^

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf0 in position 0: invalid continuation byte

I can't seem to get past discovery. The PG3 Roomba plug-in seems to make the Roombas block connection attempts, even from the app, because it says the Roomba may be on another subnet when I try to display the connection info. If I stop the plug-in and reboot the Roomba, or wait, it eventually recovers. The plus-in is stuck doing this when I stop it...

2025-11-03 13:56:55.260 Thread-5 (handleConfigDone) udi_interface      INFO     roomba-poly:getPassword: Connecting to 192.168.1.211 on port 8883

2025-11-03 13:56:55.264 Thread-5 (handleConfigDone) udi_interface ERROR roomba-poly:getPassword: Connection Error (for 192.168.1.211): [Errno 61] Connection refused

2025-11-03 13:56:55.264 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:getPassword: start password discovery

2025-11-03 13:56:55.265 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:getPassword: Connecting to 192.168.1.211 on port 8883

2025-11-03 13:56:55.268 Thread-5 (handleConfigDone) udi_interface ERROR roomba-poly:getPassword: Connection Error (for 192.168.1.211): [Errno 61] Connection refused

2025-11-03 13:56:55.268 Thread-5 (handleConfigDone) udi_interface INFO roomba-poly:getPassword: start password discovery

So what changed between your two posts above?

The first looks like it connected to the roomba and got something while waiting for the password. However, it doesn't appear to be valid password data. That line of code where it failed, has been in the plug-in since the beginning so I don't think it's suddenly wrong. It just looks like the roomba sent something it can't handle.

The second isn't even connecting and the roomba is refusing to connect.

Looks like I need to quit trying to connect if I get anything other than a timeout error. I'll add that to the code. But I don't think the plug-in can do anything to make the roomba accept the connection request, that's controlled by the roomba itself.

The roomba can only have one connection at a time. If you connect with the app, the plug-in will be unable to connect and if the plug-in is connected, the app won't be able to connect.

I'm not trying to connect with the app until after I stop the plug-in and the Roomba acts like it still has a connection. Is it possible the app is trying to reconnect before the previous try has disconnected? It seems to connect the first time, and if I'm quick on the button, it'll even move on to the next Roomba.

I'm far from an expert on how the Roombas work. Basically, if you're going to use the plug-in, don't use the app and if you're going to use the app, don't use the plug-in. And when I say don't use the app, I mean you should not have it running, not even in the background.

I don't know what happens if the app is connected and you press the button on the roomba.

Pressing the button on the roomba, puts it in a mode where it will send it's password to whatever makes a connection to it.

Once something has that password, it can connect directly to the roomba without having to get the password again. So when the plug-in gets the password, it saves it along with the IP address of the roomba so that from that point on, it simply connects to the roomba when it starts.

Create an account or sign in to comment

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.