Hyperlocal weather on your hardware. Smart irrigation when you want it. No required cloud account or subscription.
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.
Local station readings do not require a cloud account or subscription.
Weather sources →FAO-56 Penman-Monteith reference ET, 13-species grass catalog, 7-class soil catalog (USDA texture classes, the standard used internationally), 24-rule skip ladder. Drive OpenSprinkler directly, ESPHome, or your existing Home Assistant service calls.
Published weather and soil methods, with inputs and decisions you can inspect.
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 required cloud account or telemetry. Internet requests depend on the forecast, map, controller, notification and advisor services you enable. Local station readings and history stay on your server.
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.
See each zone's status and water need, open its plan and evidence, or run and stop it from the same view. Missing measurements remain unknown.
See what happened today and what is projected for tomorrow. Open Watering decisions for the plan, zone reasons, recent rain, delivered watering and forecast evidence.
Glanceable weather, forecasts, zone controls and a bottom tab bar for quick navigation.
A guided wizard takes you from empty container to working install: location, weather sources, controller scan, zones with a species catalog. Optional steps are marked, and source changes show when a restart is required.
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.