Home Surveillance System (HSS)

David (@dynamicdave), Paul (@zenofmud and Walter (@krambriw) are pleased to announce the release of their Home Surveillance System (HSS) project based on Node-RED running on a Raspberry Pi (recommended hardware is... Raspberry Pi-3B or 4B).

As can be seen from the photos below, HSS has four monitors and a main display area that can show video streams from local and/or remote cameras


On-the-fly recordings can also be made and stored just by clicking the 'Record' button.

Screen Shot 09-30-21 at 02.59 PM

HSS also has a set of function buttons named...

  • Presets - sets the monitors to specified camera streams
  • Tour - starts a cyclic sequence of streams in the main display
  • Next - advances to the next stream in the cyclic sequence
  • < Go Back - used when viewing material in the 'Show menus'
  • Record - starts a configurable (5-second default) recording of the stream on the main display
  • Snapshot - takes a snapshot of the current frame shown on the main display
  • Telegram - sends a snapshot of the current frame to your Telegram account
  • Email - sends a snapshot of the current frame to your email address

HSS has an option to process motion-detections, do object recognition and make selective recordings (which can be played-back at a later time/date) using our Cyclic Resource Allocator (CRA) technolgy.

This release is initially aimed at people who are already using a Raspberry Pi and are familiar with using Node-RED. Possible future releases will be for Mac and Windows platforms.

As the project is quite complex, a website has been created to give you in-depth details of HSS and guide you through the installation and setting-up procedures to try to ensure that HSS works first time for you - as they say... "Out of the box". Please take the time to read through this information.

Please visit our website at... http://www.teamwork-int.com/hss/

Note: The Node-RED flow and configuration files are available on the Downloads section of the website.

EDIT: Version v1.1.0 of HSS was uploaded to the above website on... 09th October 2021

This release includes the new version of Single File Gallery (SFG v4_8_0) which has many improvements and enhancements. We have packaged a new 'organise' script with this release as SFG needs to remove _sfpg_data as thumbnails are now stored in a different format.

EDIT: You may find you also need to install the GD library in PHP to get thumbnails to appear.
sudo apt install php7.3-gd

You will need to re-run Step 1 and Step 2 on the HSS Setup SAS tab-flow and then all of this should happen automatically for you.

EDIT: Version v1.2.0 of HSS was uploaded to the above website on... 19th October 2021

This release enables cameras and media_links to be given a name ("label") which makes HSS even more user-friendly. Examples of how to do this are in the config file... hss_config_basic_nf.txt

You will need to re-run Step 1 and Step 2 on the HSS Setup SAS tab-flow and then all of this should happen automatically for you.

Another new feature are "hooks" that enable users who run their own external AI object processing systems to easily connect their system to HSS.

Just to let anyone who has downloaded HSS v1.2.0 know, that our website has been updated with instructions on how to use the new "hooks" feature to interface to an AI external processing engine.

Please take a look at our FAQs section at HSS - FAQs for more information.

The HSS MDSR flow has two MQTT and Inject nodes that are part of the "hooks".

A similar set of "hooks" can be inserted on the IP CAM X flows. Here's an example on the RedBull tab.

Post your questions below and 'The Team' will try to help you as best we can setting up your own HSS!

Kind regards from the HSS team.


It's good to see international teamwork pulling this project together.
Well done guys :+1:


Yes it has been great fun during the pandemic working with some great people in different parts of the world - it has helped me maintain my mental (and technical) health tremendously.

My management training company is called Teamwork International - do you think that's a coincidence??


Nice to see that well working and productive teams are possible. Like to see them more. That's the way to the bright open source community driven future. Well done. Big Like :+1:


Thanks for your kind words.
It just goes to show that THIS forum has some great people as active and supportive members. :heart_eyes:


I will definitely be stealing the Telegram integration from it, I've never got very far with Telegram.

A few issues after a quick look at the website:
The website seems to be hard wired for small screens and forces me to scroll to read things, frustrating when you have a 43" 4K display.

I've never encountered WiFi that can be faster than wired unless your wiring is stuck on 10BaseT.

The DroidCam for Android link is about half cutoff when I've scrolled to the bottom of the view, although it does work if I manage to click it.

RTSP | Security.World would be a good link to add to the IP camera section, it can save a lot of grief when buying IP cameras or security DVR/NVR systems to make sure they support at least minimal standards -- too many are proprietary protocol to "lock you in" -- if they offer "cloud" services odds are they won't work with anything else, i.e. RING and most of its competitors.

Overall very nice job! I look forward to installing it and playing with it on one of my spare Pi4B, will 2GB version work?

I'm going to grab the code and look at it in terms of how hard it might be to put my person detection AI into it, as its a much better front end that I've come up with, but then my design was to have a system that I never look at, except after I get an Email, MMS, or Audio alert. Specifically, if it can be modified to send periodic snapshots (2-4 per second is about right in my experience) it shouldn't be too difficult.

Is there a minimum version requirement for node-red? I just booted my old Pi4B-2GB and it is at v1.03

That will be fine. I have it running on a Pi4B w 4GB but I think also a Pi3 is sufficient

We have not tested it with older versions. Myself, I'm running it on NR 1.3.1
Why not update, it doesn't take that long running the install script on a Pi4? We are using the mp4frag nodes developed by @kevinGodell and later versions of the Dashboard to get the best possible support for mp4 playlists. So yes, I would recommend an update of Node-RED


Won't the script update me to the "latest" 2.x version? I was surprised I had such an old node-red on this Pi4, is there a way to have the script upgrade to v 1.3.1?

Edit: its in the help text for the script: --nodered-version="1.3.1"

I'd like to start with a known to work version, then if it works I'd update to the latest and let y'all know if there are issues. This is a system I can sacrifice, but I don't have a lot of extra time at the moment for version compatibility issues or starting from scratch. I just want to give this a tryout ASAP.

My apt update, apt upgrade just finished, it was so far behind the times it had about 1GB of updates to download.

Following on from what Walter @krambriw said... One of our beta-testers has HSS running on a RPi-3B.

I'm running HSS on a RPi-4B with 2GB of RAM, Node-RED v2.0.5 with Buster OS.

I spent over 3-hours a month ago bringing one of my Pi(es) up-to-date as Node-RED v2 requires Buster.
I had to go from Jessie to Stretch and then Stretch to Buster (what a pain).
If I had to do that again, I'd just back-up the old Pi and flash a 'new' SD card with Buster.
I posted my experience on the forum.

I can understand that our website will look 'tiny' on your screen - sorry. When I started out to build the website I envisaged that people would refer to our website on a tablet or a mobile device (like an electronic reference guide) whilst they used their main computer to do the install via an SSH terminal window.

In retrospect I should have used a package like Wordpress or similar to create a 'responsive' website.

I hope you still find the website useful as it should help with the installation and setting-up procedures.


No problems, its not so much that it is tiny, it looks the size of your tablet :slight_smile: but with a big monitor, I keep any websites with the commands I need open and cut and paste from the site to my ssh session on the Pi or whatever. Its just I have to keep scrolling the window to get to the next steps.

The "you are here" lines at the top of the window seem to use a lot of scarce screen space on a tablet sized window, wouldn't a simple set of previous/next buttons do the job? As it is now when I go to the next step I see the same boilerplate page except a different line is highlighted.

Just finished upgrading to node-red 1.3.1, onward to installing the extra nodes, ffmpeg, and nginx.

I am excited about this, it looks really nice. How do I tell Stretch from Buster? I thought Buster was the first version for the Pi4B, if I'm wrong I probably have Stretch on this as I was very quick to get a Pi4B when they first came out for the pseudo gigabit Ethernet (about 3X faster than original 100BaseTX) and USB3 ports (for the AI co-processors).

Great way to tell what version and/or Pi you are running I use thest two commands in a terminal window"

Find Pi model and version
cat /proc/device-tree/model

Find software release
cat /etc/os-release


Thanks, I do indeed have Buster.

1 Like

Getting close, everything smooth until I deploy the imported flow. When I deploy I get unknown node types : image

Looks like something got left out of the instructions, I assume it needs node-red-contrib-image-output I'll install it and soldier on.

Installing Kevin's mpr nodes I get:
found 22 vulnerabilities (9 low, 3 moderate, 7 high, 3 critical)
Is this anything to be concerned about?

I get this when I click deploy:

The workspace contains some nodes that are not properly configured:

  • [HSS_mp4frag Subflow] /mp4frag/43fff5e2.62047c (mp4frag)
    Are you sure you want to deploy?

Looks like you need to deploy anyway and then proceed. This could use a mention in the instructions.

I'm getting close, need to do something else for a while, but I'll get back to it soon.

1 Like

I'm out at the moment and on a mobile device..
It sounds like the issue I describe in the FAQ section.
You just need to open the sub-flows and look for a red arrow (indicating the node hasn't been initialized).
Click on any node with the red arrow then close them - I know that sounds silly but it seems to sort out the problem.
Hope that sorts out the problem for you - and sorry for missing the 'image' node in the install instructions.
I won't be back on my PC for about 4 hours

I think you just need to mention to deploy anyway despite the warning dialog. That is what I did and so far no need to "inspect" any sub-flows. I've completed the HSS Setup SAS step and am about to pick up at the HSS initialization step after lunch.

I got to:

Go to the tab-flow labelled… HSS initialization and click the Inject node labelled ‘get the configuration file’.

And nothing happens. I assume I need to connect to a URL on the nginx server I installed, but what is it?

Edit: Unexpected, maybe needs a mention in the documentation, its just the dashboard! PiHostIP:1880/ui

I'm seeing nighttime views somewhere in Scandinavia :slight_smile:
Very well done!

I'll play with it some more.

I tried saving a few snapshots and a recording. As a UI critique the recording button stayed red until I pushed it again, I would think that the "recording complete" popup would have turned it back green again.
But what happened to the images? Connecting to hss_media/snapshots or hss_media/recordings on my Pi nginx server gives "No Images in gallery".

Edit3: At the bottom of the "3. Installation Instructions" the last line is cutoff, even worse than the DroidCam for Android link is in the "1. Requirements" section. I can't make out anything about it.

Hey guys,
For those that want to build there home surveillance system in Node-RED, remember that it is also possible to show camera footage inside a floorplan (see here for an example).

Perhaps a bit off topic. So if somebody wants to discuss this, it might be best to open a separate new discussion!

Just mentioning it here, for people that are reading this nice discussion and want extend their HSS with extra features....

1 Like

Sorry for the delay - I had a terrible journey trying to get home - so I won't be online for long.

Couple of things you could try for me.

  1. Is the NGINX server running?
  2. Does it interpret the test PHP file and show the server's parameters/settings?
  3. If you 'cd' to /var/www/html/hss_media/recordings do you see any numbered directories like 30 or 01 ??
    Screen Shot 10-01-21 at 11.24 PM

If the answer to 3 is NO, could you try forcing the daily Housekeeping routine by clicking the 'inject' node on the HSS Housekeeping flow-tab. That should create a directory numbered according to today's DAY.

This is where the recordings are stored that you make.

Note: Depending on the frame rate of the camera, it can take 5 to 20 seconds to capture a recording.
The Recording button will eventually change back to a green background, or if you click it whilst it is red it will end the recording prematurely.
Then if you try making a new recording, you could look inside the directory and see if there are any .mp4 and .jpg files
Screen Shot 10-01-21 at 11.34 PM

One last question - where in the world are you located??
This would help me sort out the best time for me or one of the other team members to to be online to help you.

Right - I'm off to bed as I've had a nightmare of a day.

1 Like