Let me try to kick off a bit of product brainstorm here…
Project Link’s product, in its most basic form, can be thought of as a home controller (“Box”). It sits inbetween the IoT devices and third-party (web) apps. In one direction, the user uses a web app of their choice for the human-computer interaction (HCI), this app calls a http api which lives on the Box, and the Box forwards the command to the device for which it’s intended. In the other direction, an IoT device can send an alert or event to the Box, and the Box forwards these events to the HCI apps which are subscribed to it.
Some advantages of decoupling the apps from the IoT devices would be that:
- the app only needs to “talk” http, not the protocols of the IoT devices themselves (which are often not http-based, and sometimes not even TCP/IP-based).
- interoperability/abstraction from different manufacturers, making life easier for app developers (at the cost of requiring that app’s user to buy an extra piece of hardware).
- the Box can be a gatekeeper for remote access to the IoT devices in your house.
In itself, this product is boring, since you still need to add the third-party HCI apps on top of it before it becomes part of an end-user product.
You would buy this Box only if you want to use an app that cannot control your IoT devices directly (which might well be the case - especially for remote access). But the Box in itself is not a stand-alone end-user product - it’s just a piece of networking equipment that enables other products (the apps people interact with) to deliver their value.
However, on top of the home controller function, we can add things:
home-hosted IFTTT: apart from subscribing to events, the HCI app can allow the user to define rules, which are then stored in Thinkerbell on the Box, quite like ifttt.com, but running within your local wifi network. This makes the Box into an active component, and instead of saying “this app controls my IoT devices (via the Box)”, you can now say “the Box controls my IoT devices (and I program it via some interface app)”.
a voice command device: forget about accessing your IoT devices from a web app on your phone or laptop, the Box would provide its own direct HCI, so that it becomes a stand-alone end-user product; it would simply contain a microphone which can pick up voice commands. This would also make the Box from a boring piece of networking equipment into a cool gadget.
I think these are two interesting routes, and have started exploring the technical requirements of the second one (also looking at what end-user product ideas Vaani are now working on).
Which other routes can we explore (apart from IFTTT and voice-control) that would make our product an exciting thing you want, and not a boring thing you need?
PS: We could also think about building a generic voice-controlled chatbot (personal assistant), but that would no longer be a product in the IoT space, so maybe relevant to Mozilla in general, but a bit less so to Connected Devices specifically.