How mrkinte/u-fanctl works
U-Fanctl is a web-based fan controller for the HS-201P NAS: an operator logs in, selects manual speed or automatic temperature-curve control, and monitors fan status. The Python service initializes configuration and fan control, schedules automatic regulation, and serves authenticated APIs, WebSocket updates, and the Vue interface. The README documents temperature curves; sampled files do not show the regulation, configuration-route, or WebSocket implementations, so those links are limited to documented roles and visible entry points.
Main entry points: web_service.py HTTP application · ControlView.vue Control dashboard · config_manager.py Config manager · main.py Service startup
Components 22
Web interface
- Application shell
WebUI/src/App.vue - Page routing
WebUI/src/router/index.ts - Login page
WebUI/src/views/LogInView.vue - Control dashboard
WebUI/src/views/ControlView.vue - Mode and speed
WebUI/src/components/ControlMode.vue - Curve and telemetry
WebUI/src/components/ControlCurve.vue - Temperature chart
WebUI/src/components/TemperatureChart.vue - Auth API client
WebUI/src/apis/auth.ts - Config API client
WebUI/src/apis/config.ts
Web service
- HTTP application
U-Fanctl/services/web_service.py - Authentication routes
U-Fanctl/routers/auth.py - Configuration routes
U-Fanctl/routers/config.py - Live updates
U-Fanctl/routers/websocket.py - Response models
U-Fanctl/models/response_schemas.py
Fan control
- Service startup
U-Fanctl/main.py - Fan regulation
U-Fanctl/services/fan_control.py
Configuration and session
- Session manager
U-Fanctl/services/session_manager.py - Config manager
U-Fanctl/utils/config_manager.py - TOML settings
Other components
- Operator
- Browser
- NAS fan hardware
Connections 26
- Operator → Browser: operates
- Browser → Application shell: opens
- Application shell → Page routing: renders routes
- Page routing → Login page: selects
- Page routing → Control dashboard: selects
- Login page → Auth API client: submits login
- Control dashboard → Mode and speed: shows controls
- Control dashboard → Curve and telemetry: shows curve
- Control dashboard → Temperature chart: shows telemetry
- Mode and speed → Config API client: reads and sets
- Curve and telemetry → Config API client: reads and sets
- Auth API client → HTTP application: HTTP requests
- Config API client → HTTP application: HTTP requests
- HTTP application → Authentication routes: routes auth
- HTTP application → Configuration routes: routes config
- HTTP application → Live updates: routes updates
- HTTP application → Response models: formats errors
- Authentication routes → Session manager: creates and checks
- Authentication routes → Config manager: reads password
- Configuration routes → Config manager: reads and writes
- HTTP application → Session manager: checks protected routes
- Service startup → Config manager: initializes settings
- Service startup → Fan regulation: initializes and regulates
- Service startup → HTTP application: serves application
- Fan regulation → NAS fan hardware: controls fan
- Config manager → TOML settings: loads and saves