Technically from a network engineering standpoint The purpose of a hub is to “establish” A network which gives devices permission to talk to each other.
In some protocols, such as Z wave, the hub also gives out the network addresses that will be used for the messages. In other protocols, such as zigbee home automation, each device has a unique Device identifier which it registers with the hub at the time that it joins the network.
In either case, it’s the hub that keeps the master address table and therefore knows all of the devices on the network.
The hub is also responsible for maintaining any encryption keys being used for secure messaging and giving those to new devices when they join.
All of this is pretty much invisible to the end-user, but it’s really important stuff as far as Messages actually getting from one device to another.
All of the user interface features, including a rules engine, status reports, and all that aren’t technically part of the hub definition at all. You can use a third-party Control interface, just like people will get a third-party app to use with Hue bulbs.
I know none of this probably fits with the initial impression left by marketing in the home automation industry, but it’s the reality of what a hub is and why you might need one.
Based on the marketing, when most people think of the hub they are probably thinking of a centralized control interface (sometimes abbreviated CCI in technical documents, but that acronym hasn’t really made it into consumer marketing).
A centralized control interface lets you the human create rules that apply to many different devices, and that may even be devices running on multiple networks established by several different hubs. It usually also lets you review the status of multiple devices.
The CCI is often just software. It might be an app, it might be a laptop program.
Many CCI’s work by sending requests to the various hubs that do the actual device control, they don’t communicate with any individual devices directly. Others do have direct command and control of some individual devices. Often the distinction is completely invisible to the human being, which is usually a good thing.
So… Technically, a hub is a hardware device which authorizes other devices to join a network of a specific protocol and oversees the messaging between those devices on an engineering level.
A CCI is typically software, an app or other interface which allows a human to set up rules and schedules for devices which may be of many different protocols and utilize multiple networks and multiple hubs.
SmartThings is a multiprotocol hub (zwave and zigbee) which comes with a fairly weak CCI.
CORE is a CCI built by community members for the SmartThings platform which is a very sophisticated rules engine.
Probably nobody but me will care about any of this, because from a consumer standpoint none of it really matters. But to network engineers it matters a lot. If a device can’t establish a network, it’s not a hub. And no network, no home automation.
But to the consumer, the network is just the infrastructure to get to what they really want: schedules and automations. So they want a CCI which is powerful, has high discoverability, is easy to use, and pulls all of their devices into one ruleset. Which is a great goal, but from an engineering standpoint technically has nothing to do with the hub.
I’ll go sit in the corner now.