About this project

Hauser is a self-hosted, room-first Home Assistant dashboard designed for wall panels, tablets and phones. It positions itself as a calm everyday interface for family members, while Home Assistant remains the operator and admin interface. The project is in its first public technical beta (AGPL-licensed hobby project) and is installable via Docker Compose or as a Home Assistant App. Key features include: - **Rooms**: Climate, lights, scenes, presence and window state, each illustrated in three lighting states that follow actual lights. - **Room images**: A wizard generates custom illustrations from a phone photograph, using OpenAI (paid, optional), Cloudflare Workers AI (free tier), or manual drawing. - **Home Assistant integration**: WebSocket via the official client, optimistic commands with reconciliation, reconnect handling, and day/night theming from `sun.sun`. - **Media**: Jellyfin library, shelves, detail view, HLS playback with resume; room audio through HA media players. - **Energy**: Live load and daily consumption from real power sensors, with honest empty states. - **Everyday**: Calendar, notes, reminders, shopping list, laundry notifications. - **Documents**: PIN-gated Paperless-ngx search, preview, download and import through an optional companion server. - **Devices**: Add, hide, rename, assign to a room and reorder entities from inside the UI. - **Edit and use modes**: One switch separates configuring from operating; use mode closes configuration doors, optionally behind a PIN with idle timeout. - **Standby**: A calm lockscreen with clock, week strip, notes and shopping list; optionally a faint street map of your own town rendered from OpenStreetMap data. - **Two shells**: A landscape wall panel and a one-handed phone layout sharing one design system. - **Hotel mode**: Optional guest surface for holiday apartments with stays from a Home Assistant calendar, default-deny device release, PIN-gated admin session and guest checkout. Architecture: The app is Svelte 5 + Vite with a four-layer adapter between UI and backends (entity store, pending intents overlay, command queue, swappable backend). It supports two transports to Home Assistant: as a Home Assistant App (server-only connection via Supervisor) or with Docker Compose (browser connects directly). The server holds validated household configuration, room-image store, standby map renderer, centrally stored reminders, optional Notion shopping source and PIN-gated Paperless-ngx bridge. Integration credentials stay server-side. Installation: Two supported paths — as a Home Assistant App (for HA OS/Supervised) or with Docker Compose (for HA Container, plain Docker hosts, NAS). Both end in a guided setup wizard covering language selection, Home Assistant connection, area discovery, room review, Jellyfin enablement, and atomic configuration activation. The release image is `ghcr.io/ralleur/hauser:v0.37.2` (current). A static demo runs the real interface against simulated devices without connecting to a visitor's HA. Documentation includes a wiki, design system docs, interaction contract, performance budget, installation contract, configuration reference, and dev-pilot guide. The project emphasizes a performance budget (under 16 ms touch-to-feedback, transform/opacity only), optimistic UI with reconciliation, and a unified design system across all surfaces.