Knowing where to start when adding a device to your home automation is always a tough thing. Most likely, you are already working on the device end of things (whatever you’re trying to automate) so it would be nice if the user end is already figured out. This is one such case. [Aditya Tannu] is using Siri to control ESP8266 connected devices by leveraging the functionality of Apple’s HomeKit protocols.
Once the server is up and running (in this case, on a raspberry Pi) each connected device simply needs to communicate via MQTT. The Arduino IDE is used to program an ESP8266, and there are plenty of MQTT sketches out there that may be used for this purpose. The most recent example build from [Aditya] is a retrofit for a fiber optic lamp. He added an ESP8266 board and replaced the stock LEDs with WS2812 modules. The current version, demonstrated below, has on/off and color control for the device.
The first talk at 2016 Shmoocon was a great one. Joseph Hall and Ben Ramsey presented their work hacking Z-Wave, a network that has been gaining a huge market share in both consumer and industrial connected devices. EZ-Wave uses commodity Software Defined Radio to exploit Z-Wave networks. This is not limited to sniffing, but also used for control with the potential for mayhem.
It seems like I’m constantly having the same discussions with different people about the Open Design aspect of The Hackaday Prize. I get arguments from both sides; some attest that there should be no “openness” requirement, and others think we didn’t set the bar nearly high enough. Time to climb onto my soap box and throe down some sense on this argument.
Open Design is Important
When you talk about hardware there is almost always some software that goes into making a finished product work. Making the information about how a product works and how it is manufactured available to everyone is called Open Design; it encompasses both Open Hardware and Open Source Software. Open Design matters!
First of all, sharing how something is designed and built goes much further than just allowing others to build their own. It becomes an educational tool and an innovation accelerator (others don’t need to solve the same problems over and over again). When using a new chip, protocol, or mechanical part you can learn a lot by seeing how someone else already did it. This means faster prototyping, and improvements on the design that weren’t apparent to the original creator. And if it breaks, you have a far easier time trying to diagnose and repair the darn thing! We all benefit from this whether we’re creating something or just using an end product because it will work better, last longer, and has the potential to be less buggy or to have the bugs squashed after the fact.
There is also peace-of-mind that comes with using Open Design products. The entries in The Hackaday Prize need to be “connected devices”. With open design you can look at the code and see what is being done with your information. Can you say that about Nest? They won’t even allow you to use the thermostat in a country that hasn’t been pre-approved by decree from on high (we saw it hacked to work in Europe a few years back). Now it has been rooted so that you can do with it what you please.
But I contest that it would have been better to have shipped with options like this in the first place. Don’t want to use Nest’s online platform? Fine, let the consumer own the hardware they pay for! My wager since the day they announced Google’s acquisition of Nest is that this will become the “router” for all the connected devices in your home. I don’t want the data from my appliances, entertainment devices, exercise equipment, etc., being harvested, aggregated, and broadcast without having the ability to look at how the data is collected, packaged, and where it is being sent. Open Design would allow for this and still leave plenty of room for the big G’s business model.
I find it ironic that I rant about Google yet it would be pretty hard to deny that I’m a fanboy.
Decentralize the Gatekeeper
I’m going to beat up on Google/Nest a bit more. This is just an easy example since the hardware has the highest profile in the field right now.
If Nest controls the interface and they retain the power to decide whose devices can participate the users lose. Imagine if every WiFi device had to be blessed by a single company before it would be allowed to connect to any access points? I’m not talking about licensing technology or registering a MAC address for a chip. I’m talking about the power, whether abused or not, to shut any item out of the ecosystem based on one entity’s decisions.
If connected devices use a known standard that isn’t property of one corporation it unlocks so many good things. The barrier for new companies to put hardware in the hands of users is very low.
Let’s consider one altruistic part of this; Open Design would make small run and single unit design a possibility. Think about connected devices specialized for the physically challenged; the controller project makes specialized controls for your Xbox, what about the same for your oven, dishwasher, the clock on your wall, or your smart thermostat?
The benefits really show themselves when a “gatekeeper” goes out of business or decides to discontinue the product line. This happened when the Boxee servers were shut down. If the source code and schematics are available, you can alter the code to use a different service, build up your own procotol-compliant home server, or even manufacture new devices that work with the system for years to come. There are already pleas for belly-up manufacturers to open-source as the last death throw. Hacking this stuff back into existence is fun, but isn’t it ridiculous that you have to go to those lengths to make sure equipment you purchased isn’t turned into a doorstop when they shut the company lights off?
To drive the point home, consider this Home Automation System from 1985 [via Reddit]. It’s awesome, outdated, and totally impossible to maintain into the future. I’m not saying we should keep 30-year-old hardware in use indefinitely. But your choices with this are to source equally old components when it breaks, or trash everything for a new system. Open Design could allow you to develop new interfaces to replace the most used parts of the system while still allowing the rest of the hardware to remain.
Why not disqualify entries that aren’t Open Hardware and Open Source Software?
Openness isn’t a digital value
Judging preferences are much better than disqualifying requirements. This is because ‘openness’ isn’t really a digital value. If you publish your schematic but not your board artwork is that open? What if you’re using parts from a manufacturer that requires a Non-Disclosure Agreement to view the datasheet and other pertinent info about the hardware?
In addition to deciding exactly where the threshold of Open or Not-Open lies, we want to encourage hackers and companies to try Open Design if they never have before. I believe that 1% open is better than 0% open, and I believe that there is a “try it, you’ll like it” experience with openness. If this is the case, The Hackaday Prize can help pollinate the virtue of Open Hardware far and wide. But only if we act inclusively and let people work their way toward open at their own pace.
There are more benefits to Open than there are drawbacks.
The biggest worry I hear about open sourcing a product is that it’ll get picked up, manufactured, and sold at a cut-throat rate.
If you build something worth using this is going to happen either way. The goal should be to make a connection with your target users and to act ethically. Open Design allows the user to see how your product works, and to add their own features to it. Most of the time these features will appeal to a very small subset of users, but once in a while the community will develop an awesome addition to your original idea. You can always work out a way to include that in the next revision. That right there is community; the true power of open.