I own an candy CDI 6015 Wifi connected by android application: candy
simpli fi (Play Store link: https://play.google.com/store/apps/details?id=it.candy.simplyfi&hl=it)
Unfortunately, the company didn’t made any Alexa or Google Home integration and I would like to integrate it into Home Assistant.
Anyone have any idea how to integrate whit Home Assistant?
I own a candy oven that connects through simpli-fi and am considering a washing machine, I’d be willing to help (albeit with my technical limitations) anyone interested in reverse engineering them.
From what I saw so far is that Candy Simply Fi backend is Heroku. From there it is only guessing, but:
it means we will not be able to communicate directly with the dishwasher without hacking it…
safer chance for success is to reverse engineering the Heroku API made by Candy and send commands through their server… Base url for all API calls is https://simply-fi.herokuapp.com/, have to authenticate with oauth2 first. Oauth client id and client secret are embedded into Candy Android app code and we can reuse it. Reverse API should take around 1 day as it doesn’t looks complicated (need to properly setup your dishwasher with the official app first), 2 more to create a proper plugin for Home Assistant. I don’t have much time right now but this should work. Far from being perfect as we would rely on Candy server to works (one day we are going to be blocked / server will shutdown)…
Ok… quite an easy API it’s a pity it is not public. Security is… well… ok for a dishwasher but I recommend to isolate it on another network / vlan as it can easily become a trojan on your network according to what I can see… Good new is that the device exposes also a local API when connected to the wifi, so it is theoretically possible to use the local API if Home Assistant is connected to the same network (and block access to internet once declared into your Candy account), or Remote API through Candy/Heroku server if not. In fact we could even avoid the requirement for a Candy account / internet access for initial setup but this would need much more work and some Bluetooth communication. Lets avoid it for now.
I can locally and remotely retrieve statistics, start wash program … with it on my dishwasher.
I created a Postman team for those who want to contribute directly, just ping me.
I would like us to take some time to play with this postman and improve it for several devices if you all agree. Then we can think about creating a plugin for home-assistant (any help appreciated, never did that and I’m not sure I want haha).
I just added the Enrollment call on Local API. With that it should be possible to setup the device with your wifi network and custom encryption key without having to use Candy server neither Candy official app just for the initial setup. But I’m not able to use it for now as my machine has an initial setup through bluetooth (I don’t want to reverse the bluetooth stuff for now as it requires a mobile app / bluetooth dongle etc…). See API description on how to use it if your machine does the initial peering through wifi and not bluetooth.
This is a work in progress, tests, feedback with more devices and contribution are more than welcome ;)! Required first step that should be maintained in time is through Postman to be system independent (better if other guys from openhab, domoticz, jeedom etc… want to join the party… you never know!).
@afterster thank you so much for your work! I’m pretty new to postman and pushing the button “run in postman” is not opening postman with anything on windows. Even though I can add the collection to postman. But then I have no environment variables or anything else.
I’m pretty sure, I’m doing something wrong here.
Mhh that shouldn’t be the case. You should have several folder/requests on the collection, and some environment variables at the collection level. Anyone else with the same issue?