Bill 2 weeks

Your station can send every bird detection to Home Assistant (or any system that speaks MQTT) the moment it happens. That lets you build automations around what your station hears — flash a light when a Pileated Woodpecker shows up, keep a running tally on a wall dashboard, or have a smart speaker announce a rare visitor.

This is completely optional and off by default. A station sends nothing until you give it a broker address, and turning it on never affects detection, recording, or your dashboard — if the broker is unreachable, the station just carries on and tries again later.

What you'll need
  • An MQTT broker on your network. If you run Home Assistant, the one-click Mosquitto broker add-on is the usual choice.
  • The broker's address (an IP like 192.168.1.10 or a hostname), and a username / password if it requires one.
  • The station on the latest software, so it has the MQTT option (Update now first if a version banner shows one).
Turn it on for a station

MQTT is enabled through Remote tuning (the same per-station settings panel used elsewhere — see that help section). Add these overrides:

SettingExampleWhat it's forBIRDNET_MQTT_HOST192.168.1.10Your broker's address. This one setting is what switches MQTT on — leave it unset and nothing is sent.BIRDNET_MQTT_PORT1883Broker port. 1883 is the standard default; you usually don't need to set this.BIRDNET_MQTT_USERNAMEbirdnetBroker username, if yours requires a login.BIRDNET_MQTT_PASSWORD••••••Broker password, if required.BIRDNET_STATION_NAMEBackyard FeederThe name this station shows up as in Home Assistant. Defaults to the station's hostname.

Save config, and within about five minutes the station picks it up. OnlyBIRDNET_MQTT_HOST is required — the rest have sensible defaults.

In Home Assistant, it appears on its own

You don't have to configure anything on the Home Assistant side. As soon as the station connects, it announces itself using MQTT discovery, and a new device — named after your station — shows up under Settings → Devices & Services → MQTT. It carries a sensor whose state is the latest species heard, with the confidence, scientific name, and time available as attributes. It also reports online/offline, so you can see at a glance whether the station is currently connected.

What a detection message looks like

Each detection is published to the topic birdnet//detection as JSON:

{ "common_name": "Pileated Woodpecker", "scientific_name": "Dryocopus pileatus", "confidence": 0.87, "detected_at": "2026-07-24T20:15:00+00:00", "station": "Backyard Feeder" }

Only confirmed detections are sent — the lightweight “possible, filtered out by location” entries you may see on the dashboard are not published. No audio or file paths are ever included in the message.

An example automation

A common first automation: announce (or highlight) a specific species. In Home Assistant you'd trigger on the station's sensor changing to the species you care about — for instance, when the latest-bird sensor becomes Pileated Woodpecker, flip a smart light or send a phone notification. Because the confidence rides along as an attribute, you can also require, say, 80%+ before reacting.

If it doesn't show up
  • Give it a few minutes after saving — the station applies settings on a cycle, then reconnects.
  • Double-check the broker address is reachable from the station's network, and that the username/password match if your broker requires them.
  • Confirm the station is on the latest software; older builds don't have the MQTT option.
  • Still stuck? The community discussions are the best place to compare notes.
Forgot Password?
Don't have an account? Sign up