If you have a Roomba and want it to clean your home with the magic and control of Smartthings, this is for you! Using this device type and smart app you can integrate your Roomba with the Thinking Cleaner wifi module and control when and how it cleans your house.
This original Device Type and Smart App was created by @sidjohn1 but due to lack of support, I have been requested by the community members to continue my improvements and customization in a new thread. I will continue attempting to support this Device Type and Smart App and only ask that if you appreciate my efforts please donate to my preferred local charity as a thank you:
The module was built for the 500/600 model but if you remove from the housing it will also work on the 700/800 model per Thinking Cleaner. If you have an 700/800 model the below links are for the 3d printed cover: 3D Print Cover: Purchase 3D Printed Cover:
Once you have installed the Thinking Cleaner wifi module and configure per instructions, below are the Device Type and Smart App for Smartthings integration.
GITHUB INTEGRATION HELP
PLEASE DO NOT CHANGE THE NAME OF THE DEVICE TYPE OR THE SMART APP AS IT WILL CAUSE PROBLEMS THAT MAY BE DIFFICULT TO TROUBLESHOOT. IF YOU DO MAKE CHANGES TO THE CODE FROM GITHUB, I MAY NOT BE ABLE TO HELP SUPPORT IT FOR YOU.
Once you have the Device Type and Smart App working, you can use any Smart App to use the Roomba as a switch On is clean and Off is Dock. For the full flexibility of your needs you may want to use CoRE (Community’s own Rules Engine).
Additional improvements and bug fixes have been supported by: @pmusselman, @Benji, @kolosy and others Thank you for your support.
I have the device type installed and can control the roomba. I did have to manually edit the ip address into the settings via the instructions on the old thread. My problem is the smartapp doesn't recognize the device, it says "there are no devices of this type."
Also, I did have an issue with the old device type from sidjohn1 where I wanted it to clean when everyone left the house, so I set it up as a switch to turn on when everyone left the house. It would turn on to clean but once the battery was low it would go to dock but as soon as it docked it would turn back on. It would continue to do this until the battery died. Will this new device fix this issue? Does anyone have an example of how I could accomplish this?
I think I figure this out. I noticed on the IDE that the cleanmode value was not set (i think it was a required field) even tough in the app it was set to clean. I rest the value to MaxClean in the app and that seem to resolve the issue.
I've got @pmjoen 's new smart app and device type installed.
I've confirmed my IP address is correct. My Device network ID was not auto-populating (an issue I had experienced with the old smartapp/device handler) so I manually converted my IP to hex and plugged that in.
I can not get the device in ST to connect. I even factory reset the thinking cleaner and reinstalled everything. I'm fully connected to the iOS app with full functionality.
@pmjoen Am I following the correct steps to set this up?
1) Install the Thinking Cleaner DH and Smart app 2) Create a new device in the IDE using the DH 3) Assign the local IP in the preferences of the device in the IDE. This can also be done in the device in the ST app 4) If it's not already populated, calcute the Device Network ID by converting your local IP:port to a base 16 Hex value 5) In the ST app find the Thinking Cleaner smart app and select your device for proper polling
I will look in the other thread to find the info on converting IP to hex, as for the dock and restart, there is a thinking cleaner setting that after dock and charge the roomba starts to clean again. Can you confirm the model you have?
Everyone, please also make sure you go to the webpage for the IP on your Thinking Cleaner module directly and make sure it's configure properly with the right model etc. So if your Thinking Cleaner module gets an IP address of 192.168.100.23 for example, while you are on the same network (for the most of you) go to http://192.168.100.23 in your browser.
Just wanted to add the info on updating the Device ID if it is not automatically converted by the application.
The device network id is required for smartthings to communicate to any LAN device. The device is coded to set this automaticly when the device is installed or updated. Ultimately there are 2 ways to get this set if it is not.
Change the IP address of your roomba device in smartthings to something else, then change it back to what is is. If this is successful https://graph.api.smartthings.com/ide/logs will display the device network id as the codes runs (yes that page is live only if you open this page after making the change, there will be nothing to see). Confirm in the IDE device type settings that a value exists.
Manually calculate the device network id from the IP address. (I know this is dumb, but this is just how smartthings works with LAN devices) To calculate the device network id from the IP address you have to convert each octet in the ip address from base 10 (Decimal) to base 16 (Hex). As an example 192 converts to C0 and 168 converts to A8, so an IP address of 192.168.0.10 converts to C0A8000A. The default port on is 80 this converts to 0050. Assuming your thinkingcleaner IP address is 192.168.0.10 and has the default port of 80 your device network id would be C0A8000A:0050.
_As a side note, if your thinkingcleaner IP changes so does your device network id and your device will stop working. This can occur if you do not make your Thinking Cleaner ip address static and instead using DHCP to dynamically assign IP address. I would ensure your thinking cleaner gets the same IP every time by making it static. _
Looking at the original code for the input device.ThinkingCleaner - I have no idea how this ever picked up the thinking cleaner device type, even with the old app and handler. The Smartthings docs do not cover picking up devices other than using capabilities.
This "device.ThinkingCleaner" checks your hub for a device using the Thinking Cleaner device type. Changing that to capability.switch looks at all devices with the (capability "switch") in them. Changing the name of the device type will cause this to not find any devices.
The doc says: "If there are multiple Device Handlers with the same name, the first Device Handler found will be returned. Only the name of the Device Handler is searched for; namespace is not considered."
I still had sidjohn1's version installed but no longer linked to the roomba. Deleting it fixed the issue.
Can someone confirm if these are the settings in the thinking cleaner settings that are needed to let smartthings to completely control the start, stop and dock of the Roomba? I've also disabled all schedules on the the thinking cleaner as well as the Roomba itself.