176 lines
10 KiB
Markdown
176 lines
10 KiB
Markdown
# Feature Research
|
|
|
|
**Domain:** Rainfall Monitoring Station RTU Web Interface
|
|
**Researched:** 2026-03-12
|
|
**Confidence:** HIGH
|
|
|
|
## Feature Landscape
|
|
|
|
### Table Stakes (Users Expect These)
|
|
|
|
Features users assume exist. Missing these = product feels incomplete.
|
|
|
|
| Feature | Why Expected | Complexity | Notes |
|
|
|---------|--------------|------------|-------|
|
|
| **Real-time Rainfall Display** | Core function — users must see current rainfall values (Today, Hourly, MAR Acc, Yearly Acc) | LOW | Data directly from tipping bucket sensors; no transformation needed |
|
|
| **Voltage Monitoring** | Critical for remote station operation — battery and solar voltage indicate system health | LOW | ADC readings; critical for stations without grid power |
|
|
| **Date/Time Display** | Timestamp is essential for data interpretation and troubleshooting | LOW | NTP sync or manual configuration; GPS time if available |
|
|
| **Station Identification** | Operators manage multiple stations; must identify which unit they're viewing | LOW | Station ID displayed prominently |
|
|
| **Communication Status** | Operators must know if data is reaching the server | LOW | Signal strength (RSSI), connection status indicators |
|
|
| **Main Menu Navigation** | Access to settings, calibration, and file management is standard RTU behavior | MEDIUM | Must support 7" touchscreen (large touch targets) |
|
|
| **Settings Configuration** | RTUs require configurable parameters (thresholds, network, sensor types) | MEDIUM | Submenus for each category; form-based input |
|
|
| **Calibration View** | Technicians need to verify sensor readings during maintenance | LOW | Read-only display of live sensor values |
|
|
| **File Management** | Local CSV storage requires navigation, viewing, and deletion | MEDIUM | Must handle flash memory on embedded device |
|
|
|
|
### Differentiators (Competitive Advantage)
|
|
|
|
Features that set the product apart. Not required, but valuable.
|
|
|
|
| Feature | Value Proposition | Complexity | Notes |
|
|
|---------|-------------------|------------|-------|
|
|
| **Historical Data Graphs** | Visual trends help operators anticipate conditions — rainfall patterns, battery drain cycles | MEDIUM | Chart.js can render on Pi Zero 2W; keep data points limited for performance |
|
|
| **Configurable Alarm Thresholds** | Users can set custom alerts for danger/warning levels; visual indicators for threshold breach | MEDIUM | Persist to local config file; apply on dashboard display |
|
|
| **Touch-Optimized Interface** | 7" capacitive touchscreen requires large buttons (min 48px), clear visual hierarchy | LOW | Bootstrap provides responsive components; custom CSS for kiosk sizing |
|
|
| **Dual-Mode Display** | Same app serves local kiosk (1024x600) and remote HD access — reduces maintenance | MEDIUM | Use CSS media queries to adapt layout; single codebase |
|
|
| **Real-time Data Updates** | Socket.IO push for live sensor values without page refresh | MEDIUM | Already in stack research; critical for professional appearance |
|
|
| **Visual Threshold Indicators** | Color-coded rainfall/level status (green/yellow/red) provides at-a-glance awareness | LOW | Simple CSS classes based on threshold comparison |
|
|
| **CSV Transmission Status** | Users want to know if/when data was successfully sent to server | LOW | Log transmission attempts; display last successful sync time |
|
|
|
|
### Anti-Features (Commonly Requested, Often Problematic)
|
|
|
|
Features that seem good but create problems.
|
|
|
|
| Feature | Why Requested | Why Problematic | Alternative |
|
|
|---------|---------------|-----------------|-------------|
|
|
| **Third-party Cloud Integration** | Users may want Ambient Weather Network, Weather Underground, etc. | Adds complexity, requires accounts, breaks direct server model | Stick to direct myvscada server; provide CSV export if needed |
|
|
| **Mobile Native App** | "Users want an app" | Development/maintenance overhead for iOS/Android; web interface is accessible | Responsive web works on mobile browsers |
|
|
| **Real-time Chat/Notifications** | Operators want to communicate | Not the purpose of monitoring station; adds infrastructure | Email/SMS alerts via server-side (future consideration) |
|
|
| **Multi-station Dashboard** | View all stations from one screen | Requires server-side aggregation; out of RTU scope | Server-side dashboard aggregates; RTU shows local only |
|
|
| **Cloud Data Storage** | "Store data in the cloud" | RTU is embedded; limited storage is intentional | Direct CSV transmission to myvscada server |
|
|
| **Video Streaming** | Some systems include camera | Heavy bandwidth, storage; not in original spec | Out of scope |
|
|
| **User Authentication (local)** | "Secure the interface" | Adds complexity; kiosk mode typically runs without auth | Remote interface can have auth (port 9090); local is read-only by default |
|
|
|
|
## Feature Dependencies
|
|
|
|
```
|
|
Dashboard Display
|
|
└──requires──> Real-time Data Updates (Socket.IO)
|
|
└──requires──> Backend Sensor Reading
|
|
|
|
Settings Menus
|
|
└──requires──> Configuration Persistence (local config file)
|
|
└──requires──> File System Access
|
|
|
|
Calibration View
|
|
└──requires──> Live Sensor Reading
|
|
|
|
File Management
|
|
└──requires──> CSV Data Storage
|
|
└──requires──> Sensor Data Collection
|
|
|
|
Threshold Alerts
|
|
└──requires──> Configurable Settings
|
|
└──enhances──> Dashboard Display
|
|
|
|
Historical Graphs
|
|
└──requires──> CSV Data Storage
|
|
└──enhances──> Dashboard Display
|
|
```
|
|
|
|
### Dependency Notes
|
|
|
|
- **Dashboard requires real-time updates:** The UI must receive sensor readings via Socket.IO; this requires Flask-SocketIO backend infrastructure
|
|
- **Historical graphs require CSV storage:** Can't display trends without historical data; implies Phase 2 (CSV workflow) must precede graphs
|
|
- **Settings require persistence:** All configuration must survive reboot; store in JSON/text config file on local filesystem
|
|
- **Threshold alerts enhance dashboard:** Visual indicators (color-coded values) depend on both the threshold configuration AND the dashboard display
|
|
|
|
## MVP Definition
|
|
|
|
### Launch With (v1)
|
|
|
|
Minimum viable product — what's needed to validate the concept.
|
|
|
|
- [x] **Dashboard with rainfall readings** — Core value: users see Today, Hourly, MAR Acc, Yearly Acc
|
|
- [x] **Voltage monitoring display** — Battery and solar; critical for remote operation
|
|
- [x] **Date/time and station ID** — Basic identification
|
|
- [x] **Communication status** — Signal strength, connection state
|
|
- [x] **Main menu navigation** — Access to settings submenus
|
|
- [x] **Real-time updates (Socket.IO)** — Live data without refresh
|
|
|
|
### Add After Validation (v1.x)
|
|
|
|
Features to add once core is working.
|
|
|
|
- [ ] **Historical data graphs** — Chart.js visualization of rainfall trends
|
|
- [ ] **Configurable alarm thresholds** — User-settable danger/warning levels
|
|
- [ ] **Visual threshold indicators** — Color-coded status on dashboard
|
|
- [ ] **File management UI** — Navigate/delete CSV files
|
|
- [ ] **CSV transmission status** — Show last sync time
|
|
|
|
### Future Consideration (v2+)
|
|
|
|
Features to defer until product-market fit is established.
|
|
|
|
- [ ] **Multi-day/hour trend analysis** — Extended historical view
|
|
- [ ] **Data export functionality** — Download CSV from browser
|
|
- [ ] **Remote authentication** — Login for port 9090 interface
|
|
- [ ] **SMS/email alerts** — Server-side notification system
|
|
|
|
## Feature Prioritization Matrix
|
|
|
|
| Feature | User Value | Implementation Cost | Priority |
|
|
|---------|------------|---------------------|----------|
|
|
| Dashboard rainfall display | HIGH | LOW | P1 |
|
|
| Voltage monitoring | HIGH | LOW | P1 |
|
|
| Date/time & station ID | HIGH | LOW | P1 |
|
|
| Communication status | HIGH | LOW | P1 |
|
|
| Main menu navigation | HIGH | MEDIUM | P1 |
|
|
| Real-time Socket.IO updates | HIGH | MEDIUM | P1 |
|
|
| Settings configuration | MEDIUM | MEDIUM | P1 |
|
|
| Calibration view | MEDIUM | LOW | P1 |
|
|
| File management | MEDIUM | MEDIUM | P2 |
|
|
| Historical graphs | MEDIUM | MEDIUM | P2 |
|
|
| Threshold indicators | MEDIUM | LOW | P2 |
|
|
| Alarm threshold config | MEDIUM | MEDIUM | P2 |
|
|
| Transmission status | LOW | LOW | P2 |
|
|
| Touch-optimized UI | HIGH | LOW | P1 |
|
|
| Dual-mode display | MEDIUM | MEDIUM | P2 |
|
|
|
|
**Priority key:**
|
|
- P1: Must have for launch
|
|
- P2: Should have, add when possible
|
|
- P3: Nice to have, future consideration
|
|
|
|
## Competitor Feature Analysis
|
|
|
|
| Feature | Ambient Weather Network | Weather Display | Davis WeatherLink | Our Approach |
|
|
|---------|------------------------|-----------------|-------------------|--------------|
|
|
| Real-time dashboard | YES | YES | YES | P1 — Core |
|
|
| Historical graphs | YES | YES | YES | P2 — Post-launch |
|
|
| Alarm thresholds | YES (cloud) | YES (local) | YES (cloud) | P2 — Configurable |
|
|
| Touch interface | Responsive web | Windows app | Native app | P1 — Web-based |
|
|
| Data export | Via API | YES | YES | P2 — Future |
|
|
| Local storage | Cloud only | Local + cloud | Cloud + local | P1 — Local CSV |
|
|
| Multi-station | YES | Via addons | YES | Server handles |
|
|
|
|
**Analysis Notes:**
|
|
- Consumer solutions (Ambient, Davis) lean heavily on cloud — we differ by direct server transmission
|
|
- Professional solutions (Weather Display, AQUARIUS) offer local storage + sophisticated alarms
|
|
- Our differentiator: lightweight embedded design with direct myvscada integration
|
|
|
|
## Sources
|
|
|
|
- **Rainwise/Ambient Weather Network** — Consumer weather station dashboard patterns
|
|
- **Weather Display** — Professional weather station software with extensive local features
|
|
- **KISTERS datasphere** — Enterprise hydrological monitoring platform
|
|
- **Aquatic Informatics AQUARIUS** — Professional water data management
|
|
- **Hydro-Logic Timeview** — Flood monitoring with automated alarms
|
|
- **California Data Exchange Center (CDEC)** — Government hydrological monitoring
|
|
- **Perry Weather** — Modern weather monitoring with threshold alerts
|
|
- **Project context (THE_IDEA.md)** — Existing RTU feature set
|
|
- **Project context (PROJECT.md)** — Core value and constraints
|
|
|
|
---
|
|
*Feature research for: Rainfall Monitoring Station RTU Web Interface*
|
|
*Researched: 2026-03-12*
|