Deactivating device / stop monthly plan

Hi all,

Some background
We’re creating devices for customers, and on purchase we’d like to include a 1-year support plan for their devices. This plan is not the Balena plan, but a plan we’ve created for customers (so support from us, included functionality etc). But Balena is a part of this plan in our costs. After this year, customers can choose if they’d like to keep the plan and pay monthly, or stop the plan completely. When the customer keeps their plan, all goes well. But when the customer doesn’t care anymore for the plan, that’s where the challenge is.

When the plan is stopped, we’d like to stop the device from having any updates and Balena functionality. Only some of our custom functionality outside of Balena has to keep working (some requests to our server). In other words, all of cloudBalena functionality has to stop working, but the code on the device has to continue working. This is to reduce/cancel all costs for that specific device, because it isn’t sustainable to keep paying for devices without revenue to cover the costs.

To make it even more difficult, when the user regrets it’s decision of stopping the plan, we’d like to have the option to re-enable cloudBalena for this device.

Example project
Our device is part of a larger product, which monitors the health of this product and handles software updates for the product. But when the customer who bought the product after 1 year decides he doesn’t want any software updates for the product anymore and the cool features that are includes in our plan, he can cancel the plan and stop paying. But we’d still like to know some minor details about the product.

The question
Is it possible to deactivate a device (so stop paying for the device monthly), but keep the device on it’s current software update working properly, and maybe later reactivate the device? Or something similar. Because we’d like to reduce our costs when there is nothing to cover these costs.

openBalena
Another (theoretical) idea is to have an openBalena instance running on our servers and when the plan is cancelled, move the device to the openBalena instance, so we’d have minimal costs for that device. And when the plan is reactivated, move it back to cloudBalena. But I don’t know if this is doable? And where we might encounter any problems?

I’m happy to answer any questions! Because this is one of our main “problems” of using Balena for all our projects, and we’d like to have a solution for this problem because we love Balena!

Thanks in advance!

Hello and thanks for your question!

We are working on rolling out an Open Balena feature called ‘Join & Leave’. This will allow deployed devices to move from being subscribed to Balena Cloud across to your Open Balena instance and vice versa, without any disruption to the application running on the device. From what you have described above this sounds like the best option.

Join & Leave is still under development so I don’t have a firm date on when this feature will be available, but I will speak to the engineers working on this to get some timeframes for you.

Hi @joe2612,

That’d be an awesome feature for us! At least an option to limit the monthly costs for us while the customer cancels our plan.

We’d love to get in contact with you and your engineers about this feature and some timeframes. The most important thing to know for us is if it’s 100% that it’s going to be implemented. The first units are going to have a 1-year plan, so after that year we’d need that feature. But we’d like to have it tested of course before this time.

Let me know if we can do something, have some updates or get in contact!

Great! I expect we will release well before your above timeframes, but drop me an email on joeh@balena.io and we can discuss further.

Cheers!