A Smart Garden Deterrent for Home Assistant
The Cat Bugger Off 3000 is a fully automated, pet-friendly garden deterrent. Powered by Frigate AI object detection and Home Assistant automation’s.
it activates your garden sprinklers when a cat is detected—gently encouraging feline visitors to bugger off, without harm.
🎯 What You’ll Need
“As an Amazon Associate I earn from qualifying purchases“
- Home Assistant (with MQTT enabled)
- Frigate NVR setup and running (Setup instructions)
- Compatible garden-facing camera
- A smart plug
- 12 Volt Power supply
- 12v water solenoid (Normally closed)
- A cheap water sprinkler (I use 2 of these, I have blocked the holes on the top and the first 2 holes from the center on each arm so the water is spreads further)
- YAML access in Home Assistant
💡 How It Works
- Frigate detects a cat (target animal) in the camera feed using object recognition.
- It sends an MQTT message.
- Home Assistant automation receives the trigger.
- Home Assistant check’s if it is allowed run the script, this is based on a input_boolean that can be turned on and off from the dashboard, I use this if washing in on the line or if we are in the garden.
- Sprinklers activate briefly (6 seconds) —making the cat bugger off, this works for cats and any other animals.
✅ Why It’s Pet-Friendly
- No chemicals, no harm: just a short burst of water
- AI-targeted: minimizes false triggers and avoids other pets or wildlife
- Easily controllable: disable it any time via dashboard toggle button
The Automation
alias: Cat Bugger off 3000
description: ""
triggers:
- trigger: state
entity_id:
- binary_sensor.garden_cat_occupancy
to: "on"
conditions:
- condition: state
entity_id: input_boolean.washing_on_line
state: "off"
actions:
- action: script.turn_on
metadata: {}
data: {}
target:
entity_id: script.sprinkler_run
mode: single
The Script
alias: Sprinkler Run
description: ""
sequence:
- action: switch.turn_on
data: {}
target:
device_id: #the device ID of your solenoid Plug
- delay:
hours: 0
minutes: 0
seconds: 6
milliseconds: 0
- action: switch.turn_off
data: {}
target:
device_id: #the device ID of your solenoid Plug
mode: single
icon: mdi:sprinkler-variant
The input_boolean
Put this in you configuration.yaml
input_boolean:
washing_on_line:
name: Washing On Line
icon: mdi:tshirt-crew
initial: off
The Template Sensor
This goes in your configuration.yaml in the template section.
template:
- sensor:
- name: "Washing Line Status Message"
unique_id: washing_line_status_message
state: >-
The Cat Bugger Off 3000 has been {{
'armed' if is_state('input_boolean.washing_on_line', 'on') else 'Disarmed'
}}.
The dashboard button
Create a conditional button on you dashboard for Armed.
show_name: true
show_icon: true
type: button
entity: input_boolean.washing_on_line
tap_action:
action: call-service
service: script.announce_washing_line_status
hold_action:
action: none
icon: mdi:cat
name: "CBO 3000: ARMED"
visibility:
- condition: state
entity: input_boolean.washing_on_line
state: "off"
grid_options:
columns: 6
rows: 2
Create a second conditional button on your dashboard for Disarmed.
show_name: true
show_icon: true
type: button
entity: input_boolean.washing_on_line
tap_action:
action: call-service
service: script.announce_washing_line_status
hold_action:
action: none
icon: mdi:cat
name: "CBO 3000: DISARMED"
visibility:
- condition: state
entity: input_boolean.washing_on_line
state: "on"
grid_options:
columns: 6
rows: 2
The announcement automation
This announces via a speaker that the cat bugger off 3000 is armed or disarmed.
alias: Announce and Toggle Washing Line
sequence:
- target:
entity_id: input_boolean.washing_on_line
action: input_boolean.toggle
data: {}
- data:
entity_id: assist_satellite.home_assistant_voice_09722b_assist_satellite # Change this to your preferred media device
message: |
{{ states('sensor.washing_line_status_message') }}
action: assist_satellite.announce
if you have any issues setting yours up, feel free to make a comment below, I am happily help.
If you have found this information useful feel free to buy me a coffee to help keep this content free and online.



Leave a comment