[RELEASE] Neato (Connect) V1.2.6c (Botvac Connected Series)

I just noticed that it was asking me to upgrade the firmware, Im going to wait. Can anyone who has updated send the log files from the ide?

Sanitized log below, this is after removing all devices and the “Neato (Connect)” SmartApp and starting from scratch. Anything that appeared to be sensitive has been replaced with two upper-case X. Let me know if more info or unsanitized logging is needed, I can provide it via PM, GitHub private gist, etc.

XX  3:05:20 PM: debug getChildDevices(false), children=0
XX  3:05:20 PM: info Uninstalling, removing child devices...
XX  3:05:16 PM: debug selectors: [OPS44217-XX|XX, OPS38318-XX|XX]
XX  3:05:15 PM: debug Executing 'updateDevices'
XX  3:05:16 PM: debug Beginning API GET: https://beehive.neatocloud.com/users/me/robots, [Accept:application/vnd.neato.nucleo.v1, Content-Type:application/*+json, X-Agent:0.11.3-142, Authorization:Bearer XX]
XX  3:05:15 PM: debug Executing 'addBotvacs'
XX  3:05:09 PM: info Status: 200
XX  3:05:09 PM: debug Beginning API GET: https://beehive.neatocloud.com/users/me/robots, [Accept:application/vnd.neato.nucleo.v1, Content-Type:application/*+json, X-Agent:0.11.3-142, Authorization:Bearer XX]
XX  3:05:09 PM: debug Executing 'updateDevices'
XX  3:05:09 PM: info Adding Neato Botvac device OPS44217-XX|XX: Neato Botvac - XX
XX  3:05:09 PM: debug getChildDevices(false), children=0
XX  3:05:09 PM: info Body: [[firmware:4.5.0-179, linked_at:2019-08-30T16:49:14Z, model:BotVacD3Connected, name:XX, nucleo_url:https://nucleo.neatocloud.com:4443, prefix:null, purchased_at:null, secret_key:XX, serial:OPS44217-XX, timezone:America/Phoenix, traits:[maps, persistent_maps]], [firmware:4.5.0-179, linked_at:2019-08-30T16:51:55Z, model:BotVacD5Connected, name:XX, nucleo_url:https://nucleo.neatocloud.com:4443, prefix:null, purchased_at:null, secret_key:XX, serial:OPS38318-XX, timezone:America/Denver, traits:[maps, persistent_maps]]]
XX  3:05:09 PM: error org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [insert into device (version, completed_setup, component_label, component_name, date_created, device_network_id, error_state, firmware_version_id, group_id, handler_version, hub_id, is_component, join_fingerprint_id, label, last_updated, location_id, name, parent_device_id, parent_smart_app_id, previous_handler, previous_zigbee_id, primary_tile_name, profile_id, profile_type, protocol_connection, raw_description, sort_order, type_id, virtual_smart_app_id, zigbee_id, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.DataException: Could not execute JDBC batch update @line 678 (doCall)
XX  3:05:09 PM: debug Installed with settings: [selectedBotvacs:[OPS44217-XX|XX, OPS38318-XX|XX]]
XX  3:05:04 PM: debug selectors: [OPS44217-XX|XX, OPS38318-XX|XX]
XX  3:05:04 PM: debug Executing 'updateDevices'
XX  3:04:57 PM: debug getChildDevices(false), children=0
XX  3:04:57 PM: debug selectors: [OPS44217-XX|XX, OPS38318-XX|XX]
XX  3:04:57 PM: info Body: [[firmware:4.5.0-179, linked_at:2019-08-30T16:49:14Z, model:BotVacD3Connected, name:XX, nucleo_url:https://nucleo.neatocloud.com:4443, prefix:null, purchased_at:null, secret_key:XX, serial:OPS44217-XX, timezone:America/Phoenix, traits:[maps, persistent_maps]], [firmware:4.5.0-179, linked_at:2019-08-30T16:51:55Z, model:BotVacD5Connected, name:XX, nucleo_url:https://nucleo.neatocloud.com:4443, prefix:null, purchased_at:null, secret_key:XX, serial:OPS38318-XX, timezone:America/Denver, traits:[maps, persistent_maps]]]
XX  3:04:57 PM: info Status: 200
XX  3:04:57 PM: debug Beginning API GET: https://beehive.neatocloud.com/users/me/robots, [Accept:application/vnd.neato.nucleo.v1, Content-Type:application/*+json, X-Agent:0.11.3-142, Authorization:Bearer XX]
XX  3:04:57 PM: debug Executing 'updateDevices'
XX  3:04:53 PM: debug Beginning API GET: https://beehive.neatocloud.com/users/me/robots, [Accept:application/vnd.neato.nucleo.v1, Content-Type:application/*+json, X-Agent:0.11.3-142, Authorization:Bearer XX]
XX  3:04:53 PM: debug selectors: [OPS44217-XX|XX, OPS38318-XX|XX]
XX  3:04:53 PM: info Body: [[firmware:4.5.0-179, linked_at:2019-08-30T16:49:14Z, model:BotVacD3Connected, name:XX, nucleo_url:https://nucleo.neatocloud.com:4443, prefix:null, purchased_at:null, secret_key:XX, serial:OPS44217-XX, timezone:America/Phoenix, traits:[maps, persistent_maps]], [firmware:4.5.0-179, linked_at:2019-08-30T16:51:55Z, model:BotVacD5Connected, name:XX, nucleo_url:https://nucleo.neatocloud.com:4443, prefix:null, purchased_at:null, secret_key:XX, serial:OPS38318-XX, timezone:America/Denver, traits:[maps, persistent_maps]]]
XX  3:04:53 PM: debug RedirectUrl = https://graph.api.smartthings.com/oauth/initialize?appId=XX&access_token=XX&apiServerUrl=https://graph-na04-useast2.api.smartthings.com:443
XX  3:04:53 PM: info Status: 200
XX  3:04:53 PM: debug authPage()
XX  3:04:53 PM: debug authPage()
XX  3:04:50 PM: debug callback()>> params: [apiServerUrl:https://graph-na04-useast2.api.smartthings.com:443, proxied:true, appId:XX, origin:https://graph.api.smartthings.com:443, state:XX, authQueryString:appId=XX&access_token=XX&apiServerUrl=https://graph-na04-useast2.api.smartthings.com:443, code:XX, controller:OAuthApi, access_token:XX], params.code XX
XX  3:04:26 PM: debug oauthInitUrl with callback: https://graph.api.smartthings.com/oauth/callback
XX  3:04:23 PM: debug RedirectUrl = https://graph.api.smartthings.com/oauth/initialize?appId=XX&access_token=XX&apiServerUrl=https://graph-na04-useast2.api.smartthings.com:443
XX  3:04:23 PM: debug authPage()

Have you selected any of the devices from the smart app, I’m seeing the following:

XX 3:04:57 PM: debug getChildDevices(false), children=0

It fails saving after selecting devices with an error in the SmartApp - “Error saving page”. The XX 3:05:09 PM: error org.springframework.dao.DataIntegrityViolationException appeared at the same time.

Looking into it now. Will update when i find out what’s going on.

Fixed!

Please do the following steps:

  1. Remove all Neato device smart app dependencies.
  2. Remove Neato devices.
  3. Update SmartApp to Neato (Connect) v1.2.5 and Device Handler to Neato Connected Series v1.13 from Github.
  4. Re-add your Neato Botvacs.
  5. Reconfigure your SmartSchedules as they probably will be deleted.

Let me know if that works.

For those that are interested, the new firmware seems to generate a very long secret key that cannot be stored as the device network id in SmartThings so you get the database error when the SmartApp tried to add the new secret key to the existing device.

2 Likes

My Neato robot is working again with WebCoRE, thank you!

Did you make any code changes?

Yes. Had to change how secret keys are stored for each device in the device handler and that meant also changing the add new device code in the smart app.

Sorry, what do you mean by 1 and 2? Delete the app from my phone, do step 3, then do step 4?
It will not let me turn on personal maps, i have the 5 series.
thanks

No need to delete the Neato Smart App. Just delete your Botvacs from ‘Things’. To do this, you’re best removing any references to those Botvacs from other apps such as ActionTiles or WebCore first.

Then after you’ve definitely removed the Botvacs, update the SmartApp and Device Handler with the latest version.

1 Like

Works for me again now after updating to the new SmartApp and device handler version, thank you!

Works again for me. Thanks so much. :slight_smile:

It will not allow me to turn on Personal Maps. I deleted the app and handler and reinstalled. What am i missing? I have the Connected D5

Sorry to be a pain.

anyone have any tips on how to get things working again. I am having a really hard time. Both my Neatos show offline and I cannot for the life of me get them deleted from Smartthings. I updated all the smart and handler code but I still cant get it to work. Any ideas ? I also was going to to just delete the whole neato smart app and start over but again I cannot delete it I keep getting an error. So bummed things were working so well before.

Have you completed the steps in the following post:

1 Like

Hi,

I have a D7 and I updated its firmware to the recent 4.5 release recently.
I also updated the smart app and device handler as recommended here.
They all work fine.

However, after this update, I noticed that the app on my Android phone does not show the robots current state when it is cleaning.

It always shows as “ready to clean” even if it is already cleaning.

Besides, while cleaning it does not show “pause”, “stop” or “dock” buttons as it thinks it is not cleaning. Is this a bug of the firmware?

Does anyone else with a D7 have this problem ?

thx.

EDIT: nevermind, this is solved after a power cycle.

I had same issue today, also had to power cycle to resolve…

I’ll look into it tomorrow. Probably some code that’s using the secret key to lookup status

First of all thanks so much for the hard work put into this app. I stumbled on it today when I decided to check to see if there was something available for SmartThings for my D7. After setting everything up it seems to all work fine. The only question I have, is there any way of getting any method to trigger a cleaning to a particular Zone? Either through SmartThings as a routine, or webcore as a piston? My end goal is to get a tile on the screen through either actiontiles or through Sharp Tools so that a family member can just press it and clean the particular zone instead of the whole house.
Thanks :slight_smile: