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:
dh40-app (React/Ionic PWA) — deployed tablet app used in studies and showcases
deinhaus-4.0-app-v2.0 (Flutter) + deinhaus-4.0-v2.0-backend (Laravel) — intended native rewrite, partially built
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:
dh40-software-and-hardware-architecture-master
data_transfer_prototype1-master
dh40-showcase-xxl-tablet-main
Git Submodule Links
dh40-showcase-xxl-tablet bundles dh40-app + dh40-laborvisualisierung
dh40-app-withings-poc embeds dh40_config_provider
dh40-ca-web consumes cert ZIPs from dh40-ca
smart_mirror references cms50dplus
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>/.