Homebridge plugin that exposes pollen levels as HomeKit air quality sensors using the Google Pollen API.
- Air quality sensors — Pollen index mapped to HomeKit's 5-level air quality scale (Excellent, Good, Fair, Inferior, Poor)
- Per-category sensors — Optionally add separate sensors for tree, grass, and weed pollen
- No runtime dependencies — Uses Node.js 20+ built-in
fetch
- Node.js 20.0.0 or later
- Homebridge 1.8.0 or later (including Homebridge 2.x)
Search for homebridge-pollen in the Homebridge UI plugin search and install it.
npm install -g homebridge-pollenThis plugin requires a Google Maps API key with the Pollen API enabled.
- Go to the Google Cloud Console
- Create a new project (or select an existing one)
- Enable the Pollen API under APIs & Services > Library
- Create an API key under APIs & Services > Credentials
- Set up a billing account if you haven't already (required even for the free tier)
The free tier allows 5,000 requests per month. With the default 60-minute poll interval, the plugin uses approximately 720 calls per month.
You can configure the plugin using the Homebridge UI or by editing your config.json directly.
{
"platforms": [
{
"platform": "HomebridgePollen",
"apiKey": "your-google-maps-api-key",
"location": "10001"
}
]
}| Option | Required | Default | Description |
|---|---|---|---|
platform |
Yes | — | Must be HomebridgePollen |
apiKey |
Yes | — | Your Google Maps API key with the Pollen API enabled |
location |
Yes | — | Zip code or place name. Geocoded to coordinates on first startup and cached. |
pollInterval |
No | 60 |
How often to fetch pollen data, in minutes (minimum 15) |
enableCategorySensors |
No | false |
Add 3 additional sensors for tree, grass, and weed pollen |
The plugin creates an air quality sensor that displays the overall pollen level. The Google Pollen API provides a Universal Pollen Index (UPI) from 0–5, which maps to HomeKit's air quality scale:
| UPI | Category | Air quality |
|---|---|---|
| 0 | None | Excellent |
| 1 | Very Low | Excellent |
| 2 | Low | Good |
| 3 | Moderate | Fair |
| 4 | High | Inferior |
| 5 | Very High | Poor |
The overall sensor displays the worst (highest) pollen index across tree, grass, and weed categories.
The plugin accepts a place name or zip code in the location config field. On first startup, it geocodes this to latitude/longitude coordinates using Nominatim (OpenStreetMap) and caches the result. Subsequent startups use the cached coordinates unless the location changes.
When enableCategorySensors is enabled, you get 3 additional air quality sensors:
- Tree Pollen — Air quality based on tree pollen index
- Grass Pollen — Air quality based on grass pollen index
- Weed Pollen — Air quality based on weed pollen index