# 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*