Describing the project more accurately

In the Discourse category description, Project Link is defined as “a user agent that understands your preferences”. I feel this description does not accurately describe what we’ve been working on during these first two months.

IMHO, currently Project Link is better described as a software building block that can interact with various devices. Most code is done in Rust, and it can run on a Raspberry Pi, see https://github.com/fxbox/foxbox/.

Apart from this ‘home controller’ functionality, which solves the vendor lock-in problem for end-users because it can “talk” multiple IoT protocols (IMHO this is an important point we should stress), we have the Thinkerbell scripting engine which will also run on the “Box” and can execute trigger->action rules to interact with your various IoT devices on your behalf. That’s the “automate your connected world” part (right?).

And since a home controller will probably be somewhere in a closet or corner without a user interface, we also have a client app which you can use to interact with your Box from your smartphone or laptop.

We could also mention future directions we brainstormed about (like speech control and machine learning), but IMHO we should be clearer about what it is we’re currently building and delivering, and mention concrete terms like Rust / adapters / thinkerbell / client-app in the Discourse category pinned post.

What do other people think?

Hello Michiel,

Like we have discussed in a few other meetups; the project wiki has described the new direction of the project & not necessarily gone into details of what we’ve explored in the past few months.

I’m in the process of cleaning up our wiki & putting in more details of our past, present & the future directions/thinking. It will be up before Monday AM.

Thanks for your patience,
Preeti

For the moment, I would describe Project Link as an Operating System for the SmartHome (and possibly SmartSmall Business):

  • it allows users to control their SmartHome, from home or remotely, both with built-in tools and third-party applications, to upgrade the SmartHome, and replace broken or obsolete components without having to check compatibility first;
  • it enables developers to write applications for the SmartHome, with high-level APIs, without strong dependencies towards specific manufacturers, without having to reinvent connectivity or security;
  • it enables manufacturers to distribute devices for the SmartHome that will work with developer’s applications, even if the applications have originally been designed for other devices, without having to reinvent connectivity, security or cloud;
  • last but not least, it defends user’s security or privacy better than what most developers or manufacturers could afford to do.

I was thinking more about a Wikipedia-like definition, I think your bullet points are more selling points? How about “a piece of software that puts a single REST interface in front of a potentially wide range of domotica devices”.

To make it clearer where it sits in the market, we could compare it to openhab and thethingsystem, mentioning the different choice of programming language for each.

That would be describing just the Box. If instead we want to describe Box + Mozilla-hosted app, we could use the word ‘user-agent’, since that system as a whole directly allows the user to interact with domotica devices from a GUI.

I think I don’t really “feel” the operating system metaphor - to me, an operating system is something that sits between software applications and a hardware device, and I think in the case of our prototype we’re already using an operating system, namely Raspbian.

I also didn’t really get your point about updating broken components, by the way, is that about the Box receiving automatic updates?

Lastly, I think we should also be honest about the current status of the project in terms of security; automatic updates, user management and abandoning passwords are on the roadmap, but none of them exist yet, so until we’re production ready we shouldn’t claim that we are better at security than our competitors. Same for privacy (in fact I think we are still defining what privacy means in the context of this project). But we can of course say that we will work hard to get there. :slight_smile:

In my mind, these are our objectives. The REST interface is the current implementation, and quite possibly the only we will ever have, but the scope of the project wouldn’t change if it were SOAP, XML-IPC, CORBA, or something more exotic.

I agree that an operating system is something that sits between software applications and a device:

  • the device is your smarthome/office/business, which itself is assembled from smaller devices (including the foxbox), each of which runs its own smaller OS (including Raspbian) – just as your PC is composed of boards, most of which have their own BIOS and sometimes their own OS;
  • the software are REST Applications, Recipes, possibly more in the future.

No, this is about the fact that the API allows you to write applications that will continue working without interruption even if your Philipps Hue Hub (or any component other than the FoxBox itself) suddenly breaks down physically and needs to be replaced. Possibly by another device from a competing brand or by a completely different device that provides the same kind of service (e.g. replace a SmartLight you need to turn on/off remotely with a SmartPlug connected to a regular light).

Well, there is the description of the project itself and the description of what it has delivered so far. Two different things, I believe.