Skip to content

Weather

Particle Man creates a native Home Assistant weather entity using the Google Weather API, along with several extra sensors for data that doesn't fit the standard weather card.


The Weather Entity

The weather entity appears as Particle Man Weather in your weather cards and automations. It works with all native HA weather cards and supports the weather.get_forecasts action.

Current Conditions

Property Source
Condition Mapped from Google's weather condition type
Temperature Current air temperature
Feels Like Apparent temperature accounting for humidity and wind
Dew Point Temperature at which air becomes saturated
Humidity Relative humidity (%)
Wind Speed Speed at standard anemometer height
Wind Direction Bearing in degrees
Wind Gust Maximum gust speed
Pressure Mean sea level pressure (hPa)
Visibility Horizontal visibility distance
UV Index Current UV index
Cloud Cover Percentage of sky covered by clouds
Ozone Ozone concentration in ppb (from Air Quality API; None when Air Quality is disabled)

Forecast Types

The entity exposes three forecast types accessible via weather.get_forecasts:

Type Coverage Entries
hourly Configurable — 24, 48, 72, 120 (default) or 240 hours One entry per hour
daily Next 5 days 5 entries, daytime conditions
twice_daily Next 5 days 10 entries (day + night per day)

Hourly forecast length is set in Configure → Weather Options. Google returns at most 24 hours per API call, so each additional 24 hours costs one more call per refresh — the option lists the cost of each choice. Longer forecasts are automatically refreshed less often to stay inside your monthly limit.

Each forecast entry includes: condition, temperature, apparent temperature, precipitation probability, precipitation amount, wind speed/bearing/gust, humidity, pressure, cloud coverage, and UV index. Daily and twice-daily entries also include a low temperature. Daily precipitation is the 24-hour total (daytime + overnight). Hourly entries additionally include dew point. Hourly entries are always filtered to start at the current hour — past hours are automatically excluded, so the list stays current even if data was fetched before quiet hours started.

Condition Mapping

Google's weather conditions are mapped to Home Assistant standard conditions. (Google weather condition types)

Google Condition HA Condition
CLEAR (daytime) sunny
CLEAR (nighttime) clear-night
MOSTLY_CLEAR, PARTLY_CLOUDY partlycloudy
MOSTLY_CLOUDY, CLOUDY, OVERCAST cloudy
DRIZZLE, LIGHT_RAIN, RAIN, RAIN_SHOWERS rainy
HEAVY_RAIN, HEAVY_RAIN_SHOWERS pouring
THUNDERSTORM, THUNDERSTORM_WITH_RAIN, SCATTERED_THUNDERSTORMS lightning-rainy
LIGHTNING lightning
LIGHT_SNOW, SNOW, HEAVY_SNOW, SNOW_SHOWERS, BLIZZARD snowy
SLEET, HAIL, FREEZING_RAIN, FREEZING_DRIZZLE, ICE_PELLETS, WINTRY_MIX hail
FOG, HAZE, SMOKE fog
WINDY, BREEZY windy
DUST, SAND, TORNADO, HURRICANE, TROPICAL_STORM exceptional

Extra Weather Sensors

These sensors expose weather data that doesn't fit into the standard WeatherEntity schema.

Thunderstorm Probability (%)

The probability of a thunderstorm occurring in the current hour. Useful for automations that need to respond before a storm arrives rather than after conditions worsen.

Heat Index (°)

The "feels like" temperature accounting for high humidity in warm conditions. Only meaningful when temperature and humidity are both elevated; Google returns null otherwise.

Wind Chill (°)

The "feels like" temperature accounting for wind in cold conditions. Only meaningful in cold weather; Google returns null otherwise.

UV Index Category

The current UV index expressed as a plain-language WHO category: Low, Moderate, High, Very High, or Extreme. The raw UV index value is available as the uv_index attribute. The numeric UV index is also available directly on the weather entity.


Weather Alert Sensors

When weather alerts are enabled (Configure → Weather Options), Particle Man creates three sensors:

Alert Count

State: The integer count of currently active warnings (0 = no alerts).

Attributes:

Attribute Description
alerts Full list of active alerts — each entry includes title, severity, event type, area, start/expiration time, description, and instructions
highest_severity Worst severity among active alerts: MINOR, MODERATE, SEVERE, or EXTREME
active_event_types Sorted unique list of active event type codes (e.g. FLOOD_WATCH, TORNADO_WARNING)

Alert Highest Severity

State: The worst severity level across all active alerts: MINOR, MODERATE, SEVERE, or EXTREME. None when no alerts are active.

Use directly in automations to trigger on severity level without reading attributes.

Alert Event Types

State: Comma-separated sorted list of active alert type codes, e.g. FLOOD_WATCH, TORNADO_WARNING. None when no alerts are active.

Note

Weather alerts are only available in regions covered by Google's public alerts service, primarily the US and some international regions. (Weather API coverage)

A count of 0 with None severity and event types means no alerts are currently active — the sensors are working normally.


Units

The weather entity and extra sensors use the units selected in Configure → Weather Options:

Setting Temperature Wind Precipitation Visibility
Metric °C km/h mm km
Imperial °F mph in mi

Home Assistant can convert between units for display purposes independently of the units stored in the sensor.


Minute Forecast (Nowcast)

Experimental

Google classifies the minute forecast as Experimental (pre-GA) — its lowest stability tier. It is absent from the REST reference, the coverage table and the pricing list, so its availability and billing are both undocumented. Particle Man therefore treats it as billed and leaves it off by default. Field names may change without notice.

Enable it in Configure → Weather Options. It adds a six-hour precipitation nowcast refreshed every 15 minutes, at a cost of roughly 2,200 calls per month per location — about a quarter of the free tier.

Coverage appears limited to the US and Europe. Where Google has no nowcast for your location the API returns an error; Particle Man disables the feature for that location and raises a repair notice rather than retrying. It re-arms on the next reload, so a later Google rollout is picked up automatically. No other weather data is affected.

Nowcast sensors

Sensor State
Minutes Until Precipitation Minutes until precipitation begins; 0 while it is falling; unknown if none is expected in the window
Precipitation Ends In Minutes until the current precipitation stops; unknown when nothing is falling
Precipitation Intensity NO_INTENSITY, LIGHT, MODERATE or HEAVY right now
Precipitation Type RAIN, SNOW, HAIL or NONE right now — the only place hail surfaces distinctly

These update every minute, independently of the API refresh, so the countdown is always current rather than jumping once per refresh cycle.

Minutes Until Precipitation attributes:

Attribute Description
is_precipitating Whether precipitation is falling now
starts_at / ends_at Bounds of the relevant precipitation run
type / types Type of the run; types lists every type if it changes mid-run (e.g. rain turning to snow)
max_intensity / max_probability Worst intensity and highest probability across the run
runs Every distinct precipitation block in the window — usually 0–3
segments The full normalized segment list
horizon_start / horizon_end Bounds of the forecast window
stale True once the window has elapsed

A segment counts as precipitation only when its type is not NONE, its intensity is not NO_INTENSITY, and its probability is at least 50% — without that threshold the sensor would read "raining" almost permanently in a drizzly climate.

get_minute_forecast action

The weather entity exposes particle_man.get_minute_forecast, returning the next hour in the same shape as Home Assistant's OpenWeatherMap integration, so nowcast-capable dashboard cards work against it:

action: particle_man.get_minute_forecast
target:
  entity_id: weather.home_weather
{
  "weather.home_weather": {
    "forecast": [
      {
        "datetime": "2026-08-12T14:22:00+00:00",
        "precipitation": 6.0,
        "type": "RAIN",
        "probability": 82,
        "intensity": "LIGHT",
        "end": "2026-08-12T14:24:00+00:00"
      }
    ]
  }
}

precipitation is a rate in mm/h. Dry stretches report 0 rather than being omitted, so consumers draw a dry spell instead of a gap.


Forecast Sensors

Home Assistant removed the forecast attribute from weather entities in 2024.4, so templates can no longer read forecasts directly from weather.*. Particle Man provides Hourly Forecast and Daily Forecast sensors whose forecast attribute holds the full list, matching how the air quality and pollen sensors already work.

Both are disabled by default — enable them in the entity settings if you template against forecast data. The arrays are excluded from the recorder, so they cost nothing to store no matter how long your history retention is.


API Calls

Weather data comes from up to five Google Weather API endpoints, each refreshing on its own cadence rather than all together:

Endpoint Purpose Default cadence
GET /currentConditions Current state, extra sensors 15 min
GET /forecast/hours Hourly forecast 60 min
GET /forecast/days Daily + twice-daily forecast 180 min
GET /publicAlerts Active weather alerts (if enabled) 30 min
GET /forecast/minutes Precipitation nowcast (if enabled) 15 min

At one location with default settings that projects to about 6,324 calls per month against Google's 10,000 free tier — or 8,556 with minutecast enabled. See Reference — How data updates for the full budget model.