[Deprecated] Thinking Cleaner 2.x (Roomba Control)

Patrick,

Thanks for the help…I think I just figured it out. I was able to find the device type in the “Create Device” section of the IDE. I had not seen it before because it did not show up alphabetically where it should have (all self-published options show up at the bottom). Again, thanks for leading me down the right path!

Craig A. Geist

1 Like

@pmjoen Last week I uninstalled all my previous device handlers and smart apps for Thinking Cleaner. Similar to @ultrazero I could not get either of my Roombas to connect via Smartthings although the Thinking Cleaner App would work fine.

Today to my surprise after starting the Roombas via the Thinking Cleaner App and then going back into the device and hitting refresh… they both showed up.

I am not home and have not validated they are responding to command, but step 1 is that I can see them. Just FYI for anyone else having this issue.

@cgpilot I would highly recommend you go back and remove your contact details from your posts.

Not sure if anyone saw this on the Thinking Cleaner website and not sure how this affects the product and support as well:

We are out of stock and there will be no new production. We did try but the problem is that some of the components we use in the Thinking Cleaner are not available anymore or if you can find them (or substitutes), those parts are very expensive. For a new production series we would have to redesign with new components and this is very expensive because of certifications and minimum order quantities.

Hmm… Not good.

Hope that doesn’t mean they’re going to kill it off on us.

Guess the party is over… I have no doubt they’ll kill it off…

Here’s the response from Thinking Cleaner support (I emailed about end of life support):

Hi Brian,

The Thinking Cleaner will be supported for a number of years from now and when we stop our server in a few years it does not mean that the unit will not work anymore. Most of the Thinking Cleaner functions will keep on working without a server and we will probably make a manual server setting before we shut down our server.

Best regards,

Matthijs van de Vathorst
​Thinking Bits BV
Best regards,

Matthijs van de Vathorst
www.thinkingbits.nl

1 Like

@pmjoen I have been testing the latest code on both of my 560s.

Every time I look for the device status in SmartThings the device is in “Checking” status. When I click the REFRESH arrow it reports the status. I am not sure if its normal or not but it appears the Roomba goes offline and stays offline.

When i try to clean it makes a few beeps then appears to go offline. I can usually get it to start by hitting clean three or four times but its very hit or miss and very hard to automate.

Hopefully you have some insight on what may be the issue for me.

Here are the logs. This error message appears: 1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:39 AM: error java.lang.NullPointerException: Cannot get property ‘cleaner_state’ on null object @ line 128

1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:49 AM: debug Clean state st_off status 0
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:49 AM: info Firmware Version 1.0.94-310C-FCC
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:49 AM: info Model Number 500
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:49 AM: debug Main brush 0 and side brush 0
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:49 AM: debug Bin status value 0
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:49 AM: debug {
“action”:“full_status”,
“result”:“success”,
“firmware” : {
“version” : “1.0.94-310C-FCC”,
“wifi_version” : “310C”,
“uuid” : “66af1f53c67c089f”,
“mac_address”:“00:1E:C0:xx:xx:xx”,
“DHCP” : 1,
“has_been_backed_up” : 1,
“has_auth_token” : 1,
“boot_status” : “run success”,
“boot_version” : 5,
“auto_update” : 0,
“auto_dock” : 0,
“restart_AC” : 0,
“always_MAX” : 1,
“dock_at” : 25,
“stop_at” : 6,
“time_h_m” : “16:45”,
“selected_timezone” : “Africa/Abidjan”
},
“tc_status” : {
“name” : “Downstairs-Roomba”,
“modelnr” : “500”,
“tc-roomba-conn” : 0,
“cleaning_time” : “0”,
“cleaning_time_total” : “2742”,
“cleaning_distance” : “49356”,
“cleaning_distance_miles” : “30436”,
“dirt_detected” : 0,
“bin_status” : 0,
“server_connection” : 10,
“vacuum_drive” : 0,
“clean_delay” : 232,
"…[TRUNCATED]
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:39 AM: error java.lang.NullPointerException: Cannot get property ‘cleaner_state’ on null object @ line 128
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: debug The Refresh Status Command was sent
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: debug Network is not connected
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: debug The Clean Command was sent
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: debug Clean mode vlaue is Clean
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: debug Clean mode is Clean
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: debug Executing 'on’
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: debug Executing 'on’
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:39 AM: debug Device Network ID Set
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:39 AM: debug The Refresh Status Command was sent
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: debug Executing 'poll’
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: info Thinking Cleaner Version 2.2 Copyright © 2016 pmjoen
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:45:38 AM: debug Updated with settings: [ip:192.168.1.114, port:80, cleanmode:Clean, debug_pref:true, debug_ext:true]
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:42:39 AM: debug Bin status value 0
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:42:39 AM: debug Main brush 0 and side brush 0
1f6d7534-04a0-4bbe-a071-3de782bc0a33 11:42:39 AM: debug {
“action”:“full_status”,
“result”:“success”,
“firmware” : {
“version” : “1.0.94-310C-FCC”,
“wifi_version” : “310C”,
“uuid” : “66af1f53c67c089f”,
“mac_address”:“00:1E:C0:xx:xx:xx”,
“DHCP” : 1,
“has_been_backed_up” : 1,
“has_auth_token” : 1,
“boot_status” : “run success”,
“boot_version” : 5,
“auto_update” : 0,
“auto_dock” : 0,
“restart_AC” : 0,
“always_MAX” : 1,
“dock_at” : 25,
“stop_at” : 6,
“time_h_m” : “16:42”,
“selected_timezone” : “Africa/Abidjan”
},
“tc_status” : {
“name” : “Downstairs-Roomba”,
“modelnr” : “500”,
“tc-roomba-conn” : 1,
“cleaning_time” : “0”,
“cleaning_time_total” : “2742”,
“cleaning_distance” : “49356”,
“cleaning_distance_miles” : “30436”,
“dirt_detected” : 0,
“bin_status” : 0,
“server_connection” : 0,
“vacuum_drive” : 0,
“clean_delay” : 232,
"clean…[TRUNCATED]

Thanks Patrick! I was trying to enhance the Thinking Cleanerer smart app so that I could configure it to run a Routine when one of the events was registered (ie: On, Off, Bin Full, Error). I’m new to groovy and smartthings development, but not new to developing. I believe I successfully added the settings, and the configured routines ‘sort of’ work. I say “sort of” because it seems like they aren’t being detected in a timely manner, if at all. “On” seems consistently firing the Routine, but “Error” and “Off” might only be firing when I use SmartThings to view the Device and perform a “Refresh”. I assume this has something to do with polling the device. I see the following errors in the Live Log:

12:41:15 PM: error groovy.lang.MissingPropertyException: Exception evaluating property ‘currentSwitch’ for org.codehaus.groovy.grails.web.json.JSONArray, Reason: groovy.lang.MissingPropertyException: No such property: currentSwitch for class: java.lang.String @ line 196

I haven’t confirmed if my changes introduced the issue. But the error is being logged every minute. My change seemed pretty minor and folded into the existing flow of your app code. But since this is my first time working with this platform, I’m not ruling it out.

Any suggestions?

Thanks,
Nathan

I unfortunately am only able to test on my 870 model but some others have experienced this issue before and I am not sure what the resolution was. I have not done any additional development on this but do see in the list of things the status is checking until you go in and refresh. Ill try to take a look at the status updates.

As for the beeps, I’m not quite sure as you are getting a proper response on the live log.

@TylerDurden I actually didn’t create the initial version of the DTH or Smartapp but have taken ownership (somewhat) due to lack of support from the original developer. I have actually not made any changes to the smart app from its original version (I am also not really a groovy developer).

I reverted to the 2.0 version that I have in GitHub and I am not seeing the error that you are listing.

Thanks for replying. I think I had/have a conflict with the original sidjohn DTH that was previously installed. I think there may be a conflict because of the device network id being cached in the cloud for 24 hours. I’m going to try again today. If I manage to get the routines to work well, I’ll share the code with the community.

Bummer! Always thought it was an elegant solution.

I just got to the point with my ST integrations where I wanted to start adding things like this. I’m saddened to read the parts are no longer available/made. Back to pushing the big Green circle :frowning:. I wonder if Roomba would ever offer this as an add-on…Oh well.

If anyone has the part, it works but they want to sell it, IM me please.

Probably not as an add on but technology from the 980 (including WiFi) is finally starting to trickle down to other Roombas. Still seriously expensive but we’re more likely to see WiFi integrated in future versions than see an add on.

If I had the electronics hardware and software prowess, I’d do something like the ThinkingCleaner module but base it on the smallest board possible with the ESP8266.

1 Like

Hi @Benji

I’m new to the SmartThings stuff, but I do have a Roomba 650 that I recently designed and built a wifi interface for with an ESP8266. I can program the ESP-01 board easily with my FTDI adapter, but I’m not a software guy. Maybe we can join forces? I’d love to have an easy, cheap way to add a web interface to my Roomba :slight_smile:
Seth

2 Likes

Seth! Welcome! I’d love to help but I’m definitely the wrong guy. If @pmjoen is willing, he might be able to help, alternatively @erocm1231 has become somewhat of a legend with regards to using the ESP8266 with various devices integrated into ST.

If we can create the smallest hardware board possible with an ESP8266 on top of it, we might be able to do a production run.

My god I’m pulling my hair out here…

I’m getting the “Network is not connected” in the logs, and its stuck on the “CHECKING” status on the SmartApp.

HOWEVER:

ThinkingCleaner App works perfect
IP Address via web browser is working
If I ask Alexa to turn on the roomba is works (and thats via SmartThings) … its just the darn App

Any Ideas?

Logs:
ce0d9f43-acd6-4317-9573-9ba519153ef5 11:01:45: debug The Refresh Status Command was sent
ce0d9f43-acd6-4317-9573-9ba519153ef5 11:01:45: debug Executing 'refresh’
ce0d9f43-acd6-4317-9573-9ba519153ef5 11:01:45: debug Device Network ID Set
ce0d9f43-acd6-4317-9573-9ba519153ef5 11:01:45: debug The Refresh Status Command was sent
ce0d9f43-acd6-4317-9573-9ba519153ef5 11:01:45: debug Network is not connected
ce0d9f43-acd6-4317-9573-9ba519153ef5 11:01:45: debug Executing 'poll’
ce0d9f43-acd6-4317-9573-9ba519153ef5 11:01:45: info Thinking Cleaner Version 2.2 Copyright © 2016 pmjoen
ce0d9f43-acd6-4317-9573-9ba519153ef5 11:01:45: debug Updated with settings: [ip:192.168.0.24, port:80, cleanmode:Clean, debug_pref:true, debug_ext:true]

From the logs it looks like its unable to connect. Its not getting a response from the roomba thinking cleaner. Its really odd that asking it via Alexa gets it to work. Can you leave the live logging on and ask Alexa to start it again and gather those logs.

Its so strange, I cant work it out…Alexa working perfect:

From Roomba Log:
e0d9f43-acd6-4317-9573-9ba519153ef5 14:59:39: debug The Refresh Status Command was sent
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:39: debug Network is not connected
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:39: debug The Dock Command was sent
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:39: debug Executing 'off’
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:39: debug Executing 'off’
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug The Refresh Status Command was sent
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug The Clean Command was sent
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug Clean mode vlaue is Clean
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug Clean mode is Clean
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug Network is not connected
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug Executing 'on’
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug Executing 'on’
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug Device Network ID Set
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug The Refresh Status Command was sent
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug Network is not connected
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug Executing 'poll’
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: info Thinking Cleaner Version 2.2 Copyright © 2016 pmjoen
ce0d9f43-acd6-4317-9573-9ba519153ef5 14:59:20: debug Updated with settings: [ip:192.168.0.24, port:80, cleanmode:Clean, debug_pref:true, debug_ext:true]

Alexa Log:

59c62a3d-4400-4c6c-979c-f0980b700bb6 14:59:39: debug Turn off Vacuum
59c62a3d-4400-4c6c-979c-f0980b700bb6 14:59:39: debug control, params: [appId:59c62a3d-4400-4c6c-979c-f0980b700bb6, param1:control, param2:ce0d9f43-acd6-4317-9573-9ba519153ef5, param3:TurnOffRequest, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi, id:ce0d9f43-acd6-4317-9573-9ba519153ef5, command:TurnOffRequest], request: [:], devices: null params.id: ce0d9f43-acd6-4317-9573-9ba519153ef5 params.command: TurnOffRequest params.value: null
59c62a3d-4400-4c6c-979c-f0980b700bb6 14:59:20: debug Turn on Vacuum
59c62a3d-4400-4c6c-979c-f0980b700bb6 14:59:20: debug control, params: [appId:59c62a3d-4400-4c6c-979c-f0980b700bb6, param1:control, param2:ce0d9f43-acd6-4317-9573-9ba519153ef5, param3:TurnOnRequest, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi, id:ce0d9f43-acd6-4317-9573-9ba519153ef5, command:TurnOnRequest], request: [:], devices: null params.id: ce0d9f43-acd6-4317-9573-9ba519153ef5 params.command: TurnOnRequest params.value: null

EDIT: This was a on and off command - both worked fine