Hyperlocal weather on your hardware. Smart irrigation when you want it. No cloud, no subscription, no account.
Self-hosted weather dashboarding for your station, plus an optional irrigation engine for when you have sprinklers. Each is useful on its own. Both run from a single Docker image.
Live observations from your Tempest or Ecowitt over the LAN. Multi-source forecast merge with per-field provenance so you know where every value came from. Built-in RainViewer radar (worldwide) + NEXRAD (US) + lightning radar.
No Weather Underground account. No Tempest cloud subscription. No rate limits.
Weather sources →FAO-56 Penman-Monteith reference ET, 13-species grass catalog, 7-class soil catalog (USDA texture classes, the standard used internationally), 17-rule skip ladder. Drive OpenSprinkler directly, ESPHome, or your existing Home Assistant service calls.
Same engine the meteorologists publish, the math you can audit, free forever.
Irrigation engine →Demo mode boots with simulated weather + four irrigation zones so you can explore the UI before connecting anything.
http://localhost:8090. For a real install, drop LOCALSKY_DEMO, mount a config volume, and the first-run wizard at /setup walks you through location, weather sources, controllers, and zones.
Your station data, plus the public forecast, plus radar, in one fast self-hosted dashboard.
Tempest UDP rapid-wind compass, rain gauge, lightning strike rings, pressure, solar irradiance, UV index. Direct from your station over the LAN.
Open-Meteo (global), NWS (US), MET Norway, Tempest. Per-field provenance shows which source provided each value. Hourly, daily, 7-day strip.
RainViewer precipitation playback (worldwide), IEM NEXRAD reflectivity (US), satellite IR, Tempest lightning rings. Layer toggles, legend, timeline scrub.
Optional. Adds a peer-reviewed agronomic engine that turns weather into watering decisions, in plain language, with the math you can audit.
Penman-Monteith reference ETâ‚€ with ASCE-EWRI 2005 + Hargreaves-Samani fallbacks. Hemisphere-aware Kc curves (correct in Sydney and Seattle alike), 13 grass species including Kikuyu, 7 soil textures.
OpenSprinkler direct, Rachio, Hydrawise, B-hyve, ESPHome, MQTT, or Home Assistant service calls. DryRun for demo and tests.
Rain now, rain next 4 hours, probability-weighted 3-day and 7-day rollups, freeze, soil saturation, soil frost, extreme heat (heat-index threshold). Tunable per deployment.
Rachio makes an excellent controller. If you want local control, real soil sensing, and an engine you can read, here is the irrigation-by-irrigation breakdown.
LAN-only operation with a single optional outbound call. No cloud account, no subscription, no lock-in.
Per-zone moisture, calibration, plus EC and temperature trends drive skips and durations, not just a virtual bucket.
Every skip carries a reason; the 7-day verdict and per-zone soil-moisture projection are right on the page.
Everything runs from a single Docker container on your own hardware. Open source, Apache-2.0, free forever.
No account, no telemetry, no upstream upload. Open-Meteo is the only optional outbound call and it can be swapped for NWS (US), MET Norway, OpenWeather, or Pirate Weather.
Ollama auto-detect, llama.cpp, or any OpenAI-compatible endpoint (LM Studio, vLLM, private gateway). Runs locally if you want it. Off by default.
iOS, Android, desktop. VAPID-signed push notifications. First-run wizard walks the empty state to a working install without touching YAML.
Every decision the engine makes is on the page: tonight's plan, the soil probe reading against its target band, and the complete duration math. Run or stop any zone from the same view.
The irrigation tab leads with one sentence: what runs, what skips, and why. Behind it sits the whole story: the 7-day verdict strip, every threshold live-tunable, and the forecast inputs the engine actually used.
Not a shrunken desktop. Mobile gets its own layout: glanceable weather, swipeable forecasts, tap-through zones, and a bottom tab bar that stays out of the way.
A guided wizard takes you from empty container to working install: location, weather sources, controller scan, zones with a species catalog. Optional steps are clearly optional; nothing touches disk until you apply.
LocalSky never needs Home Assistant, but they pair like Music Assistant and HA: one integration, found automatically on your network. HA gets every reading, every zone valve, forecasts, and run / stop / pause services as native entities. LocalSky can use sensors and valves that only HA can reach. The watering brain stays in LocalSky.