Roomba (Old Model 600) and thinkingsync - Local support

Thinkingsync modules are working with the thinkingsync server.
Sadly, thinkingsync.com has became unreliable and it is hard to have some sort of support.
I have two roomba 600 serie with WiFi modules added.

I Know it is possible to command them with commands like:

http://192.168.188.51/command.json?
command=find_me
command=clean
command=spot
command=dock
command=max

and reading the status of Roomba with:
http://192.168.188.51/status.json

I get:

{
  "action" : "status",
  "result" : "success",
  "status" : {
    "name" : "Roomba620",
    "battery_charge" : 100,
    "capacity" : "2696",
    "cleaner_state" : "st_base_trickle",
 	"cleaning" : "0",
    "schedule_serial_number" : "0",
    "near_homebase" : "0"
  }
}

Would be great to bypass the server (it’s down right now!) and to have full local control of Roomba.

Thanks

I have a thinking cleaner also, but isn’t locale adressed already in ha?

@Martinvdm, I don’t think so.
Yesterday both my Roomba disappeared from my UI.
A quick check to the local IPs revealed that they were online and ready to the commands but the led was orange instead of green.
I checked the site thinkingsync.com and it was down (like now!) so I assume that the HA component works with their cloud.

Do you see your roomba in the UI, right now?

you are right. HA is using pythingcleaner.py which is using the cloud api
https://github.com/TheRealLink/pythinkingcleaner/blob/master/pythinkingcleaner/thinkingcleaner.py

But i have opened an issue a couple weeks ago: https://github.com/home-assistant/home-assistant/issues/12822#issuecomment-377970379. In this issue user sfiorini has changed the discovery url. Perhaps this solves youre issue that the device is not showing any more because of the discovery.

1 Like

Thanks!
I just modified the pythinkingcleaner/discovery.py and I can see my roombas!

Thank you very much! :grinning:

what have you changed exactly?

/pythinkingcleaner/discovery.py

Just fill the array devices with your roomba ip.

It needs ip and a rubbish string:
devices.append(ThinkingCleaner(device['local_ip'], device['uuid']))