The control system runs its own dedicated WiFi network, to which devices can be connected, instead of them being connected to the home network.

This enables the network used for the devices to be better protected against any external interference or hacking. It also places the hub between the devices and the home network, in the same way that it does for the other networks.

A WiFi network adapter is built into the Raspberry Pi 3B, which we are using as the basis for the hub. The latest version, the 3b+ supports dual band WiFi, 2.4GHz and 5.GHz. Alternatively, a USB WiFi adapter can be used.

The hub communicates with all WiFi devices at a TCP/IP level, so the hub can send conventional HTTPS GET and POST methods to each WiFi device, or use any standard REST API.

Cameras and other streaming video sources are handled differently. They use a Real Time Streaming Protocol (RTSP) to send their images to the hub. The hub converts these streams into MPEG videos. Users are then able to access their hub via the home WiFi / LAN with a mobile phone, or similar device, using a conventional internet browser. The videos can also be viewed remotely, by the users either accessing their hub, either directly, or via the supporting cloud service.

Most proprietary cameras have to be registered and paired with a manufacturer specific app running on a mobile device. The hub relays these communications between the camera and the manufacturer’s cloud based software.

Once registered, the hub terminates this link to the cloud, so that the camera output terminates at the hub. This protects the user’s privacy, while still enabling them to access their videos on their hub. The video storage capacity of the hub is determined entirely by the capacity of the SD, which can be up to 256GB.

Most cameras do not need an Internet connection for their normal operation. Any that do should be avoided.

Some WiFi devices cannot be connected in this way, especially if they rely on a supporting web server.

Alexa and Google Home are examples, because the interpretation of the user commands takes place on a cloud based web server. The control system can still be protected against any spurious command received from these web servers, because they are sent to the hub, where they can be validated.