Client Developers
Let's start with the basics: just because your using open protocols to talk to the steward, doesn't mean that your client has to be open source. It can be 100% proprietary. The steward curators don't care!
What we do care about is that client developers will write spectacular clients for home automation. What the steward does is provide a uniform method for accessing information about things and controlling those things. You — as the client developer — don't need to worry about the access protocol, the network technology, the bits or the bytes. What you do need to worry about is picking an automation category and writing the best freakin' application for management.
If you've read the Philosophy section, then you know that we think that the term "home automation" is being tragically misused in the industry. Yes, it's nice to be able to inventory the Home Internet of Things. But that's just "table stakes" (i.e., the minimum cost of entry), or if you prefer the first step of the journey. It is wicked sad that a lot of folks view that as the end game.
The steward curators believe that having connected devices in the home should be frictionless. And that's where the magic comes in, and you, as the client developer, get to make the magic!
The steward is pretty good at detecting devices as they are added to the home, and connecting different devices together in an observe-perform loop. As a client developer, your job is to define a set of tasks that provide real value to the user when multiple devices are present. In steward-speak, we call these clients apprentices, and here are some examples:
-
When a water sensor detects a leak, it puts the home in alert
mode. Certain lights, speakers, and so on do things. And the things
that get done might vary based on solar time (e.g., don't light up the
nursery at night). And all of this should happen regardless of whether
the home has Internet connectivty when your water heater springs a leak.
For such an obvious example, you'd think there'd be a lot of systems out there that can do this. We've seen exactly two, and they require that all the gear (sensors, lights, etc.) come from the same manufacturer. Sigh.
- When your sitting on the sofa watching TV and you stand up, the TV should automatically mute, and the kitchen lights should go on. When you sit down again, the TV and kitchen states should be restored.
-
When your air quality sensor tells you that the CO2 is over 1000ppm
(or just high), and the HVAC isn't running then turn on the HVAC fan
for 15 minutes to get the air moving.
Or, you could flash a light reminding you to get up, open the door to your office, and get a triple expresso from the kitchen. - Over the course of time, an apprentice can observe when the lights go on and off based on day of the week, day of the month, time of the day and so on. When the user tells the apprentice that it's vacation time, then the apprentice can emulate the user's behavior while the home is empty.
- If your car has a thing that reports its position to the steward (e.g., either your smartphone or your Arduino GPS/GSM or you drive a Tesla Motors vehicle), then an apprentice can determine when you're returning home and change all the environmental controls from "Away" to "Home".
And this provides a great segue back to the conversation earlier about friction. Saving energy is good and having Home and Away modes to make that happen is also good. However, using a motion detector to determine Home and Away along with "heuristics" is not-good. Seriously, it's not-good. There are literally a dozen different BLE presence generators out there. The home should know whether anyone's there or not. And it should tell the connected things in the home whether it's Home time or Away time. And that's what the steward does: it enables magic, the magic made by your apprentices for user.
If this seems "obvious" to you, great! It seemed obvious to us as well, which is why we wrote steward and curate the repository: because it was very clear to us that the market didn't get it and still doesn't get it. Fortunately, there's a Google+ community that can provide lots of information and advice. We like talking about magic, and we love making magic happen (the examples above are actually running in the curators' homes).
Next section → Documentation