Botvac Connected with Neato Plugin

kmarkley
Posts: 187
Joined: Tue Nov 15, 2016 8:04 pm

Re: Botvac Connected with Neato Plugin

Post by kmarkley »

Glad to hear it. Update pushed to the plugin store.
shapa
Posts: 483
Joined: Mon Sep 08, 2014 6:51 am
Location: Swindon

Re: Botvac Connected with Neato Plugin

Post by shapa »

Two D7s, works fine with plugin.

Thanks a lot!
shapa
Posts: 483
Joined: Mon Sep 08, 2014 6:51 am
Location: Swindon

Re: Botvac Connected with Neato Plugin

Post 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")
kmarkley
Posts: 187
Joined: Tue Nov 15, 2016 8:04 pm

Re: Botvac Connected with Neato Plugin

Post 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.
vvrangler
Posts: 39
Joined: Mon Sep 01, 2014 11:50 am

Re: Botvac Connected with Neato Plugin

Post 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
kmarkley
Posts: 187
Joined: Tue Nov 15, 2016 8:04 pm

Re: Botvac Connected with Neato Plugin

Post 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.
vvrangler
Posts: 39
Joined: Mon Sep 01, 2014 11:50 am

Re: Botvac Connected with Neato Plugin

Post 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!
User avatar
McJohn
Posts: 680
Joined: Tue Dec 18, 2012 5:58 am
Location: The Netherlands
Contact:

Re: Botvac Connected with Neato Plugin

Post 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
kmarkley
Posts: 187
Joined: Tue Nov 15, 2016 8:04 pm

Re: Botvac Connected with Neato Plugin

Post 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.
kmarkley
Posts: 187
Joined: Tue Nov 15, 2016 8:04 pm

Re: Botvac Connected with Neato Plugin

Post 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.
vvrangler
Posts: 39
Joined: Mon Sep 01, 2014 11:50 am

Re: Botvac Connected with Neato Plugin

Post 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!
User avatar
McJohn
Posts: 680
Joined: Tue Dec 18, 2012 5:58 am
Location: The Netherlands
Contact:

Re: Botvac Connected with Neato Plugin

Post 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?
autolog
Posts: 4077
Joined: Tue Sep 10, 2013 3:07 am
Location: West Sussex, UK
Contact:

Re: Botvac Connected with Neato Plugin

Post by autolog »

It might be installing it into Python 3.10?

Try:

Code: Select all

pip3.11 install pybotvac
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

Re: Botvac Connected with Neato Plugin

Post 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
User avatar
McJohn
Posts: 680
Joined: Tue Dec 18, 2012 5:58 am
Location: The Netherlands
Contact:

Re: Botvac Connected with Neato Plugin

Post 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?
Post Reply

Return to “kmarkley's plugins”