IP Cameras

The way we use IP cameras in our smart home is much more advanced than the current consumer model, which is based upon fairly dumb, stand-alone devices capturing images and video clips to a data storage system. In our smart home we basically have four types of IP cameras:

  1. Cameras triggered by attached hardware/sensors and/or motion detection. These cameras can be enabled and disabled based on current smart home context. For example, we may not want to capture footage in our back garden, when we are at home.
  2. Cameras that simply accept requests to capture and store (FTP to our HCS) footage from our HCS. Our HCS has full context and makes intelligent decisions about when and what to capture.
  3. Cameras that simply accept HTTP/RTSP requests from our HCS, which then stores the responses. Our HCS has full context and makes intelligent decisions about when and what to capture.
  4. Cameras on slave devices with local intelligence and contextual knowledge. Typically these are Raspberry Pi based cameras that we have developed and built.

Some cameras can be combinations of the above, for example type 2 cameras (motion detection driven) and also type 3 cameras (respond to requests). Smart front door bells with comms capability are a special case and are not covered here.


Some of our IP cameras support audio capture and transmission as part of the video feed. This can be useful for external cameras and often helps add context to the video captured. It ihas proved useful when monitoring external activity in real time.


Because our smart home has whole home context, it is best placed to trigger the capture of footage. This also includes local slave HCS processors.

In some cases we use hardware sensors directly connected to the camera but we try to avoid this. External sensors provide a more accurate way to trigger IP camera capture than in-built motion detection algorithms though, especially in complex environment.


As important as the triggers, is the action taken when one of the triggers occurs. Because our smart home has whole home context, it 'sees' all the triggers and can intelligently determine what action to take. Typically this involves making an authenticated request for an image or video clip, which is then stored locally. Our smart home will then see these new files being stored and can process them, to tag them and perform functions like face recognition.


All of our cameras work on the premise that the images and video captured is stored locally in our home and a subset of this content is synchronised to a cloud storage service, to enable simple remote access to trusted people. This subset is changed dynamically based on our smart home's context. We do not use any cameras that are tied to a 3rd party cloud storage services.

The footage is stored in a folder for each zone. Within this folder each file has a filename format of the form: 2018-09-23_15:02:48.jpg or 2018-09-23_15:02:48x12.mpeg, where the 'x12' in the video filename represents the video duration in seconds.


IP cameras are only useful if they produce useful, timely and quality footage that meets your needs. How you 'consume' or use the footage depends massively on user needs and the application in mind, so we have taken a very flexible approach. Our approach aims to ensure we never miss significant events, whilst also minimisiing the amount of footage we have to consume.

One big consideration is the need for live viewing of IP camera video streams. Exposing each camera to the Internet for remote viewing is more complex and lowers the security of the camera installations. We tend to avoid this and have the ability to access our cameras in near real-time via our Home Control System (HCS) as a proxy.


Archiving of 'old' media ensures it is kept for usage later if required and also ensures that there is enough storage space for new media being captured. Typically, we archive off old footage at the end of each year.


All of our IP cmeras are powered via a protected 12V dc power supply.


Our Home Control System (HCS) has a network monitoring capability. It will detect when a camera is no longer reachable on the network and alert us accordingly.


Our smart home dashboard provides a views of all our cameras on one screen/page. This can be still images or live streams and it supports different 'views' at various resolutions.


Our HCS models every camera in our smart home in JSON, along with all of its capabilities and characteristics. Our model is extensible and supports advanced capabilities such as face recognition, motion detection, etc.

Face Recognition

Some higher end IP cameras can do face recognition. This is usually limited to a small set of known individuals though. Because our smart home has access to all camera media captured, it can process it straight away and generated alerts or take action based on known or unknown people being spotted. This is covered in more detail in our face recognition project.

Artificial Intelligence

Our smart home has Artificial Intelligence (AI) and we can use this with all our cameras as it knows about them all and models them all, including all of their capabilities. So for example we can ask our smart home: "show me who is at the front door" and it will send an image or video clip.

Share ...
We are on ...
Facebook Twitter
YouTube Flickr Follow us on Pinterest