Files
rtu_v5/.planning/REQUIREMENTS.md

157 lines
5.2 KiB
Markdown

# Requirements: TCKRTUIYO - Rainfall Station RTU Web Interface
**Defined:** 2026-03-12
**Core Value:** Real-time rainfall and environmental sensor monitoring with automatic data transmission to myvscada server
## v1 Requirements
Requirements for initial release. Each maps to roadmap phases.
### Dashboard
- [x] **DASH-01**: Display current rainfall readings (Today, Hourly, MAR Acc, Yearly Acc)
- [x] **DASH-02**: Display solar voltage reading
- [x] **DASH-03**: Display battery voltage with status indicator (HIGH/NORMAL/LOW)
- [x] **DASH-04**: Display current date and time (HH:MM:SS DD-MM-YYYY)
- [x] **DASH-05**: Display station ID
- [x] **DASH-06**: Display communication status (signal strength, connection status)
- [x] **DASH-07**: Display software version
- [x] **DASH-08**: Real-time updates (auto-refresh or Socket.IO)
- [x] **DASH-09**: Last updated timestamp indicator
### User Interface
- [x] **UI-01**: Touch-optimized interface for 7" 1024x600 display
- [x] **UI-02**: Large touch targets (minimum 48px)
- [x] **UI-03**: Main menu navigation
- [ ] **UI-04**: Responsive layout for remote HD access (1920x1080 on port 9090)
- [ ] **UI-05**: Login/logout functionality
### Settings
- [x] **SETT-01**: Station Info display and edit
- [x] **SETT-02**: Date/Time setting
- [x] **SETT-03**: Mobile network settings view/edit
- [x] **SETT-04**: ADC channel configuration (4 channels, types: 4-20mA, 0-10vDC)
- [x] **SETT-05**: Rainfall sensor settings (ID, thresholds)
- [x] **SETT-06**: Water level threshold settings
- [x] **SETT-07**: EVAP settings
- [x] **SETT-08**: Network settings (IP, subnet, gateway, DNS, MAC)
- [ ] **SETT-09**: Protocol settings (FTP, SCP, SFTP, WebDAV server config)
### Calibration
- [x] **CAL-01**: View live ADC readings (4 channels)
- [x] **CAL-02**: View current sensor readings with units
- [x] **CAL-03**: Reset rainfall counters
- [x] **CAL-04**: Display channel type, ADC value, datum, reading
### File Management
- [ ] **FILE-01**: List CSV files in flash memory
- [ ] **FILE-02**: View CSV file contents
- [ ] **FILE-03**: Navigate file list (scroll up/down)
- [ ] **FILE-04**: Delete CSV files
- [ ] **FILE-05**: Generate tidEDA formatted files
### Backend
- [x] **BACK-01**: Flask backend running on Raspberry Pi
- [x] **BACK-02**: Sensor data API endpoints
- [x] **BACK-03**: Settings API (read/write)
- [ ] **BACK-04**: File management API
## v2 Requirements
Deferred to future release. Tracked but not in current roadmap.
### Historical Data
- [ ] **HIST-01**: Historical rainfall graphs (daily, weekly, monthly)
- [ ] **HIST-02**: Historical voltage graphs
- [ ] **HIST-03**: Date range selection for historical view
- [ ] **HIST-04**: Export data to CSV
### Alerts & Notifications
- [ ] **ALERT-01**: Configurable rainfall threshold alerts (Warning, Danger)
- [ ] **ALERT-02**: Configurable water level threshold alerts
- [ ] **ALERT-03**: Visual indicators for alert states
- [ ] **ALERT-04**: SMS notification on threshold breach
### Advanced Network
- [ ] **NETW-01**: Automatic retry on transmission failure
- [ ] **NETW-02**: Transmission queue status display
- [ ] **NETW-03**: Manual trigger for immediate transmission
- [ ] **NETW-04**: Transmission log/history
### GPS Integration
- [ ] **GPS-01**: Display GPS coordinates
- [ ] **GPS-02**: Manual coordinate entry (backup to USB GPS)
## Out of Scope
Explicitly excluded. Documented to prevent scope creep.
| Feature | Reason |
|---------|--------|
| Third-party cloud integration | Direct server connection only per requirements |
| Mobile native apps | Web-first approach |
| Multi-station dashboards | Server handles aggregation |
| Real-time chat | Outside domain |
| OAuth authentication | Simple session-based auth sufficient for local device |
## Traceability
Which phases cover which requirements. Updated during roadmap creation.
| Requirement | Phase | Status |
|-------------|-------|--------|
| DASH-01 | Phase 1 | Complete |
| DASH-02 | Phase 1 | Complete |
| DASH-03 | Phase 1 | Complete |
| DASH-04 | Phase 1 | Complete |
| DASH-05 | Phase 1 | Complete |
| DASH-06 | Phase 1 | Complete |
| DASH-07 | Phase 1 | Complete |
| DASH-08 | Phase 1 | Complete |
| DASH-09 | Phase 1 | Complete |
| UI-01 | Phase 1 | Complete |
| UI-02 | Phase 1 | Complete |
| UI-03 | Phase 1 | Complete |
| UI-04 | Phase 4 | Pending |
| UI-05 | Phase 4 | Pending |
| SETT-01 | Phase 1 | Complete |
| SETT-02 | Phase 1 | Complete |
| SETT-03 | Phase 1 | Complete |
| SETT-04 | Phase 1 | Complete |
| SETT-05 | Phase 1 | Complete |
| SETT-06 | Phase 1 | Complete |
| SETT-07 | Phase 1 | Complete |
| SETT-08 | Phase 1 | Complete |
| SETT-09 | Phase 3 | Pending |
| CAL-01 | Phase 1 | Complete |
| CAL-02 | Phase 1 | Complete |
| CAL-03 | Phase 1 | Complete |
| CAL-04 | Phase 1 | Complete |
| FILE-01 | Phase 2 | Pending |
| FILE-02 | Phase 2 | Pending |
| FILE-03 | Phase 2 | Pending |
| FILE-04 | Phase 2 | Pending |
| FILE-05 | Phase 2 | Pending |
| BACK-01 | Phase 1 | Complete |
| BACK-02 | Phase 1 | Complete |
| BACK-03 | Phase 1 | Complete |
| BACK-04 | Phase 2 | Pending |
**Coverage:**
- v1 requirements: 41 total
- Mapped to phases: 41
- Unmapped: 0 ✓
---
*Requirements defined: 2026-03-12*
*Last updated: 2026-03-12 after initial definition*