Weather station (SaxWeather)
SaxWeather is my iOS/macOS weather app and its public marketing site at weather.saxobroko.com. Repo: github.com/saxobroko/SaxWeather.
Not the same thing as homelab infra monitoring — see Monitoring for SaxoStatus.
What SaxWeather is
SwiftUI app (iOS 17+, macOS 14+, Xcode 15+) that aggregates forecasts from multiple providers into one customisable experience:
| Source | Role |
|---|---|
| Apple WeatherKit | Primary Apple ecosystem data |
| Open-Meteo | Open forecast + rain nowcasts |
| Weather Underground | PWS and WU network |
| OpenWeatherMap | Alternative API |
| Bureau of Meteorology (BOM) | Australian warnings |
| Personal weather stations | Home Ecowitt PWS ISUNBU78 (Sunbury) via Wunderground |
App features (from marketing site + README): themes, home-screen widgets, iCloud theme sync, proximity-filtered BOM warnings, quiet hours, spoken alerts, on-device AI summaries (Apple Intelligence), Lottie animated condition icons, accessibility (Dynamic Type, VoiceOver, reduce motion).
Community translations: Crowdin — see repo TRANSLATING.md.
URLs
| URL | Purpose |
|---|---|
| weather.saxobroko.com | App marketing / feature showcase |
| App Store | Linked from marketing site ("Download on iOS") |
| github.com/saxobroko/SaxWeather | Source |
| Public sites | Hosting vs tunnel-backed homelab |
Home PWS — Sunbury
Physical station at home in Sunbury, VIC. Data uploads to Weather Underground; SaxWeather can pull it via the WU / PWS integration.
| Field | Value |
|---|---|
| Brand | Ecowitt |
| WU PWS ID | ISUNBU78 |
| WU dashboard | wunderground.com/dashboard/pws/ISUNBU78 |
| Location | Home LAN, Sunbury |
Data path
Ecowitt sensors → Ecowitt console/gateway → WU upload → ISUNBU78 on Weather Underground
↓
SaxWeather app (WU / PWS source)
| Layer | Notes |
|---|---|
| Sensors / console | Ecowitt — fill in exact model (e.g. WS90, GW2000) when noted on the unit |
| Upload | Ecowitt → Weather Underground as ISUNBU78 |
| SaxWeather | Select WU / personal station source; station ID ISUNBU78 |
| Marketing site | weather.saxobroko.com — static on Cloudflare (public, no geo block) |
| App backend | No SaxWeather server — WU and other APIs called from device |
When something breaks
- WU dashboard stale — check Ecowitt console/gateway power, Wi‑Fi, and WU upload settings on the Ecowitt side
- SaxWeather shows wrong/missing PWS data — confirm station ID ISUNBU78 in app; WU may lag a few minutes
- Site down vs station down — weather.saxobroko.com is marketing only; live readings are on WU and in the app
Development
| Language | Swift / SwiftUI |
| Last repo activity | Jul 2026 (very active) |
| Stars | 7 on GitHub |
Build and release on Apple platforms; Windows PC is not the compile target — see PC specs.
Why document it
So I remember how PWS + API keys + App Store releases fit together when something breaks or a domain needs DNS/WAF changes. SaxWeather marketing site is intentionally public (not behind block no aus like homelab hosts).
Related
- Projects — SaxWeather in portfolio context
- Public sites
- Network
- Monitoring — SaxoStatus (different product)