Skip to content

Architecture

Élise OS is the product. Home Assistant is an internal integration engine, Zigbee2MQTT a radio adapter and Mosquitto a private transport. None of the three is exposed in the family’s experience.

Zigbee sensors ── Zigbee adapter ── Zigbee2MQTT ──┐
Mosquitto ── Home Assistant ── Élise Bridge
Matter · Wi-Fi · BLE · Z-Wave ──────────────────────────────┘ │
normalised events (MQTT QoS 1)
│
Élise Core ── PostgreSQL + transactional queue
│ │
REST + SSE Worker ── Élise AI
│ │
Caregiver space · mobile · TV Minimal push notifications
RTSP / ONVIF cameras ── go2rtc (separate media plane) ── ticketed WebRTC ── Caregiver space
  1. A sensor changes state. Home Assistant receives it through its integration (Zigbee2MQTT for Zigbee).
  2. The Élise bridge, a Home Assistant integration, maps the entity to an Élise capability and publishes a normalised, minimised event over authenticated MQTT.
  3. Élise Core stores the observation, immutable and idempotent: a replayed event creates no duplicate.
  4. Deferred jobs (analysis, notifications, webhooks) go through a transactional queue in the database, run by the Worker. They resume after a restart.
  5. Élise AI computes an anomaly score from features supplied by the Worker. Core decides, after its own checks, whether to raise an alert.
  • Identity: local users, hashed passwords, sessions, roles.
  • Household: home, resident, caregivers, rooms, devices.
  • Sensing: capability mappings, sensor health, observations.
  • Media: encrypted camera registry, viewing tickets, privacy mode, alert images.
  • Routines: calibration, models, anomaly evaluations.
  • Alerts: rules, policy gates, lifecycle, notifications.
  • Care coordination: journal, visits, appointments.
  • Platform: configuration, audit, retention, backups, health.

The deployment is a modular monolith plus one isolated Python learning service. Élise AI can neither read the home bus nor create an alert.

Every device exposed by Home Assistant is accepted. Each entity is classified as validated, recognised, partial or unsupported. Home Assistant and Zigbee2MQTT versions are pinned; the bridge is tested against the pinned Home Assistant release and its predecessor before every upgrade.

Role Component
System Ubuntu Server 24.04 LTS
Containers Docker Compose, signed ARM64 and AMD64 images
Integration Home Assistant, Zigbee2MQTT
Bus Mosquitto (MQTT)
Database PostgreSQL
Core, Worker, Dashboard TypeScript, Node.js
Learning Python, FastAPI, Isolation Forest
Cameras go2rtc, WebRTC
Mobile React Native, Expo
Remote access Tailscale