Page 2 of 4

Re: Botvac Connected with Neato Plugin

PostPosted: Thu Apr 09, 2020 7:05 pm
by kmarkley
Glad to hear it. Update pushed to the plugin store.

Re: Botvac Connected with Neato Plugin

PostPosted: Sat Apr 25, 2020 7:20 am
by shapa
Two D7s, works fine with plugin.

Thanks a lot!

Re: Botvac Connected with Neato Plugin

PostPosted: Fri May 08, 2020 8:37 am
by shapa
Noticed that the plugin is stopped to work.
Had to restart it manually. Looks like it is hanging for some reason. Enabled debug, will continue to monitor.

(" Error process (pid 8866) failed to quit after polite request -- forcing it to quit now")

Re: Botvac Connected with Neato Plugin

PostPosted: Fri May 08, 2020 3:39 pm
by kmarkley
I've had occasional issues with the plugin failing to tell if it has a valid connection to neato's servers (as mentioned in the plugin description). The third-party library I'm using to access the API doesn't seem to expose the source of the problem so I haven't figured out how to identify or rectify the situation automatically. When this happens I usually have to edit and re-save the robot's indigo device.

I have not seen an issue with the plugin hanging and failing to quit after a polite request. It almost sounds like a network issue but I can't be sure. Please let me know if you find any more clues.

Re: Botvac Connected with Neato Plugin

PostPosted: Sun Jun 07, 2020 6:00 pm
by vvrangler
I am receiving the same error message, but it looks like I am running a different firmware version, 4.5.3-189, do you think that is the problem, different versions reporting different json data?

Thanks!

Jun 7, 2020 at 4:54:45 PM
Neato Botvac "Upstairs" request status
Neato Botvac Error "Upstairs" received malformed status message
Neato Botvac Debug {
"action": 0,
"alert": null,
"availableCommands": {
"goToBase": false,
"pause": false,
"resume": false,
"start": true,
"stop": false
},
"availableServices": {
"IECTest": "advanced-1",
"findMe": "basic-1",
"generalInfo": "basic-1",
"houseCleaning": "basic-4",
"logCopy": "basic-1",
"manualCleaning": "basic-1",
"maps": "basic-2",
"preferences": "basic-2",
"schedule": "basic-2",
"softwareUpdate": "basic-1",
"spotCleaning": "basic-3",
"wifi": "basic-1"
},
"cleaning": {
"category": 4,
"mapId": "",
"mode": 1,
"modifier": 1,
"navigationMode": 1,
"spotHeight": 0,
"spotWidth": 0
},
"data": {},
"details": {
"charge": 99,
"dockHasBeenSeen": false,
"isCharging": false,
"isDocked": true,
"isScheduleEnabled": false
},
"error": null,
"meta": {
"firmware": "4.5.3-189",
"modelName": "BotVacD7Connected"
},
"reqId": "1",
"result": "ok",
"state": 1,
"version": 1
}
Neato Botvac Debug "Upstairs" status update complete

Re: Botvac Connected with Neato Plugin

PostPosted: Tue Jun 09, 2020 1:15 pm
by kmarkley
The issue seems to be that your robot is in cleaning category 4.

The plugin is only aware of 3 cleaning categories -- manual (1), house (2), and spot (3). Please put your robot in one of these categories and confirm the plugin can then successfully complete the status request.

If so, let me know what this new category is and I'll add it to the plugin.

Re: Botvac Connected with Neato Plugin

PostPosted: Wed Jun 17, 2020 4:34 pm
by vvrangler
@kmarkley
kmarkley wrote:
The issue seems to be that your robot is in cleaning category 4.

The plugin is only aware of 3 cleaning categories -- manual (1), house (2), and spot (3). Please put your robot in one of these categories and confirm the plugin can then successfully complete the status request.

If so, let me know what this new category is and I'll add it to the plugin.


So this only seems to happen when I am in House mode, however I do have a stored floorplan that it cleans from and I either have to select a room or entire house.
I have included examples of the error for both below. So my assumption would be that Category 4 must mean floorplan?

On this attempt I selected a single room "Family Room" from the floorplan

Neato Botvac Debug {
"action": 4,
"alert": null,
"availableCommands": {
"goToBase": false,
"pause": true,
"resume": false,
"start": false,
"stop": false
},
"availableServices": {
"IECTest": "advanced-1",
"findMe": "basic-1",
"generalInfo": "basic-1",
"houseCleaning": "basic-4",
"logCopy": "basic-1",
"manualCleaning": "basic-1",
"maps": "basic-2",
"preferences": "basic-2",
"schedule": "basic-2",
"softwareUpdate": "basic-1",
"spotCleaning": "basic-3",
"wifi": "basic-1"
},
"cleaning": {
"boundary": {
"id": "877ab40a-f7cf-4105-8dbb-7fca9d7e5788",
"name": "Family Room"
},
"category": 4,
"mapId": "2019-12-02T01:01:09Z",
"mode": 1,
"modifier": 1,
"navigationMode": 2,
"spotHeight": 0,
"spotWidth": 0
},
"data": {},
"details": {
"charge": 94,
"dockHasBeenSeen": true,
"isCharging": false,
"isDocked": false,
"isScheduleEnabled": false
},
"error": null,
"meta": {
"firmware": "4.5.3-189",
"modelName": "BotVacD7Connected"
},
"reqId": "1",
"result": "ok",
"state": 2,
"version": 1
}


In this one I selected Entire House

Neato Botvac Debug {
"action": 0,
"alert": null,
"availableCommands": {
"goToBase": false,
"pause": false,
"resume": false,
"start": true,
"stop": false
},
"availableServices": {
"IECTest": "advanced-1",
"findMe": "basic-1",
"generalInfo": "basic-1",
"houseCleaning": "basic-4",
"logCopy": "basic-1",
"manualCleaning": "basic-1",
"maps": "basic-2",
"preferences": "basic-2",
"schedule": "basic-2",
"softwareUpdate": "basic-1",
"spotCleaning": "basic-3",
"wifi": "basic-1"
},
"cleaning": {
"category": 4,
"mapId": "",
"mode": 1,
"modifier": 1,
"navigationMode": 2,
"spotHeight": 0,
"spotWidth": 0
},
"data": {},
"details": {
"charge": 96,
"dockHasBeenSeen": false,
"isCharging": true,
"isDocked": true,
"isScheduleEnabled": false
},
"error": null,
"meta": {
"firmware": "4.5.3-189",
"modelName": "BotVacD7Connected"
},
"reqId": "1",
"result": "ok",
"state": 1,
"version": 1
}


During the Spot and Manual there were no errors reported.

Thanks again for your help!

Re: Botvac Connected with Neato Plugin

PostPosted: Sat Jun 27, 2020 12:38 pm
by McJohn
Thank you so much for all your effort for the Botvac Connected with Neato Plugin!
It's plug and play! Super! (We've been waiting for years)

Everything is working fast and smooth.
One question:

The Botvac Connected does not want to go to his basket:

Neato Botvac Error "Neato" go to base command not currently available

It's this one:
https://www.neatorobotics.com/support/b ... formation/

How could we fix this?

Thanks for your support.

Regards,

John

Re: Botvac Connected with Neato Plugin

PostPosted: Tue Jul 07, 2020 12:57 pm
by kmarkley
@vvrangler:

Please try a new plugin version posted here: https://github.com/kmarkley/Indigo-Neat ... ag/0.0.4b1

In theory this should address your room cleaning mode issue, but since my unit doesn't support that, it is untested. It also updates the underlying third-party library and should be a little better at dealing with connection problems to the neato server.

Re: Botvac Connected with Neato Plugin

PostPosted: Tue Jul 07, 2020 1:00 pm
by kmarkley
McJohn wrote:
Thank you so much for all your effort for the Botvac Connected with Neato Plugin!
The Botvac Connected does not want to go to his basket:

Neato Botvac Error "Neato" go to base command not currently available


Every time the plugin talks to the neato cloud server, it gets a list of available commands. When you send a command, the plugin checks against the list before sending. You may want to do a status request before your return to dock request.

Maybe the command not currently available message shouldn't be an error. Hmm.

Re: Botvac Connected with Neato Plugin

PostPosted: Sun Aug 30, 2020 1:29 pm
by vvrangler
kmarkley wrote:
@vvrangler:

Please try a new plugin version posted here: https://github.com/kmarkley/Indigo-Neat ... ag/0.0.4b1

In theory this should address your room cleaning mode issue, but since my unit doesn't support that, it is untested. It also updates the underlying third-party library and should be a little better at dealing with connection problems to the neato server.


@kmarkley

Apologies for not responding sooner, this update appear to have fixed the issue, THANK YOU!

Any chance of a slight change in the request_status function to show the room that it is cleaning if it shows map_cleaning?

Code: Select all
            elif self.states['state'] == 'busy':
                if self.states['action'] == "map_cleaning":
                    self.states['display'] = "Cleaning - " + self.states['room']
                else:
                    self.states['display'] = self.states['action']
            else:
                self.states['display'] = self.states['state']
            self.states['display'] = self.states['display'].replace('_',' ')


Thanks again!

Re: Botvac Connected with Neato Plugin

PostPosted: Fri Feb 02, 2024 3:21 am
by McJohn
With Indigo 2023.2 this Neato Botvac plugin suddenly stops working:

Enabling plugin "Neato Botvac 0.1.0" using API v3.0
Starting plugin "Neato Botvac 0.1.0" (pid 79458)
Neato Botvac Error !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Neato Botvac Error pybotvac library must now be manually installed from terminal:
Neato Botvac Error pip3 install pybotvac
Neato Botvac Error !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Started plugin "Neato Botvac 0.1.0"
Neato Botvac Debug Debug logging enabled
Neato Botvac Error Error accessing Neato account - check plugin config and internet connection
Neato Botvac Debug name 'PasswordSession' is not defined
Neato Botvac Debug "Neato" thread started
Neato Botvac "Neato" request status
Neato Botvac Error "Neato Stofzuiger" offline

Then did this:

pip3 install pybotvac
Collecting pybotvac
Downloading pybotvac-0.0.24-py3-none-any.whl (17 kB)
Requirement already satisfied: requests in /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages (from pybotvac) (2.31.0)
Requirement already satisfied: requests-oauthlib in /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages (from pybotvac) (1.3.1)
Collecting voluptuous (from pybotvac)
Obtaining dependency information for voluptuous from https://files.pythonhosted.org/packages ... l.metadata
Downloading voluptuous-0.14.1-py3-none-any.whl.metadata (20 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages (from requests->pybotvac) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages (from requests->pybotvac) (3.6)
Requirement already satisfied: urllib3<3,>=1.21.1 in /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages (from requests->pybotvac) (2.1.0)
Requirement already satisfied: certifi>=2017.4.17 in /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages (from requests->pybotvac) (2023.11.17)
Requirement already satisfied: oauthlib>=3.0.0 in /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages (from requests-oauthlib->pybotvac) (3.2.2)
Downloading voluptuous-0.14.1-py3-none-any.whl (30 kB)
Installing collected packages: voluptuous, pybotvac
Successfully installed pybotvac-0.0.24 voluptuous-0.14.1

But the errors keep coming.

Any idea how to fix this?

Re: Botvac Connected with Neato Plugin

PostPosted: Fri Feb 02, 2024 10:02 am
by autolog
It might be installing it into Python 3.10?

Try:
Code: Select all
pip3.11 install pybotvac

Re: Botvac Connected with Neato Plugin

PostPosted: Fri Feb 02, 2024 2:41 pm
by GlennNZ
Good thought (about 3.11) but directories pip is using is definitely python3.11

Looks really odd, code wise in that the package install has an exception.
Release version of pybotvac? or maybe unlisted dependency? (import emails.utils - which I’m not sure about)

If in terminal

Code: Select all
python3


& try below one at at time - should give you what the issue is
Code: Select all
from pybotvac import Account, Neato, PasswordSession
from pybotvac import Robot
from pybotvac.exceptions import NeatoException


Alternatively - and more easily running plugin in interactive shell - may output the same information to shell on startup.

Glenn


Sent from my iPad using Tapatalk

Re: Botvac Connected with Neato Plugin

PostPosted: Sat Feb 03, 2024 2:40 am
by McJohn
Wow! Thanks for the support and useful answers.
Below the answers from the Indigo Scripting Shell in Terminal:

Code: Select all
Connected to Indigo Server v2023.2.0, api v3.4 (localhost:1176)
>>> from pybotvac import Account, Neato, PasswordSession
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pybotvac/__init__.py", line 1, in <module>
    from .account import Account
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pybotvac/account.py", line 22, in <module>
    from .robot import Robot
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pybotvac/robot.py", line 25, in <module>
    urllib3.disable_warnings(urllib3.exceptions.SubjectAltNameWarning)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'urllib3.exceptions' has no attribute 'SubjectAltNameWarning'
>>>


And;

Code: Select all
 from .robot import Robot
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pybotvac/robot.py", line 25, in <module>
    urllib3.disable_warnings(urllib3.exceptions.SubjectAltNameWarning)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'urllib3.exceptions' has no attribute 'SubjectAltNameWarning'
>>>
>>> from pybotvac import Robot
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pybotvac/__init__.py", line 1, in <module>
    from .account import Account
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pybotvac/account.py", line 22, in <module>
    from .robot import Robot
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pybotvac/robot.py", line 25, in <module>
    urllib3.disable_warnings(urllib3.exceptions.SubjectAltNameWarning)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'urllib3.exceptions' has no attribute 'SubjectAltNameWarning'
>>>


And:

Code: Select all
>>> from pybotvac.exceptions import NeatoException
>>>


Does nothing.

Hope this helps a step forward?