A Protocol For Home Automation
jfruh writes "Marshall Rose, one of the creators of the SNMP protocol, has a beef with current home automation gadgets: it's very, very difficult to get them to talk to each other, and you often end up needing a pile of remote controls to operate them. To fix these problems, he's proposed the Thing System, which will serve as an intermediary on your home automation network. The Thing System aims to help integrate gadgets already on the market, which may help it take off."
Lets just hope it's less secure than SNMP...
http://xkcd.com/927/
#927
Bacnet over IP or Modbus TCP take your pick.
There are already a few home automation hubs (if I understand what he is suggesting correctly), such as Pytomation.
The main challenge is as far as I can see there is yet a single protocol to bind them all, and even then it would be yet another protocol. For this reason, there have been attempts to create protocol exchanges (not sure the right term), that act as central system that can speak to different sensors and control systems using the specific protocols.
Its not clear what he is offering that existing solutions fail at? It doesn't help that the site doesn't sum things up in one paragraph and instead requires us to parse the whole presentation before understanding what he really is proposing.
Jumpstart the tartan drive.
Please don't re-invent the wheel unless you need to. By that, I mean to say that automation and interconnection of "gadgets" is a well-established field in industry and tech. For example, vehicle ECU and sensor systems, factory automation, and data acquisition systems are all now decades old, and we should have a really solid idea of how to do these things properly.
Of course these existing systems aren't the same as what we're talking about here, with modules that span different physical link layers, protocols, etc. I just hope that we can take the best lessons from existing "gadget integration" attempts to make forward progress more successful and not just something doomed to rapid obsolescence.
For some fun and background, have a look at the old HPIB/GPIB physical/protocol standard (http://en.wikipedia.org/wiki/IEEE-488), which was used in many different pieces of scientific equipment. When that somewhat died out it was replaced by CAN (http://www.team-cag.com/support/theory/chroma/hplc_bas_at/system/cableConnections.html). Agilent uses that for their HPLCs (maybe test equipment, too?), and Waters uses the same physical link, but with a different protocol? Other vendors still work with contact-closure, and USB is becoming more popular, but that pushes so much onto the host computer and really enforces lock-in.
I will personally be watching this closely from the perspective of someone who operates a lot of data-acquisition equipment. Could this be the foundation for better interop between different vendors at the more commercial/research level, in addition to the consumer? I hope so.
I've been attempting to connect, network and control as much of my house as possible with little success. Too many companies are trying (and failing) to offer up an integrated solution, none have the ability to truly integrated across the board.
Key systems that need this:
HVAC - Nest is doing great things for automation and remote control, limited reach however
Lighting - a bunch of half baked solutions out there, each with their own app and control interface
Security - sound, video, motion detection, garage door control, etc...
Appliances - remote control certain appliances, pre-heat your stove, notification when the dryer is done, etc...
Power Monitoring - Semi decent solution out there, however needs better apps and integration
Audio\Video - Remote control
If all of these systems used a common protocol we can focus on developing great apps and home automation, as long as manufacturer dick around with their own setup we'll never move forward.
No sig here...
yeah you get it...
"Marshall Rose, one of the creators of the SNMP protocol, has a beef with current home automation gadgets: it's very, very difficult to get them to talk to each other, and you often end up needing a pile of remote controls to operate them."
I have 1 remote to control every gadget in the house including sonos. It's called Crestron, but AMX can do it as well (The toy stuff called Control 4 can not)
He really needs to learn more about integration because there have been solutions out there for decades.
Do not look at laser with remaining good eye.
Everything in the fridge is melted because I couldn't find the right MIB.
You can have my SIG when you pry it from my cold, dead hands.
This is someone who was ok with ASN.1, OID's, and "walking" tables that had no business in being walked, over an unreliable UDP protocol that initially had effectively zero security.
Someone stop him from developing a home automation protocol before his being "first" relegates that industry to 30 years of pain and suffering.
I'm only mildly familiar with SNMP, but, would it not actually be a decent mechanism for this kinda thing.
I mean what you really want is a generic bus that lets you see a list of what everything can do (and their parameters), and remotely invoke said things with a set of parameters. Some kind of authentication would also be nifty.
The problem really seems to come down to physical connection. Most of the older systems I've used (particularly the pile of garbage known as x10) attempted to use power lines, which was terrible for a great many reasons (though I hear insteon and newer variants are much better with cutting edge features such as "handshaking").
Wireless would seem ideal, but then you need to power the individual components. Fine if you do this while building, but sucks if you want to replace existing inline wall switches and such. Wonder if anyone has an inline solution with a battery that recharges by leaching power while the controlled device is on. That would seem ideal.
Ultimately I got out of the whole home automation thing anyway. Back when I was a kid, it was _the future_, and I kinda rode that gee-wiz factor for a while.. but the truth is, once you automate lighting, temperature, and the coffee pot.. you've pretty much done all the practical consumer use cases for home automation. These areas are served quite well by specific technologies already, and having them centrally managed doesn't really give much added benefit.
Home automation gadgets are incompatible because the vendors want it that way. Selling you a $50 light bulb is the "gateway drug" to selling you a $20 a month service to manage it from your smart phone. If the protocol is proprietary, there is no competition. A/V components have been this way for so long that the world has just accepted that IR is the only way to talk to them.
It will change when a system gets so much market share that the component vendors see more value in staying a component vendor than they see in establishing themselves as a system vendor. At that point the problem is that the system vendor will want to protect their market by locking up their protocol.
Sweet, ANOTHER "standard".
Did we really need it?
n/t
I tried home automation systems a couple of times now, but they always end up with problems. The stuff will work 90% of the time. Given that my wife is not a tech type person this became frustrating - fast.
I've decided it's just easier to get up and shut off the light with the switch (works everytime), instead of trying to figure out and explain why it didn't turn itself off.
But hey more power to him!
I had a quick look at the website, and can't find any low-level detail, just a lot of pictures...
That said, he seems to use HTTPS/SSH and certificate-based access.
It is useless to sign the certificates, since we are in a lan, not on the internet, and I doubt your house devices will have a full dns name...
I'm more interested in the packet structure and to the data format, as it always gives more insight on the protocol that big, colored images...
Its said to use websockets, but I doubt that will be the case in SSH-based access.
There seems to be the option to use UDP multicast for the sensors..
The HTTP traffic is exchanged via websockets and json... This is nice, since the programmers can use all the http server/client and json libraries they want, and it usually is fairly simple.... BUT we are talking about home automation, arduino boards and in general "things" with very little computational power/memory etc...
I really don't understand why we want all on HTTP, the efficiency is very low and now you require an HTTP server and client to communicate with something just to flip a switch...
Maybe if SNMP was done the right way, without OIDs and security from the start we would not need this, but I digress...
I don't like the fact that there seem to be a lot of new definitions... apprentices, stewards, and ... "things"... couldn't dumb it down more even if he tried -.-''
But the nice thing is that it seems to be able to include 3rd-party modules and protocols fairly easily... Which IMHO is not a small thing and can in fact help this protocol a lot.
And whatever he does, he can't do as badly as DPWS. If he manages to make it general enough we might even put an end to the horror that is DPWS and WS-* standards....
"I was gratified to be able to answer promptly, and I did. I said I didn't know." -- Mark Twain
Clobbering time?
Or you could have looked at the four other posts before you that had the exact same link.
Look up my prior artwork and despair!
.
Prisencolinensinainciusol. Ol Rait!
Here are some existing over-the-power-line transmission systems usable for home control:
We don't need another one. Especially since the original article's link to the protocol definition is a dead link. And because making home automation run a web server with "node.js" is terrible from a security perspective. And because it's WiFi based, which means it won't go through some walls it needs to go through, and will go through some walls it shouldn't. With the power line systems you can put a low-pass filter after your meter and keep out external signals.
The history of Home Automation is littered with the bodies of business that have come in and then left when they realized it's a very difficult place to make money, unless you just carve out the high-end systems used by rich people. If you are building a McMansion type home there are always options available. If you are a middle class home owner looking for a good way to retrofit, no one wants to talk to you. So you end up going down the path of tried-and-true technologies like X10 that have spotty vendor support but a strong hobbyist community.
I'm not saying X10 is perfect, but it does let me control my sprinklers from a crontab file. Any system that can't do that is beneath my contempt. :)
Take a look over here, this is what the industry looks like...
http://www.cepro.com/
Another such system gaining popularity in india is http://www.echosystem.in , integrates lighting media, thermostats. Apart from usual mobile access it also exposes all my appliances over web api. find out more at
PROFINET
ethernet based process network.
why mess around with all these little wires when you can just use PROFIBUS or PROFINET. automate your house with Siemens PLCs!
Isn't this what zigbee and 802.15.4 was designed for?
Get a web developer
The problem is, x10 has caused people to expect to get "smart" devices for peanuts. Problem is, the reason x10 is so cheap is it's minimally designed. But as a consequence, it's also highly unreliable. SmartHome tried to improve on that, raised the price a bit, but didn't sufficiently solve the reliability problems. Any new series of gadgets will have to be dirt cheap, and given gadget manufacturing costs in China these days, it's doable but takes an upfront investment, is risky and one must survive on thin margins. Not exactly the most attractive opportunity. If he wants to give it a go, more power to him, but if configuration is anywhere near as complicated as SMTP, in fact, if configuration can't be done with a smartphone app in about 2 minutes, it's doomed.
When I see actual things with the ability to talk to each other, the universal option always seems to be CANbus (or a variant, like NMEA 2000). Chung-Wei Lin and Alberto Sangiovanni-Vincentelli of UC Berkeley have this proposal for implementing CANbus with security. If I'm going to automate something in my home, I'd rather use CANbus so I can just buy the stuff that does the tasks.
Apple TV has the potential to unify CEDIA and, eventually, home automation protocols.
...with the universally known and supported, highly customizable, protocol known as...
Simple Network Management Protocol (aka SNMP) ?
It's called Crestron (or, regrettably, AMX). There's no one correct protocol for all devices. Certain *types* of devices should use the same communication standard (IR or RS232 for simple AV devices, IP for server/PC/tablet, Zigbee for lighting, BACnet for HVAC, etc.), but what's truly needed is a device that can communicate to all of these protocols. Fortunately, we have a few systems out there that do that. Working for Crestron for many years, I can tell you with certainty that One Protocol to Rule Them All will never exist.
If Mr Rose wanted to create a simpler, easier-to-program device, then I encourage him to do so because Crestron programming, while nothing like C/Java/Python, is not exactly user-friendly. I also wish him the best of luck in not becoming victim to the XKCD #927 meme.
3.7GB for the Raspberry Pi disk image? They should try to get it down below 128MB so they can make a distribution based on OpenWRT.
Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
Already solved by osgi. That's what it's for.
KNX / EIB exists since the seventies. Finishing up the house with stuff from Gira this year.
Tools for linux are OK (eibd)
Thermostats, dimmers, switches, movement- presence- and lightdetection are all on the knx-bus; video, audio, weather and machine-learning functions are on pc-ethernet. It's flexible, expandable but the knx-art is best done in a new house with cabling planning for it.
What we need is a glue to bind all the disperate protocols together into one framework.
I'm trying this out at the moment, despite it being in java and me hating java being a unix greybeard, its got some exciting posibilities due to its modular design.
www.freedomotic.com
As we speak its controlling some lights, gluing in some sensors (light, rain, pir) and my underfloor heating system and the wood furnace.
Having worked a lot with snmp I certainly dont want the designer of snmp1 to be dictating how a framework should work...
You make a good point about current standards assuming each controlled device is an intelligent endpoint. In stage lighting, where you may control over a hundred lights, it's typical to have a few intelligent end devices and several relay or dimmer packs that control many "dumb" lights. Typically, one smart pack control power to eight lights. Most lights are dumb and cheap - just bulbs in sockets. Only a few lights, the moving, color changing spot lights, have any electronics in the end device.
There's a company called Revolv in Boulder, CO that aims to eliminate the wide variety of different home automation standards/protocols by creating a custom hardware solution that has all necessary antennas on it. It's not a unified protocol persay, but it does solve the problem of multiple apps/standards quite nicely.
This is a guy that keeps reinventing the wheel. The problem is that his new wheel is really no better than what was there before. Take SNMP for example: grouping static and dynamic objects together in the same MIB is idiotic. So you poll for all of this data and you get the same static context information every single time you ask for the dynamic data. What a waste of bandwidth!
This so-called Internet of Things concept predates the Internet. It is called SCADA. It is a very subtle and difficult subject. The auto-magic easy-peasy install people who think we can make this concept consumer friendly are missing one huge problem: unless we standardize very carefully on background context, the objects will be very confusing and difficult to integrate.
There is a reason we continue to do things "the hard way." It looks obsolete as hell, and yet, nothing better has replaced it. The closest thing to an upgrade is the IEC 61850 substation object model. However the jury is still out on whether this is actually an improvement. Sure, it is easier to install, but it is not an improvement in terms of actually getting good data in the hands of those who need it.
The ultimate problem with IT specialists who try to standardize home automation is that they don't understand home automation. And when they realize how many variants and kinds there are, they realize why this hasn't happened before. It hasn't been for lack of trying.
... One thing to find them, one thing to bring them all and in the darkness switch the lights on.
Isn't this what zigbee and 802.15.4 was designed for?
What is it about Zigbee that is preventing its adoption? I have no direct experience with Zigbee, but it sounds like a superior technology choice.
However, manufacturers and vendors seem to be lining up behind Z-Wave. (GE, Leviton, Schlage, Honeywell, Guest Controls, Comcast, Time Warner, Verizon(just canceled), ADT, Linksys...) Z-Wave has many similar features to Zigbee and it is a great technology. The drawback to Z-Wave is that it is an expensively licensed technology that is not open like Zigbee.
So, what failing or shortcoming of Zigbee is causing it to not gain the traction that Z-Wave is getting? Why are the manufacturers willing to spend money(Z-Wave), that they theoretically don't have to(Zigbee), for licensing?
Well, the creator of SNMP should use his very own protocol.
There are working SNMPv3 implementations for 8-bit Microcontrollers with about 8 Kbyte of RAM readily available:
http://cnds.eecs.jacobs-university.de/software/contiki-snmp/
Yet another home automation integrator? I'm looking into setting this up: openhab.org
"Persistence is annoying success." - ghee22 11:28:1999 - 10:53:PM
The solution he should have gone for is present in software like Minerva (MinervaHome.net) and others where vendors create as many proprietary protocols as they like, but you have an abstraction on the controller side which interprets generic commands, and re-transmits them in a sensible format for the devices. This way everyone wins.The guy behind the minerva software also has a book out on the subject, so I'm guessing it must be pretty good :)