Closed bphermansson closed 3 years ago
Problem is solved for me now, working as expected.
There appears to be insufficient information here to explain if/how anything was fixed. As per https://github.com/home-assistant/home-assistant/issues/11968, users with newer Neato Botvacs are experiencing issues with connectivity. Some suspect due to the newer standard of "OPS" prefix in the serial number.
Can we please re-open this ticket? (or is it to be deemed the same as #30)?
Just confirmed (pip3 latest pybotvac
), same issue still:
>>> for robot in Account('foo@email.com', '(SNIPPED_PASSWORD)').robots: print(robot)
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/dist-packages/pybotvac/account.py", line 63, in robots
self.refresh_robots()
File "/usr/local/lib/python3.5/dist-packages/pybotvac/account.py", line 109, in refresh_robots
endpoint=robot['nucleo_url']))
File "/usr/local/lib/python3.5/dist-packages/pybotvac/robot.py", line 41, in __init__
if self.service_version not in SUPPORTED_SERVICES:
File "/usr/local/lib/python3.5/dist-packages/pybotvac/robot.py", line 213, in service_version
return self.available_services['houseCleaning']
File "/usr/local/lib/python3.5/dist-packages/pybotvac/robot.py", line 209, in available_services
return self.state['availableServices']
File "/usr/local/lib/python3.5/dist-packages/pybotvac/robot.py", line 205, in state
return self.get_robot_state().json()
File "/usr/local/lib/python3.5/dist-packages/pybotvac/robot.py", line 163, in get_robot_state
return self._message({'reqId': "1", 'cmd': "getRobotState"})
File "/usr/local/lib/python3.5/dist-packages/pybotvac/robot.py", line 60, in _message
response.raise_for_status()
File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 935, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://nucleo.neatocloud.com/vendors/neato/robots/OPS#####-B#A#AAB#B##B/messages
My bot is fully functional, on the WiFi, powered on, etc. (works fully from NeatoApp directly)
Perhaps this issue was confounded. The merge implies the fix was to ignore robots not connected/online. OK. But in #30, this may describe another problem, which I am experiencing.
@bphermansson , please confirm if issue is still present for you? (the re-open may not be required now)
The above snippet you provided works for me
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
>>> from pybotvac import Account
>>> for robot in Account('<SNIP>', '<SNIP>').robots: print(robot)
...
Your 'boyle-ORIGINAL' robot is offline.
Name: boyle, Serial: (SNIP) Traits: ['maps']
Help on package pybotvac:
NAME
pybotvac
PACKAGE CONTENTS
account
robot
version
VERSION
0.0.13
FILE
/home/fermulator/projects/pybotvac/pybotvac/__init__.py
@stianaske , let's close
It seems that this problem occurs when the robots are not fully set up at Neato. There are situations where a robot was set up twice and the old robot was responsible for these errors. In other situations, an old robot that was not actively being used caused these errors.
Unfortunately, this trick with the Mac address doesn't always work, because fully functional robots sometimes lack the Mac address. The Mac address is also not documented, so we should not rely on it.
In https://github.com/stianaske/pybotvac/pull/59 I had to remove that check in order to prevent false positives. Since then, there are some issues popping up again. See:
Even though I see no obvious way to solve this issue we can work around it. #68 is the first step in this direction as we skip invalid robots (those without a secret in this case) for now.
Hi!
Gets this message when I try to use the code:
I have two robots listed at my Neato account.