-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot add Roomba when on different subnet #48180
Comments
roomba documentation |
Thanks for reporting this! I had the same issue and it was driving me nuts, I would not have found the workaround myself, which works great. |
Once we get into trying to get the password, if it fails, we send the user back to try again in https://github.com/home-assistant/core/blob/dev/homeassistant/components/roomba/config_flow.py#L204 Can you post a video of the flow? Are there any tracebacks in the log? |
@bdraco: No, no traces, I have enabled DEBUG logging and I included in this issue everything that shows up in the logs. Regarding the video I'll check how I can make one. |
If the just merged PR doesn't fix it for you, please reopen. I attempted to recreate your described network setup when fixing this and it works now but that's never a perfect 1:1 |
OK, thanks. I'll try again on a future version of Home Assistant that includes this change, and then reopen if it doesn't work. |
The problem
I purchased a new Roomba i7. I initially set it up on my regular network and I was able to add it to Home Assistant and everything worked after testing for a few days. Then I deleted the integration and moved the Roomba to a dedicated "IoT" network that I have, and I can no longer re-add the device via the configuration flow in the UI and the Home button: I always get "Failed to connect" (even though the robot announces that it worked).
I found out an alternative flow that worked, but this requires going against the instructions presented by the config flow.
What is version of Home Assistant Core has the issue?
core-2021.3.4
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
iRobot Roomba and Braava
Link to integration documentation on our website
https://www.home-assistant.io/integrations/roomba/
Example YAML snippet
No response
Anything in the logs that might be useful for us?
I enabled DEBUG logging for
roombapy
andhomeassistant.components.roomba
. This is what gets logged:The above was during the discovery phase. Then it fails to auto-discover the robot (expected, since it is on a separate subnet) and asks for the host and BLID. The IP
xx.xx.xx.6
is the IP of the Home Assistant machine in the "regular" subnet.Once the IP and BLID were entered and I pressed "Home" for two seconds in the robot, it logs the following:
My home network
I have two different subnets. One is the "regular" one and the other is "IoT". Each one has its own Wi-Fi access point.
The "IoT" one is isolated and traffic cannot escape this network. But some devices are whitelisted to talk to the Internet (including the Roomba).
Home Assistant is on the "regular" network. Traffic from "regular" can flow to "IoT". The IP from Home Assistant is also whitelisted in the firewall so devices in "IoT" can talk to Home Assistant.
I have this set up for many years and I am positive that everything is set up fine, networking wise. I have Home Assistant talking to a number of other devices in this same IoT network. But to be sure, I have double checked the whole setup and I found no problems.
Troubleshooting / debugging
After I moved the Roomba to the IoT network, I have done the following:
docker exec -it homeassistant python -c 'import roombapy.entry_points; roombapy.entry_points.password()' xx.xx.xx.179
in the Home Assistant machine. This does work. It can talk to the robot and get the credentials.roombapy
in my desktop computer in the "regular" network. This does work. All command line programs such asroomba-connect
,roomba-discovery
,roomba-password
work as expected.Workaround
After some experimentation I found out an alternate flow that does work. If I don't press Home on the robot when adding the integration, then Home Assistant will ask for the robot password instead. Once I entered the password, then the integration sets up sucesfully and the device and the entities end up being created.
My conclusion
Given the above, it looks like the failure is happening on the "retrieve password" code path. My interpretation is that there are two problems with the component:
docker exec -it homeassistant python -c 'import roombapy.entry_points; roombapy.entry_points.password()' xx.xx.xx.179
does work and it retrieves the correct password.The problems above result in not being able to add the robot if you follow the UI instructions to the letter, when the robot happens to be on a different subnet than Home Assistant. This is not ideal and results in user frustration.
The text was updated successfully, but these errors were encountered: