How romainb82/laruche-domotique works
Domotique is a local-first smart-home control system, with a Vue PWA and a native iOS client sharing a server and domain contract. The main workflow is residents signing in, viewing house/device state, and sending commands; the server dispatches commands through interchangeable simulated or hardware adapters and publishes confirmed state. Configuration, accounts, history, cameras, scheduling, and HomeKit are distinct capabilities. Edges reflect excerpted calls, SOURCE INDEX references, or README statements; some unsampled subsystem details and runtime wiring are therefore omitted.
Main entry points: index.ts HTTP and WS API · App.vue Web shell · state.ts State hub · homeassistant.ts Home Assistant
Components 27
Resident clients
- Web shell
packages/app/src/App.vue - Web routes
packages/app/src/router.ts - Web settings
packages/app/src/views/SettingsView.vue - iOS house state
packages/ios/DomoKit/Sources/DomoKit/HouseStore.swift - iOS API client
packages/ios/DomoKit/Sources/DomoKit/DomoClient.swift - iOS house view
packages/ios/Maison/Sources/Views/HouseView.swift - iOS room view
packages/ios/Maison/Sources/Views/RoomView.swift - iOS floor plan
packages/ios/Maison/Sources/Views/HousePlanView.swift
Server runtime
- HTTP and WS API
packages/server/src/index.ts - Authentication
packages/server/src/auth.ts - State hub
packages/server/src/state.ts - SQLite store
packages/server/src/db.ts - Scheduler
packages/server/src/planificateur.ts - Camera access
packages/server/src/cameras.ts - HomeKit bridge
packages/server/src/homekit.ts
Device channels
- Driver contract
packages/server/src/drivers/driver.ts - Simulation driver
packages/server/src/drivers/sim.ts - Adapter contract
packages/server/src/adapters/adapter.ts - MQTT adapter
packages/server/src/adapters/mqtt.ts - HTTP adapter
packages/server/src/adapters/http.ts - Modbus adapter
packages/server/src/adapters/modbus.ts - Home Assistant
packages/server/src/adapters/homeassistant.ts
House domain
- Shared domain types
packages/shared/src/types.ts - House configuration
packages/shared/src/config.ts - Reference house seed
packages/shared/src/seed.ts - Energy domain
packages/shared/src/energie.ts
Other components
- Resident
Connections 31
- Resident → Web shell: uses
README.md - Resident → iOS house view: uses
README.md - Web shell → Web routes: hosts
packages/app/src/main.ts - Web routes → Web settings: routes to
packages/app/src/router.ts - Web routes → Resident: guards access
packages/app/src/router.ts - iOS house view → iOS floor plan: renders
packages/ios/Maison/Sources/Views/HouseView.swift - iOS house view → iOS room view: renders
packages/ios/Maison/Sources/Views/HouseView.swift - iOS room view → iOS house state: reads state
packages/ios/Maison/Sources/Views/RoomView.swift - iOS house state → iOS API client: calls
packages/ios/DomoKit/Sources/DomoKit/HouseStore.swift - iOS API client → HTTP and WS API: HTTP requests
packages/ios/DomoKit/Sources/DomoKit/DomoClient.swift - Web shell → HTTP and WS API: uses API
- HTTP and WS API → Authentication: authenticates
packages/server/src/index.ts - HTTP and WS API → State hub: serves state
packages/server/src/index.ts - HTTP and WS API → SQLite store: reads and writes
packages/server/src/index.ts - HTTP and WS API → Scheduler: configures
packages/server/src/index.ts - HTTP and WS API → Camera access: requests snapshots
packages/server/src/index.ts - HTTP and WS API → HomeKit bridge: forwards state
packages/server/src/index.ts - State hub → SQLite store: persists state
packages/server/src/state.ts - State hub → Driver contract: uses driver
packages/server/src/state.ts - State hub → Adapter contract: uses registry
packages/server/src/state.ts - Simulation driver → Driver contract: implements
packages/server/src/drivers/sim.ts - Home Assistant → Adapter contract: extends
packages/server/src/adapters/homeassistant.ts - Home Assistant → Shared domain types: uses types
packages/server/src/adapters/homeassistant.ts - Home Assistant → HTTP and WS API: selected channel
README.md - MQTT adapter → HTTP and WS API: selected channel
README.md - HTTP adapter → HTTP and WS API: selected channel
README.md - Modbus adapter → HTTP and WS API: selected channel
README.md - HTTP and WS API → House configuration: loads configuration
packages/server/src/index.ts - Reference house seed → House configuration: builds seed
packages/shared/src/seed.ts - Web shell → Shared domain types: shares contract
packages/app/src/App.vue - HTTP and WS API → Shared domain types: shares contract
packages/server/src/index.ts