Weather-aware irrigation. On your hardware.
Try the demo · Install · Read the guide · Build an integration
LocalSky brings your weather, soil conditions, and irrigation into one app. It decides when each zone needs water, accounts for recent rain and watering, and looks ahead before scheduling the next run. You can see what happened today, what is planned next, and the reason behind each decision.
Run it on your own server, NAS, Raspberry Pi, or Home Assistant OS. Use your existing supported controller and sensors. Home Assistant is optional. There is no LocalSky cloud account or subscription.
The LocalSky guide shares the website's visual style, with light and dark reading themes, search, and mobile navigation.
| I want to… | Go to |
|---|---|
| See the app before installing | Live demo |
| Run LocalSky with Docker | Installation guide |
| Run it on Home Assistant OS | LocalSky app |
| Add LocalSky entities to Home Assistant | Companion integration |
| Check my controller or weather station | Controllers · Weather and sensors |
| Connect an automation, dashboard, or AI tool | Developer guide |
Each zone has its own soil, plants, sprinkler rate, and limits. LocalSky uses reference evapotranspiration and a soil water balance to estimate demand. Rain and completed watering replenish that balance; soil capacity limits how much water can remain available.
The plan carries those conditions forward through the forecast. Expected rain can defer watering when the zone can wait. Restrictions, weather holds, and available watering time also shape the schedule.
Today is a record. Tomorrow is a projection. Open Watering decisions for the inputs and zone reasons. History shows runs, cycles, and recorded skipped mornings. Missing measurements remain unknown.
Read local stations such as Tempest and Ecowitt, use Home Assistant sensors, or connect supported online providers. Choose which source supplies each reading and its backups. The dashboard brings current conditions, forecasts, radar, and history together.
You can use LocalSky for weather alone. Add a controller when you want irrigation.
- Local controllers: OpenSprinkler, supported HTTP controllers, MQTT valves, and Home Assistant service calls.
- Cloud controllers: supported Rachio, Hydrawise, B-hyve, and Rain Bird adapters.
- Weather and soil: local stations and probes, HA passthrough, MQTT, HTTP ingest, and forecast providers.
- Other software: REST, live SSE streams, MQTT publishing, and the Home Assistant integration.
Support and testing vary by adapter. Check the compatibility guide before choosing hardware.
Local operation depends on the connections you choose. LAN sensors and controllers can work without vendor clouds; online forecasts, radar, and cloud controllers need internet access. If required decision data becomes unavailable, automatic watering can be held. Offline behavior →
docker run -d \
--name localsky \
--restart unless-stopped \
-p 8090:8090 \
-v localsky-data:/data \
ghcr.io/silenthooligan/localsky:latestOpen http://localhost:8090 and complete setup. Your configuration and history live in the persistent volume. For Tempest broadcasts and LAN discovery, follow the networking instructions.
LocalSky is in beta. Review zone bindings, application rates, and run limits before enabling automatic watering.
The developer guide covers authentication, live data, forecast windows, and error handling. Download an OpenAPI definition, start with a working client, or give an AI tool a documented set of read operations.
The optional built-in AI advisor explains the engine's decisions. The irrigation engine makes those decisions.
Documentation · Troubleshooting · Report an issue · Contributing · Release notes
Open source under Apache 2.0.

