DeinHaus 4.0 (DH40) — Project Overview

Deutsche Version · Data flow · DEINHAUS4-0 analysis · Architecture · Deployment · VPS demo

Frontend mockups: Static HTML previews of the user interfaces are in mockups/.

Smart-home / ambient-assisted-living research platform from TH Deggendorf (tcf_deinhaus40 on GitLab).

Each participating household runs a Raspberry Pi edge stack (sensors, MQTT, local storage). A tablet app lets residents log activities. Data flows to TH Deggendorf servers for analysis, ML, and study evaluation.

Note: This workspace contains ZIP snapshots of 39 repositories, not live git clones. File dates reflect archive content, not current GitLab activity.


Core Architecture

flowchart TB subgraph home["Home (Raspberry Pi)"] SENS[Sensors / Z-Wave / ESP32] MQTT[Mosquitto MQTT] INFL[InfluxDB + Telegraf] CFG[config-provider] APP[dh40-app tablet PWA] SENS --> MQTT MQTT --> INFL APP --> MQTT APP --> INFL APP --> CFG end subgraph thd["TH Deggendorf"] HIVE[HiveMQ] MDB[(MariaDB)] H2D[MQTT → DB connectors] HIVE --> H2D --> MDB end subgraph access["Access & Security"] CA[dh40-ca cert generator] CAWEB[dh40-ca-web download UI] VPN[OpenVPN per home ID] CA --> CAWEB CA --> VPN end MQTT --> HIVE VPN --> home

Canonical reference: dh40-software-and-hardware-architecture-master — home Docker stack (wohnung/) and THD server stack (thd/).

Detailed data flow: data-flow.md — Z-Wave, app, Withings, camera ML (Jetson), VPS demo.

Camera / fall-detection ML runs on Jetson (research only), not on the production Pi stack — see data-flow §4.

data_transfer_prototype1-master is an earlier sibling of the same design.


Projects by Status

Active / Reference

Directory Purpose
dh40-software-and-hardware-architecture-master System design, Docker Compose, data pipelines
dh40-app-master Main tablet PWA (React/Ionic) — button logging, charts, training videos
dh40-ca-main OpenVPN certificate generation per household
dh40-ca-web-master Web UI to distribute home cert ZIPs
dh40-withings-mariadb-master Pulls Withings health data into MariaDB
dh40-laborvisualisierung-main Live lab-apartment sensor dashboard (React + MQTT)
dh40-emergency-detection-main Edge audio fall/emergency detection (ongoing research)
dh40-spark-main Large-scale study data analysis with Apache Spark
sensor-data-science-main ML feature engineering on sensor/sleep study data

Demo / Showcase

Directory Purpose
dh40-showcase-xxl-tablet-main Trade-show bundle: Pi services + XXL tablet with dh40-app + dh40-laborvisualisierung
dh40-smart-mirror-2-main Jetson-based smart mirror with emotion recognition
dh40_radar_demo-master Infineon 24 GHz radar presence demo
klickdummy-angehoerigen-app-dh4.3-main UI mockup for a relatives' companion app
video-feedback-master UX research on the tablet app

POC / Prototype

Directory Purpose
dh40_config_provider_poc-main HTTP API for home/Withings OAuth config
dh40-app-withings-poc-master React POC for Withings heart-rate data
dh40-withings-auth-server-main Withings OAuth skeleton
dh40-pki-playground-master PKI tool evaluation → led to dh40-ca
dh40_mqtt_broker-master Early Mosquitto MQTT broker setup
dh40_mqtt_mariadb-master Early Python MQTT → MariaDB scripts
hivemq2db-master HiveMQ extension writing MQTT to database
dh40_noise_recognition-master Ambient noise + speech detection (RPi + Coral TPU)
dh40_speechrecognition-master Voice board → MQTT gateway for AAL commands
esp32motionshield-master ESP32 IMU motion analysis (door/window)
dh40_data_playground-master Early data-transfer notebook
dh40_example_node_raspi-master RPi autostart stub for Node/Jupyter example

Academic / Thesis

Directory Purpose
ba_meiler-master Bachelor thesis — ML on RF signals
dh40-streamlit-main Study data analysis (research questions RQ1–RQ5)
dh40_object_recognition-master TensorFlow object detection
dh40-camera-module-master Video fall detection (MediaPipe on Jetson)

Archived / Stale / Superseded

Directory Status
dh40-pki-ARCHIVED-main DEPRECATED → use dh40-ca
data_transfer_prototype1-master Superseded by dh40-software-and-hardware-architecture
smart_mirror-master Older RPi mirror demo (2019)
cms50dplus-master Pulse oximeter serial reader utility
energymeter-master Energy meter reader (Finder 7E46 via m-Bus)

Unclear / Scaffold

Directory Purpose
deinhaus40-app-main Flutter app scaffold
deinhaus-4.0-app-v2.0-app-main Flutter v2 frontend (partially built)
deinhaus-4.0-app-v3.0-main Flutter v3 scaffold (mostly empty)
deinhaus-4.0-v2.0-backend-main Laravel API backend for native v2 apps

App Generations

Three parallel app lines exist:

  1. dh40-app (React/Ionic PWA) — deployed tablet app used in studies and showcases
  2. deinhaus-4.0-app-v2.0 (Flutter) + deinhaus-4.0-v2.0-backend (Laravel) — intended native rewrite, partially built
  3. deinhaus40-app / deinhaus-4.0-app-v3.0 — newer Flutter scaffolds, mostly empty

The Flutter/Laravel stack appears to be the intended successor, but dh40-app remains the most complete and referenced artifact.


Sensor & ML Cluster

Edge intelligence projects. Some publish to MQTT on the Pi (ESP32, speech gateway); Jetson camera/audio projects are research sidecars — not wired into the production study stack. See data-flow §4.

Directory Focus
dh40-emergency-detection-main Audio fall/emergency detection
dh40-camera-module-master Video fall detection (MediaPipe on Jetson)
dh40_object_recognition-master Object detection (TensorFlow)
dh40_noise_recognition-master Ambient sound detection
dh40_speechrecognition-master Voice commands via MQTT
esp32motionshield-master Door/window motion via ESP32 IMU
dh40_radar_demo-master Radar presence sensing
cms50dplus-master Pulse oximeter data

Key Relationships

Layer Repos
Architecture dh40-software-and-hardware-architecture
User-facing dh40-app (+ dh40-showcase-xxl-tablet bundle)
Security dh40-ca, dh40-ca-web
Data platform MQTT → InfluxDB (home), HiveMQ/MariaDB (THD)
Health data dh40-withings-mariadb, Withings POC chain
Research dh40-spark, sensor-data-science, dh40-streamlit, emergency/camera ML
Next-gen app Flutter v2 + Laravel backend (incomplete)
Demo / ops _demo/ (public HTTPS demo), vps-operations.md, demo-production-parity.md

Shared Docker Compose Pattern

The same wohnung/docker/ layout appears in:


List of Abbreviations

Project & Organization

Abbreviation Meaning
DH40 DeinHaus 4.0 — smart-home / AAL research platform
DEINHAUS4-0 React web dashboard (THD → GitHub, TelemedAllianz); see DEINHAUS4-0.md
THD Technische Hochschule Deggendorf (Deggendorf University of Applied Sciences)
TCF Technologie Campus Freyung (THD site)
tcf_deinhaus40 GitLab group hosting DH40 repositories on mygit.th-deg.de
BTA Bayerische TelemedAllianz GmbH (GitHub host of DEINHAUS4-0)
AAL Ambient Assisted Living — technology-supported living at home

Software & Architecture

Abbreviation Meaning
API Application Programming Interface
PWA Progressive Web App — installable web app (e.g. dh40-app)
POC Proof of Concept — feasibility prototype
UI User Interface
UX User Experience
OAuth Open authorization standard (e.g. Withings integration)
MQTT Message Queuing Telemetry Transport — IoT messaging protocol
REST Representational State Transfer — HTTP API style
IoT Internet of Things — connected devices and sensors
ML Machine Learning
EDA Exploratory Data Analysis
RQ Research Question (e.g. RQ1–RQ5 in dh40-streamlit)

Infrastructure & Data

Abbreviation Meaning
VPN Virtual Private Network — encrypted remote access (OpenVPN per household)
PKI Public Key Infrastructure — certificate infrastructure (dh40-ca)
CA Certificate Authority
DB Database
InfluxDB Time-series database at the household (edge)
MariaDB Relational database on THD servers
HiveMQ MQTT broker on THD servers
Mosquitto MQTT broker on the Raspberry Pi (edge)
Telegraf Metrics agent (InfluxDB stack)
Docker Container platform for edge and server stacks
Z-Wave Wireless protocol for smart-home sensors (e.g. Fibaro)
m-Bus Meter-Bus — utility meter reading (energymeter)
Git LFS Git Large File Storage — large files (e.g. training videos)

Hardware & Edge

Abbreviation Meaning
RPi Raspberry Pi — edge computer in each household
ESP32 Microcontroller with Wi-Fi/BT (e.g. motion shield)
IMU Inertial Measurement Unit — accelerometer/gyro sensor
Jetson NVIDIA Jetson — edge AI platform (camera, smart mirror)
TPU Tensor Processing Unit — AI accelerator (Google Coral)
CMS50D+ Pulse oximeter model (serial reader)
RF / HF Radio frequency / high frequency — RF signals (ba_meiler thesis)

Health & Sensors

Abbreviation Meaning
SpO₂ Peripheral oxygen saturation (pulse oximetry)
bpm Beats per minute (heart rate)
mmHg Millimetres of mercury — blood pressure unit
CO₂ Carbon dioxide (room air sensor)
VOC Volatile Organic Compounds — indoor air quality
BMI Body Mass Index

Frameworks & Technologies (in repos)

Abbreviation Meaning
React JavaScript UI framework (dh40-app, lab visualization)
Ionic Mobile UI framework for the tablet PWA
Flutter Cross-platform app framework (v2/v3 apps)
Laravel PHP framework (deinhaus-4.0-v2.0-backend, dh40-ca-web)
Vue JavaScript framework (Inertia dashboard in v2 backend)
TensorFlow ML framework (object/noise recognition)
MediaPipe Google framework for pose/face detection (fall detection)
Streamlit Python framework for data apps (dh40-streamlit)
SSD Single Shot Detector — object detection architecture
ESC-50 Environmental Sound Classification dataset (emergency detection)
DTW Dynamic Time Warping — time-series similarity measure
CFSSL Cloudflare SSL — PKI tool (dh40-ca)
Easy-RSA OpenVPN certificate toolkit

Academic

Abbreviation Meaning
BA Bachelor thesis (e.g. ba_meiler)
MA Master thesis (e.g. dh40-emergency-detection)

Architecture directory shorthand

Abbreviation Meaning
wohnung/ Docker/config stack for the household (edge)
thd/ Docker/server stack at TH Deggendorf

Directory Layout

Each ZIP extracts to a folder named after the archive:

dh40/
├── _docs/                       → documentation (this file, data-flow, deployment, …)
│   ├── readme.md / readme_de.md
│   └── data-flow.md / data-flow_de.md
├── _demo/                       → public IONOS VPS demo (Caddy, mqtt-simulator, Influx)
├── mockups/                     → static HTML UI mockups
│   └── index.html
├── dh40-app-master/             → from dh40-app-master.zip
├── dh40-software-and-hardware-architecture-master/
└── … (39 project archives total)

Most repos use a nested root: /<archive-name>/<archive-name>/.