Weather apps tell you what is happening 5 miles away. A weather station on your roof tells you what is happening right now, in your garden, with data flowing straight into Home Assistant. Skip the irrigation when it just rained. Close the blinds when UV spikes. Get a frost warning before your plants freeze. This guide covers the best weather stations for HA, how to set them up, and the automations that make them worth every penny.
Jump to a section
Most people rely on weather apps that pull data from stations miles away. That is fine for knowing if you need an umbrella, but it is useless for smart home automations. Your microclimate (the actual conditions at your house) can differ significantly from the nearest official station. A hill, a body of water, or even a row of trees can shift temperature by several degrees and change wind patterns completely.
A weather station feeding data into Home Assistant gives you real, live numbers from your own property. And once that data is in HA, it becomes a trigger for automations that actually make your home smarter.
Your garden, your data. No more relying on a weather station at an airport 10 km away. Get readings that actually match what you see outside.
Trigger actions based on real wind speed, UV index, rainfall, and temperature. Your home responds to actual conditions, not forecasts.
Soil moisture sensors, rain gauges, and evapotranspiration data let you water only when needed. Save water and keep your plants happy.
Home Assistant stores every reading. Track patterns over weeks, months, and years. See how outdoor conditions affect your energy bills.
Not every weather station plays nicely with Home Assistant. Some require cloud APIs that can break without warning, others have native local integrations that just work. Here are the best options, ranked by how well they integrate with HA.
Ecowitt is the gold standard for Home Assistant weather stations. The GW2000 gateway connects directly to HA over your local network, no cloud needed. Start with basic outdoor sensors and expand with soil moisture probes, indoor air quality monitors, lightning detectors, and more. The ecosystem has over 30 sensor types.
Price
$80 to $200+
Connection
Local (Wi-Fi)
HA Integration
Native + HACS
Cloud Required
No
Sensors included (HP2560 bundle): Temperature, humidity, barometric pressure, wind speed and direction, rainfall, UV index, solar radiation. Add soil moisture, PM2.5 air quality, lightning, and leaf wetness sensors separately.
Why it wins: 100% local, huge sensor ecosystem, affordable, active HA community support. The Ecowitt integration (HACS) creates individual sensors for every metric, ready for automations and dashboards.
The Tempest is a single, sleek unit with no moving parts. It uses a haptic rain sensor instead of a tipping bucket and a sonic anemometer instead of spinning cups. Solar powered, no batteries to replace. Looks great on your roof. The downside: data goes through the WeatherFlow cloud before reaching Home Assistant.
Price
$329
Connection
Local UDP + Cloud
HA Integration
Native
Cloud Required
Partial (UDP local)
Sensors: Temperature, humidity, pressure, wind speed and direction, rain, UV, solar radiation, lightning detection, illuminance.
Why pick it: Beautiful design, no maintenance, lightning detection built in. The native HA integration (WeatherFlow) uses local UDP broadcast, so most data arrives without internet. Cloud API provides forecast data and rain correction algorithms.
Ambient Weather stations are popular in the US and offer solid hardware at competitive prices. The WS-2902 is a great entry point, while the WS-5000 uses a separate sensor array for better accuracy. Both integrate with HA through the Ambient Station integration, but it requires a cloud API connection.
Price
$170 to $400
Connection
Cloud API
HA Integration
Native
Cloud Required
Yes
Sensors: Temperature, humidity, pressure, wind speed and direction, rainfall, UV, solar radiation. WS-5000 adds soil moisture and PM2.5 options.
Pro tip: Ambient Weather stations are also compatible with Ecowitt firmware. Some users flash their Ambient consoles to use the Ecowitt local integration, eliminating the cloud dependency entirely.
Build exactly the station you want with an ESP32 board and off the shelf sensors. ESPHome firmware makes each sensor a native Home Assistant entity. No gateway, no cloud, no subscription. The tradeoff: you need to build and weatherproof it yourself, and calibration takes some patience.
Price
$15 to $60
Connection
Local (Wi-Fi)
HA Integration
Native (ESPHome)
Cloud Required
No
Common sensors: BME280 (temp/humidity/pressure), BH1750 (light), VEML6075 (UV), Davis rain gauge, wind speed kit (hall effect anemometer), capacitive soil moisture probes.
Here is how the four main options stack up against each other. Pick based on your priorities: local control, budget, accuracy, or convenience.
| Feature | Ecowitt | Tempest | Ambient | DIY ESP32 |
|---|---|---|---|---|
| Starting Price | $80 | $329 | $170 | $15 |
| Local Control | ✅ Full | ⚠️ Partial | ❌ Cloud | ✅ Full |
| Sensor Expandability | ✅ 30+ types | ❌ Fixed | ⚠️ Limited | ✅ Unlimited |
| Maintenance | Low (batteries) | None (solar) | Low (batteries) | Medium |
| Rain Accuracy | Good | Fair (haptic) | Good | Varies |
| Lightning Detection | Add-on ($30) | ✅ Built-in | ❌ | Add-on ($8) |
| Soil Moisture | ✅ Add-on ($15) | ❌ | ⚠️ WS-5000 only | ✅ Add-on ($3) |
| Setup Difficulty | Easy | Very Easy | Easy | Advanced |
Our recommendation
For most Home Assistant users, the Ecowitt GW2000 with the HP2560 sensor bundle is the sweet spot. It gives you accurate data, works 100% locally, and you can add soil moisture and air quality sensors later. If you want zero maintenance and a beautiful design, the Tempest is hard to beat. If you enjoy building things, the ESP32 route is the most rewarding (and cheapest).
Building your own weather station is one of the most satisfying Home Assistant projects. Here is what you need for a full outdoor station that reports temperature, humidity, pressure, light, UV, wind, and rain.
Essential (under $20)
Full Station (under $60)
This YAML config gets temperature, humidity, pressure, and light readings into Home Assistant:
esphome:
name: weather-station
platform: ESP32
board: esp32dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
i2c:
sda: GPIO21
scl: GPIO22
sensor:
- platform: bme280_i2c
temperature:
name: "Outdoor Temperature"
oversampling: 16x
pressure:
name: "Barometric Pressure"
humidity:
name: "Outdoor Humidity"
address: 0x76
update_interval: 60s
- platform: bh1750
name: "Outdoor Illuminance"
address: 0x23
update_interval: 60s
- platform: pulse_counter
pin: GPIO14
name: "Wind Speed"
unit_of_measurement: "km/h"
filters:
- multiply: 0.24 # calibrate for your anemometer
update_interval: 10s
- platform: pulse_counter
pin: GPIO27
name: "Rainfall"
unit_of_measurement: "mm"
filters:
- multiply: 0.2794 # per tip in mm
update_interval: 60s Flash this to your ESP32 from the ESPHome dashboard in Home Assistant, and the sensors appear automatically. For more on ESPHome projects, check our ESPHome guide.
Place outdoor sensors at least 1.5 meters above ground, away from walls and heat sources. A pole mount in an open area is ideal. The rain gauge needs a clear view of the sky. Wind sensors should be the highest point, ideally above your roofline. Most stations come with a mounting pole and bracket.
Ecowitt: Use the WSView Plus app to connect the GW2000 to your Wi-Fi. Then configure the "Customized" server to point to your Home Assistant IP on port 4199 (the Ecowitt integration listens there).
Tempest: Use the WeatherFlow app to pair the station. HA discovers it automatically via UDP broadcast on your local network.
ESP32: Flash ESPHome, connect to Wi-Fi, and HA auto-discovers it.
Go to Settings > Devices & Services > Add Integration and search for your station type. For Ecowitt, install the HACS version for better entity control. For Tempest, the native WeatherFlow integration works out of the box. For Ambient Weather, you will need your API and app keys from the Ambient Weather dashboard.
Check Developer Tools > States to confirm data is flowing. Compare readings against a known reference (a reliable thermometer, a local weather station). Adjust offsets in the integration settings or ESPHome config if needed. Temperature sensors near walls or pavement will read high, so placement matters more than calibration.
Weather data is most useful when you can see trends. Make sure your sensors are set up as long-term statistics entities in HA (most are by default). This lets you create graphs showing temperature patterns over weeks and months, and correlate outdoor conditions with your energy consumption.
Having weather data in Home Assistant is nice. Using it to make your home react to conditions is the real payoff.
Get a notification when outdoor temperature drops below 2°C so you can protect plants or pipes.
automation:
- alias: "Frost Warning"
trigger:
- platform: numeric_state
entity_id: sensor.outdoor_temperature
below: 2
condition:
- condition: time
after: "18:00:00"
before: "09:00:00"
action:
- service: notify.mobile_app
data:
title: "🥶 Frost Warning"
message: >
Outdoor temperature is {{states('sensor.outdoor_temperature')}}°C.
Cover tender plants and check exposed pipes.Cancel scheduled watering if your rain gauge measured more than 3mm in the past 24 hours.
automation:
- alias: "Skip Irrigation After Rain"
trigger:
- platform: time
at: "06:00:00"
condition:
- condition: numeric_state
entity_id: sensor.rain_daily
above: 3
action:
- service: switch.turn_off
entity_id: switch.irrigation_zone_1
- service: notify.mobile_app
data:
message: >
Skipping irrigation. {{states('sensor.rain_daily')}}mm
of rain recorded in the last 24 hours.Protect furniture from sun damage and keep rooms cool by closing south-facing blinds when UV gets intense.
automation:
- alias: "Close Blinds High UV"
trigger:
- platform: numeric_state
entity_id: sensor.outdoor_uv_index
above: 7
condition:
- condition: state
entity_id: cover.south_blinds
state: "open"
action:
- service: cover.close_cover
entity_id: cover.south_blindsRetract awnings or pergola covers when wind speed exceeds a safe threshold to prevent damage.
automation:
- alias: "Retract Awning High Wind"
trigger:
- platform: numeric_state
entity_id: sensor.wind_speed
above: 35 # km/h
action:
- service: cover.close_cover
entity_id: cover.patio_awning
- service: notify.mobile_app
data:
message: >
Awning retracted. Wind speed at
{{states('sensor.wind_speed')}} km/h.Preheat your home when outdoor temperature is dropping fast, instead of waiting until the house gets cold.
automation:
- alias: "Preheat on Rapid Temp Drop"
trigger:
- platform: template
value_template: >
{{states('sensor.outdoor_temperature') | float
- state_attr('sensor.outdoor_temperature',
'last_hour_average') | float(0) < -3}}
action:
- service: climate.set_temperature
data:
entity_id: climate.thermostat
temperature: 21
- service: notify.mobile_app
data:
message: "Preheating: outdoor temp dropping fast."For more automation ideas, check our 30 best Home Assistant automations and blueprints guide.
A dedicated weather dashboard card is one of the most satisfying things in Home Assistant. Here are the best cards to use:
The built-in weather card shows current conditions and a 5-day forecast. Pair it with the Forecast Solar integration for solar production predictions alongside your weather data.
Show temperature, humidity, and pressure trends over time. Stack multiple sensors in one graph with different colors. Great for spotting patterns over days and weeks.
A compass-style visualization showing wind speed and direction distribution. Useful if wind direction affects your heating, awnings, or outdoor activities.
Clean, minimal sensor chips that fit perfectly on a weather panel. Show outdoor temp, humidity, wind, and rain in compact chips that update in real time.
For more dashboard inspiration, see our dashboard examples guide.
A weather station is only as good as where you put it. Bad placement is the number one reason people get inaccurate readings.
Starter
$15 to $20
ESP32 + BME280
Best for: tinkerers who want to start small
Recommended
$100 to $150
Ecowitt GW2000 + HP2560
Best for: most Home Assistant users
Premium
$329
WeatherFlow Tempest
Best for: set it and forget it types
The Ecowitt GW2000 with HP2560 sensors is the best overall. It works 100% locally, supports 30+ sensor types, and has excellent HA integration through HACS. For an all-in-one with zero maintenance, the WeatherFlow Tempest is the premium pick. For the cheapest option, build your own with ESP32 and ESPHome.
Yes. An ESP32 board with ESPHome firmware and a BME280 sensor gives you temperature, humidity, and barometric pressure for under $15. Add a rain gauge, anemometer, and UV sensor to build a full station for around $40 to $60. Everything connects locally to HA over Wi-Fi.
Ecowitt and DIY ESP32 stations work 100% locally with no internet. The WeatherFlow Tempest sends most data via local UDP broadcast, so basic readings work offline, but forecast and rain correction features need cloud access. Ambient Weather requires internet for the API integration.
Weather data powers some of the most practical automations: frost alerts, skip irrigation after rain, close blinds on high UV, retract awnings in high wind, preheat based on outdoor temperature drops, trigger dehumidifiers, send storm warnings, and correlate outdoor conditions with energy usage. See our automations guide for more ideas.
A well-placed consumer station is more accurate for your specific location than any weather service, which may pull data from a station miles away. Typical accuracy: temperature within 0.5°C, humidity within 3 to 5%, wind speed within 10%, and rainfall within 10%. Proper placement matters more than the brand you choose.
Yes. The Ecowitt GW2000 gateway can send data directly to Home Assistant over your local network. You configure it to push data to your HA IP address using the "Customized Server" option in the WSView Plus app. No Ecowitt account or cloud connection needed.
Use your local station for current conditions and triggers, then add the Forecast Solar or OpenWeatherMap integration for predictions. This gives you the best of both worlds: accurate real-time data from your garden plus forecast data for planning automations ahead of time. Template sensors can combine both sources into a single dashboard view.
Check if your existing smart home devices are compatible with Home Assistant. Our free scan takes 30 seconds and shows you exactly what works.