Assumption: there are many input / output devices in the market and many open protocols for communication between those devices. What is missing though is an intuitive software interface. This is how we built our first product – our control unit connected to third party IO modules.
Over time it turned out that third party devices did not fit our purpose properly, we had no way of controlling how they operate, and customers were not willing to pay for software. A change in the approach was necessary.