During our trip to the ISH in Germany, being the leading trade fair for HVAC (Heating, Ventilation, Air Conditioning), we saw a lot of solutions within the Internet of Things (IOT) Platform domain. Mostly these are generic backends which take in data from IOT devices via various ways and provide access on them via an open API which can then be used for further solutions.
Walking through the fair ground and talking to different stakeholders I now feel confident to make the claim: Generic IOT platforms are dead.
To specify: IOT platforms all see themself as the middleware to integrate IOT devices. All of them lack one crucial component: User centric design and focus on specific use cases. Honestly, being a software developer myself I always enjoy looking deeply into technological solutions on how to connect applications. Building a generic data model for the domain of IOT devices, defining the metadata, building a scalable architecture for getting the data and seeing it all fit together as one big solution.
However, and that's my point: most platforms are simply API abstraction layers to get access to data points and a bunch of fancy data plots on generic dashboards. Just use the google image search for "iot dashboards" and you can see my point.
All other functionality needs then additionally be built on top of the API. This problem has already been solved. There are plenty of time series open source databases in the OSS sector by now, just to name a few: InfluxDB and a new contender and currently my favorite TimescaleDB. Building on top of that a system to collect the necessary data in most cases is just a question of the time you are willing to invest.
Don't get me wrong: I do see a value in IOT platforms. I just don't think you should build a new one just for the sake of it. Instead use your time, energy and resources to define one specific use case, specify the data sets you need and build it. If you want to create a system which allows you to monitor the state of freezers, build a system which allows you to monitor the state of freezers. Don't think of the most generic solution in the beginning. That is overkill and will likely result into your product to never be market ready when you and your customers need it. Talk with the users and focus on building the best possible experience for them. In the end, this will give you a use case, a valid application which actual end users are excited about and a stepping stone for actually solving problems. Out of this a functioning IOT platform can be created. However, building for something which isn't there yet and in a most generic way possible is by now especially in the IOT sector a terrible idea.