How to "gracefully" introduce breaking change in existing homey app?

I made an app for homey-ismartgate integration. It was my first Homey app. I made a settings page where you can input id, username and password for your ismartgate device, and interact with it via flows. The problem with this approach is that it’s not so intuitive for users to have to go into settings to fill in username and password there, and it also means they are limited to one ismartgate device per Homey. I got some feedback that many users expect to be able to add their ismartgate as a device, so they can see it as a tile.

How could I transition from the current approach (settings-based) to the proposed approach without breaking people’s existing setup? In general, how do Homey app developers deal with breaking changes?

The issue is that, as far as I understand, you currently don’t provide a device driver but instead have the entire app act as a sort-of device. That makes things difficult to transition because with drivers you would have been able to deprecate the old one and create a new one for new users/devices to use.

You can start by implementing a proper driver for your device and place a big warning on the settings screen that people should use the device driver instead, and also encourage existing users to transition because at some point in the future the single-device-per-app method will not be supported anymore.

Then somewhere in the future, remove the settings page. You might still consider keeping the old code that handles the device based on the old settings, so flows don’t break, and then later also remove that code and hope people will have transitioned.

1 Like

Any update on making a device for this?

No updates at this time. I started working on it at some point, but then it has been on a long hiatus due to other priorities in life. I still actively use the latest published version though, but I personally do not need support for multiple devices, so I don’t have strong incentives to develop it. Sometimes this is the rough nature of free open source software, I’m afraid. But in case you want to fork it and work on it, I’ve shared it with the world for free on Github.

In case someone at iSmartGate is reading this: If you want to take over the responsibility of officially supporting the Homey integration yourself, message me, and we can talk about transferring the app.