YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

Voltix Home

Smart-home automation with face-recognition gate access, MQTT device control, ESP32 firmware, and a real-time Next.js dashboard.

This repository is private. It contains biometric data (face embeddings and camera snapshots of identifiable people) and device firmware. Access is restricted to invited team members. Do not make it public β€” see SECURITY.md.

Stack

Layer Technology
Dashboard / API Next.js (App Router), TypeScript, Socket.io
Realtime bus Aedes MQTT broker (embedded, port 1884)
Database PostgreSQL + Prisma
Vision service Python, FastAPI, OpenCV, ONNX Runtime
Face recognition SFace (ONNX) + YuNet detection
Anti-spoof MiniFASNet deepfake detector
Firmware ESP32-CAM (gate), ESP32 8-relay, ESP32 gas sensor

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   HTTP POST /frame    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   ESP32-CAM     β”‚ ────────────────────▢ β”‚  Next.js Server (Node)       β”‚
β”‚  Gate + Stream  β”‚ ◀──────────────────── β”‚  β”œβ”€ API Routes (REST)        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   {authorized, name}  β”‚  β”œβ”€ Socket.io Gateway        β”‚
                                          β”‚  β”œβ”€ Aedes MQTT Broker :1884  β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                       β”‚  β”œβ”€ Face Engine Bridge       β”‚
β”‚ ESP32 8-Relay   β”‚ ◀────MQTT──▢─────────▢│  β”‚   (Python face-recognitionβ”‚
β”‚ x8 Appliances   β”‚  voltix/devices/#     β”‚  β”‚    microservice :8000)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                       β”‚  └─ Prisma β†’ PostgreSQL      β”‚
      β–² physical buttons                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                     β”‚ WebSocket (<100ms)
                                              β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
                                              β”‚  Dashboard  β”‚
                                              β”‚ Next.js App β”‚
                                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Repository layout

voltix-home/
β”œβ”€β”€ voltixhome-main/          # the application
β”‚   β”œβ”€β”€ app/                  # Next.js App Router pages + API routes
β”‚   β”‚   └── api/              # REST: accesslogs, appliances, cam, gate, internal/
β”‚   β”œβ”€β”€ components/           # Dashboard UI (GatePanel, ApplianceGrid, StatsRow)
β”‚   β”œβ”€β”€ lib/                  # prisma, auth, env, mqtt-handlers, face-bridge
β”‚   β”œβ”€β”€ hooks/                # useVoltixSocket β€” realtime client
β”‚   β”œβ”€β”€ prisma/               # schema.prisma, migrations, seed
β”‚   β”œβ”€β”€ services/vision/      # FastAPI face recognition microservice
β”‚   β”œβ”€β”€ engine/               # Face engine library + ONNX models
β”‚   β”‚   β”œβ”€β”€ src/              # face_engine.py, anti_spoof.py, gate_controller.py
β”‚   β”‚   β”œβ”€β”€ models/           # sface_2021dec.onnx, face_detection_yunet_2023mar.onnx
β”‚   β”‚   └── database/         # embeddings.pkl  ← BIOMETRIC, do not redistribute
β”‚   β”œβ”€β”€ firmware/             # ESP32 sketches (Arduino/C++)
β”‚   β”‚   β”œβ”€β”€ esp32cam_gate/    # gate camera + MJPEG stream
β”‚   β”‚   β”œβ”€β”€ VoltixGateCam/    # gate camera (alt sketch)
β”‚   β”‚   β”œβ”€β”€ esp32_relay8/     # 8-channel relay board
β”‚   β”‚   β”œβ”€β”€ VoltixRelayGas/   # relay + gas sensor variant
β”‚   β”‚   β”œβ”€β”€ esp32_gas_sensor/ # standalone gas/sensor node
β”‚   β”‚   └── CamTest/          # minimal camera bring-up test
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”œβ”€β”€ images/           # product renders
β”‚   β”‚   β”œβ”€β”€ fonts/            # self-hosted webfonts
β”‚   β”‚   └── snapshots/        # ACCESS SNAPSHOTS ← contains identifiable faces
β”‚   β”œβ”€β”€ docs (root)           # SYNOPSIS, FLASH-GUIDE, audit
β”‚   └── new_degign/           # static Woblo export used as design reference
β”œβ”€β”€ firmware/.gitignore       # keeps secrets.local.h out of git
β”œβ”€β”€ LICENSE                   # MIT
β”œβ”€β”€ SECURITY.md               # threat model, known limitations, secret policy
β”œβ”€β”€ CONTRIBUTING.md           # branch/commit/PR conventions
β”œβ”€β”€ .gitattributes            # Git LFS rules for binaries, models, images
└── .gitignore

Quick start

npm --prefix voltixhome-main install
cp voltixhome-main/.env.example voltixhome-main/.env
# edit .env: DATABASE_URL, VOLTIX_DEVICE_KEY, ADMIN_EMAIL, ADMIN_PASSWORD
npx --prefix voltixhome-main prisma migrate deploy
npx --prefix voltixhome-main prisma db seed

Run the three services in separate terminals:

npm --prefix voltixhome-main run dev        # dashboard + MQTT broker :3000
pip install -r voltixhome-main/services/vision/requirements.txt
npm --prefix voltixhome-main run vision     # face engine :8000

Windows convenience wrappers live at the repo root: start-voltix-dashboard.bat, start-voltix-everywhere.bat, start-face-gate.bat, start-enroll.bat.

Firmware setup: edit voltixhome-main/firmware/<sketch>/secrets.h with your Wi-Fi SSID/password, PC LAN IP, and the device key (must match VOLTIX_DEVICE_KEY in .env), then flash from the Arduino IDE. See voltixhome-main/FLASH-GUIDE.md.

MQTT protocol

Topic Direction Payload
voltix/devices/{deviceId}/set Broker β†’ Device {"state":"ON","key":"SECRET"}
voltix/devices/{deviceId}/state Device β†’ Broker {"deviceId":"RELAY-01","relay":3,"state":"ON","rssi":-52}
voltix/devices/{deviceId}/online LWT {"online":true}
voltix/gate/authorize Backend β†’ Gate {"decision":"GRANTED","person":"Alice","confidence":0.93}
voltix/gate/set Dashboard β†’ Relay {"state":"OPEN"}

Latency profile

  • ESP32 β†’ broker: ~5 ms on LAN
  • Broker β†’ Socket.io fan-out: ~2 ms
  • UI toggle: optimistic, instant
  • Device confirmation via retained state echo: ~30–80 ms

Documentation

  • voltixhome-main/README.md β€” full technical readme, deployment checklist
  • voltixhome-main/FLASH-GUIDE.md β€” firmware flashing walkthrough
  • voltixhome-main/SYNOPSIS_VOLTIX_HOME.md / SOFTWARE_SYNOPSIS_VOLTIX.md β€” project synopsis
  • voltixhome-main/SYNOPSIS-AUDIT.md β€” code audit notes
  • SECURITY.md β€” threat model and known limitations (read before deploying)
  • CONTRIBUTING.md β€” how to branch, commit, and open a PR

License

MIT β€” see LICENSE.

Third-party model weights (SFace, YuNet, MiniFASNet) remain under their own upstream licences; see THIRD_PARTY_LICENSES.md.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support