This repository contains the in-home backend element of the wider project "Supporting Independent Living", as part of a 4th year university team project. The goal of the wider project was to create a system to support people before they formerly entered the UK social care system with a form of at-home activity monitoring. As such, after reviewing existing solutions on the market we designed the project to be:
- Low Cost: Minimising the upfront & monthly costs, a major factor in pickup.
- Privacy Focused: As little invasiveness as possible as you can be for monitoring.
- Modular: Tailorable to a variety of different conditions.
With these, we created a multi-sensor activity monitoring system, with a portion of the processing done locally within the home to transmit only the necessary summarised stats to a remote web server for monitoring by a carer. The responsibility of this repository is to handle the ingesting, processing, & syncing on the local side.
To achieve this, the "local hub", had internal aims set to handle high velocity data, as investigated in it's accompanying write-up and testing under "Examining High-Velocity Data in Communication & Storage to Support an Accessible Solution to Independent Living". To achieve this, an SCTP-like protocol was developed to streamline the ingest to sync pipleline, as well as considerable tweaking to reduce overall overhead throughout the processing.
With the state as of the end of the write-up (May 2026), the largest bottleneck lays with the maximum amount of concurrent writes supported by an SQLite DB. Future work to address this would involve replacing this component with a more robust locally hosted database service, with more control over the writes.
For more details or an extract of the write-up, reach out to me on LinkedIn and I can share more details:
LinkedIn: /in/will-scully
- To test the system as a whole, look at the Assembly Line project.
- To test just this component, see the documentation below, as written during development:
Make sure you install the project with the following command:
pip install -e .
After that, you can run the project's main components via:
- Test Client:
python -m sensorhub.testclient - Local-Hub Server:
python -m sensorhub.localserver - Test Remote Environment Setup:
python -m sensorhub.testremoteserver
Data produced by the client & local-hub server like logs and the sqlite database
are then dumped into a data folder.
For summaries of what each submodule does, check their __main__ and __init__ files
to get a short description.
Libraries
sensorhub.coresensorhub.testremoteserver
Entrypoints
sensorhub.testclientsensorhub.localserver
Otherwise, docs/ includes larger guides on how this project works. (i.e, the sensor <---> local hub protocol)

