just my bit of feedback on this topic…
I am a hobbyist tinkerer so my activity will not make or break a company like Blynk.
I have lots of IoT things in my house. I have found time and time again that the company making the hardware (E.g. heat pump water heater, provide really crappy software, and then after some years, that software is no longer supported, or can’t be installed on a newer phone OS, etc. Now one is likely left with a lump of hardware that cannot be used. The IoT industry is new and people have not yet realized this problem. I want to see such product manufacturers use open standard systems that allow access to the devices, and continue to work with existing interfaces. I also want to be able to write my own code to interact with those devices. I own the hardware on my LAN and I want to talk to them, even if my internet is lost.
Blynk provided my first way to get code running on my Android phone and it was very well designed and a great system, but it still tied me to Blynk servers. I had one device monitoring the water pumps of AC and water heater, one controlling my trains, one controlling my lights, one controlling an outdoor train signal, one tracking the temperature, another operating some curtains. These 6 apps ran fine for some years. Then Blynk announced that we have to move them to a new platform, again underscoring the reliance I had built up on an external system beyond my control.
I don’t want to have to migrate from one platform to another every few years. I like the old computer adage, “Never touch a working system”.
I discovered a programming platform for making computer games called AGK (AppGameKit) and it lets us code in either Basic or C++ and then run that code on Windows, Android or iOS. This lets me create and reuse user interface items, and access items on my network. The build environment is fully on my computer as is all the source code which I can put into source code control.
I converted all my Blynk apps to use RemoteSign ESP modules - these can control lights, relays, displays, host sensors, and I can talk to them from AGK apps.
I created a system similar to MQTT (but not as good) that lets me share data between RemoteSigns and the RemoteSign Sequencer so I am able to keep status data synchronized between my phone, wall switches and other RemoteSigns. Due to its complexity, I am planning on migrating that aspect to MQTT and adding that functionality to RemoteSign too. When I have done that I will probably run a local MQTT server so I have no external dependencies.
Having the ability switch lights etc. on and off using wall switches, voice and phone is great, but it has to all work just as well as the old physical switch, even when there is no internet connection.
I don’t want to subscribe to services. I totally understand the drive for such models by service providers. $5 here, $5 there and there and there and next things we are spending hundred per month, which I can’t afford. I would rather try a system out (even if it has some limitations) and if I like it, buy that software and unlock the restrictions.
Companies wanting to sell devices, can pay for servicing those devices through companies such as Blynk, and I think they should pay for usage, so that the fees scale along with their business. This could do provisioning, registration, after sales stuff, support, etc., but ideally once installed the customer should be autonomous and not reliant on an internet connection where there is no real need for data to be transferred. For example if weather data is used, the software must assume that weather data may not be available (no internet) and not start failing to run the heating or AC because it has no weather data. If the vendor or their service provider go out of business, the stuff should carry on working.
This is why a local server is important. It enables people to build things and develop an ecosystem. Yes, it does not bring in any money for Blynk, but it is essentially the same software you need to run in-house for users so it needs to be maintained anyway. Yes, there are costs in supporting the server, and people are idiots, but writing the docs etc., for it likely makes your in-house experience better too.
What is important is building an ecosystem with no barriers to adoption, such that users know their investment is secure. When they develop good apps they can then go commercial and pay for hosting as needed. Perhaps moving to MQTT is the way to go for the cloud side of things. Then you don’t need to create, maintain and support the hosting side, just the gateways to it.
Here is another example of how I got burned relying on BIG name outside providers. I developed a system for my model train layout that allowed me to perform an unlimited set of actions via voice. For example I could create events like “thunderstorm”. I could then say to the Google assistant, “Event thunderstorm”. That would trigger a web hook via IFTTT and that would hit my router with an HTTP request that would pass in the parameter “thunderstorm”. My layout software would then trigger the event called thunderstorm. This all worked great for years and if I created a new event I did not even have to add any code, I could trigger it simply by saying its name.
Then Google and IFTTT decided they were no longer going to allow parameters to be passed. This completely broke the system. I would have to create new recipes and google assistant routines for every event, and every time I created a new one. Blah! Nope.