v0.1.0~beta4
What's new in beta4
SI unit storage
- All sensor data now stored in SI units (°C, hPa, m/s, mm) internally
- API output unchanged — display conversion happens at the boundary
- DB migration script:
python tools/migrate_davis_to_si.py - 17 regression tests verify identical API output before/after migration
Multi-driver support
- All 6 hardware drivers recovered, SI-refactored, and tested:
- Ecowitt / Fine Offset (TCP LAN API)
- WeatherFlow Tempest (UDP)
- Ambient Weather (HTTP push)
- Davis Vantage Pro/Pro2/Vue (serial)
- Davis WeatherLink IP (TCP)
- Davis WeatherLink Live (HTTP)
- Parametrized driver test framework with JSON fixtures (11 test scenarios)
- SensorSnapshot is now SI — drivers convert at the boundary, everything downstream assumes SI
Driver selection UI
- Setup Wizard: dropdown to select your station type with connection-specific config
- Settings > Station: driver-aware fields (serial port for Davis, IP for network, hub SN for Tempest, listen port for Ambient)
- WeatherLink hardware section hidden for non-Davis drivers
- Logger daemon driver factory expanded for all 7 driver types
Bug fixes
- Fix spray advisor reading SI values as Davis native (showed 24°F instead of 75°F)
- Fix Vantage archive parser: convert to SI
- Fix HighchartsReact import for Vite 8 CJS interop
- Fix pydantic ValidationInfo.default for Python 3.13
Project infrastructure
- CONTRIBUTING.md with AI-assisted contribution policy
- Issue templates (bug report, feature request, hardware testing)
- PR template with testing checklist and AI disclosure
- AGENTS.md for non-Claude AI tools
- Slimmed .env.example to essentials (DB path, host, port)
Test suite
- 208 backend tests (up from 149 in beta3)
- New: SI unit conversions (29), driver fixtures (13), SI regression (17)
Upgrading from beta3
Important: Run the SI migration script after upgrading:
python tools/migrate_davis_to_si.py
This converts existing DB data from Davis native units to SI. Creates a .pre-si-migration backup automatically. Restart both web app and logger after migration.
Download
Note: GitHub converts ~ to . in asset filenames.