Skip to content

Bark Alerts

My integration for turning Frigate audio detections into Broadlink beep requests, with explicit controls and optional audio history. The command's effect must be verified on the collar.

Installation
My HACS custom integration
Connection
Frigate entities to Broadlink RF
In this setup
Gated beep requests and audio history

Documentation checked .

What it is

Bark Alerts is my Home Assistant integration for turning qualifying Frigate audio-detection transitions into requests for a compatible collar's learned beep command through Broadlink. It adds arming, dry-run and cooldown controls, outcomes and optional bark audio history. It does not classify audio itself, identify which animal barked or verify the physical effect of a captured RF packet.

My Setup

How I Turned an RF Training Collar Into a Bark Collar

I wanted to stop my dog's barking, so I turned a standard RF training collar into a bark collar. Frigate's native audio detection listens for bark and animal sounds, and Home Assistant exposes the results as entities. Bark Alerts, the integration I built, watches those entities and applies its arming, dry-run and cooldown controls. It then has a Broadlink RM4 pro send a beep command learned through Home Assistant. The collar has no connection back to Home Assistant, so nothing reports whether it beeped, and the command's effect has to be checked on the collar itself.

My configured setup uses selected Frigate camera sources, a Broadlink RF device and a named command. Audio history is enabled as a separate review feature. None of those settings establishes the current armed state or proves that a receiver acted on a request.

The devices in this setup

Frigate detects; Bark Alerts decides whether to request a beep

Frigate processing runs on my separate PC. Its Home Assistant integration exposes the relevant camera audio-detection entities. Bark Alerts watches those entities inside Home Assistant and evaluates a qualifying detection before calling the Broadlink remote action.

Frigate bark audio detection → my Bark Alerts integration → Broadlink RF transmitter → stored collar beep command

Bark Alerts does not run a new audio classifier or subscribe directly to MQTT. Frigate's event-driven entities depend on the shared MQTT broker connection described in the Frigate guide. The media and API paths have different responsibilities.

For a direct bark input, the integration responds to a new off-to-on transition. An initial or retained on state, an attribute update, or recovery from an unavailable state is not treated as a fresh detection. This avoids replaying an old state as a new request during startup or recovery.

The connections inside the monitor

Scroll the table horizontally to compare all four columns.

Bark Alerts connections in my build
ConnectionInformationHow I use itLimit or dependency
Frigate audio entitiesBark and optionally animal-sound transitions.Supply the selected monitor's detection inputs.Frigate detection and its Home Assistant state-update path.
Monitor controlsArming, dry run, cooldown and outcome information.Decide whether a new automatic request is allowed.Controls apply to this monitor, not every possible RF sender.
Broadlink remoteA configured named RF command.Request the stored beep command through the RF transmitter.The packet's actual effect must be verified on the receiver.
Frigate recording APIExisting recorded media containing audio.Retrieve a short clip for bark-history review.Separate API settings, accessible recordings and audio tracks.
Home Assistant media storageConverted clips and episode outcomes.Review recent bark episodes through authenticated media access.History can contain private audio and is kept out of the site.

Controls that govern automatic requests

Arming and dry run

Armed is the main gate for automatic operation. Dry run permits observation without automatic RF requests. Both controls return to off after a restart, reload, options change or reconfiguration. Enabling dry run before arming is the observation workflow; arming with dry run off permits a request on the next valid event.

When both controls are on, a persistent Home Assistant notification explains that automatic transmissions are blocked. Arming does not replay earlier detections or request a startup beep. Disarming stops new automatic requests, but cannot cancel a command already handed to Broadlink.

Cooldown and overlapping detections

Selected cameras within one monitor share its cooldown and in-flight command limit. Busy events are discarded, and the integration does not queue a delayed beep or automatically retry a failed request. Other monitor entries and unrelated automations have separate controls, so their combined behavior must be considered.

Configured repetitions belong to one command request. The request counter does not measure the number of RF packets or audible beeps. Increasing repetitions changes what is requested; it does not provide receiver confirmation.

The manual test is an explicit transmission request

Test beep bypasses arming and dry run, although it still respects cooldown and can fail. Verify the actual receiver with the collar off the animal. Never learn or automate shock or vibration commands through Bark Alerts. A wrong packet could trigger either one, and a label saying beep, or the setup confirmation checkbox, cannot establish the captured packet's effect.

Audio history is a separate review path

I have optional bark audio history enabled. It retrieves a short interval from existing Frigate recordings, roughly five seconds before and after the bark event, then uses FFmpeg on the Home Assistant host to create an audio clip. Recording segment boundaries can affect the captured interval.

This uses a separately configured connection to Frigate's documented HTTP API. It does not borrow the Frigate integration's private client or change the server's recording and retention settings. Existing recordings must contain audio, and the configured account must be able to access the relevant cameras.

The history keeps the latest 25 bark episodes for a monitor, including events while disarmed, in dry run or in cooldown. Failed captures count toward that episode limit, so it is not a promise of 25 playable clips. Manual tests and animal-sound fallback are not recorded in this history.

Clips are stored in the integration's private storage outside the public web directory and played through authenticated or temporarily signed Home Assistant media access. They can contain household conversations and may be included in backups. No recordings or playback links are published on this site.

Capture failure is reported separately. It does not interrupt the command decision, retry a transmission or queue a later collar request. Turning history off retains existing clips; the separate clear-history control removes them. The project documentation explains retention, capture status and API setup.

A sound label is not an identified animal or a confirmed result

Animal-sound fallback is optional, and its visual check is a separate setting: Require a dog seen on the same camera for animal sounds. That check is on by default when fallback is enabled. I turn it off because my camera is not always looking at where it would see the dog, so requiring a sighting would keep fallback from firing. With the check off, other animal sounds can also trigger a request.

A camera that always covers the area where the dog would be can leave the check on. Fallback then needs a dog recently seen on that camera, which narrows the trigger set. Direct bark detections never require a visual dog detection, with the check on or off.

This is a deliberate distinction between a camera hearing a classified sound and establishing which animal made it. Frigate can misclassify audio. Neither the direct bark path nor fallback identifies a particular dog, and neither should be treated as an animal-welfare assessment.

My published compatibility report concerns the tested beep function on a FunniPets collar. It does not validate every model, multi-collar operation or other command modes. Broadlink RF compatibility and the command's actual behavior must be established for the intended receiver.

A command-request outcome means the service returned without raising an error to Bark Alerts. Broadlink may log some failures without raising them, and the RF receiver provides no end-to-end acknowledgement here. Detection, request submission and an audible beep remain different observations.

The collar has one catch. Its receiver goes into standby after about 5 minutes with no operation and wakes when it is moved. A request sent during standby can produce no beep, while Home Assistant still reports a requested command. This is how the collar behaves, not a fault in Bark Alerts. It mostly shows up when a collar sits still, such as on a shelf during testing, and a dog that has been resting for more than 5 minutes could miss the first beep.

Follow the outcome through the gates

I first check the selected source's recent transitions and the monitor's current controls. Last outcome describes the previously processed event; it does not replace checking whether the monitor is armed now. A source remaining on is also different from a new off-to-on detection.

Next I distinguish a blocked outcome, such as dry run or cooldown, from a command request. For an unavailable source or remote, I investigate that connection. For a requested command without an observed beep, I check the Broadlink path and receiver separately, with any manual verification performed off the animal.

History has its own checks: recording availability, an audio track, API access and FFmpeg conversion. A history failure does not explain every missing beep, just as a playable clip does not establish that a command was sent.

The Bark Alerts repository contains installation instructions, the current controls and verification guidance. The Broadlink guide covers the output device independently.

What it can do

  • Selected detection sources

    Monitor chosen Frigate cameras, with optional animal-sound fallback and a selectable check for a dog seen on the same camera.

  • Explicit automatic-operation controls

    Gate requests through arming, dry run, cooldown and an in-flight limit.

  • Observable outcomes

    Distinguish a detection, a blocked request and a submitted command without implying receiver confirmation.

  • Optional audio history

    Retrieve short audio clips from existing Frigate recordings through a separate API connection.

Install and connect

  • Home Assistant 2026.10.2 or newer, with a compatible Frigate integration, Frigate audio detection listening for bark, and the camera's Home Assistant bark sensor enabled. See the repository for the reviewed interface versions.
  • An RF-capable Broadlink device exposing the required remote and RF transmitter entities.
  • A compatible receiver and your own physically verified beep command. Shock and vibration commands are outside the project's intended use.
  • For audio history: accessible Frigate recordings containing audio, separate API configuration and FFmpeg on the Home Assistant host.
  1. Install the custom repository

    Add the Bark Alerts repository to HACS as an Integration, download it and restart Home Assistant. Custom-repository installation is separate from default-catalog inclusion.

  2. Choose sources and output

    Add Bark Alerts under Settings > Devices & services. Select Frigate cameras and an RF-capable Broadlink device, then configure your own named command or private captured RF packet. For a new named command, press Learn beep (receive RF) on the integration's device afterward and follow Broadlink's notifications. If you enable animal-sound fallback, leave its dog check on only if the camera can reliably see the area where the dog would be.

  3. Verify the actual beep

    With the collar off the animal, verify the intended receiver and command. Test beep sends RF even with Armed off or Dry run on; it still respects cooldown. Recheck after command, channel, receiver or configuration changes.

  4. Observe before automatic operation

    Turn Dry run on before Armed to review detection outcomes without automatic transmission. Only permit automatic requests after command and detection verification; supervise initial operation and avoid duplicate senders.

  5. Configure history separately

    If wanted, enable bark history and enter the documented Frigate API connection. Check capture results independently of command outcomes.

Limits and caveats

Sources and next steps