We have had our pond pump connected to Home Assistant for a couple of years, simple programming On at dawn, off at dusk. There were 2 reasons for this noise at night, and basically trying to run all we can from our solar panels. The pump was purchased as an energy efficient one, anything to minimise household bills.
Using the dawn and dusk sensors in Home Assistant isn’t ideal in the summer months, when the sun rises quite early, so how to ensure the pump is consistent i.e. when the sun is out and not too early from a noise point of view. So we decided that the pump can only activate when the sun is up and time is at least 07:45 am.
To keep the logic simple, there is a rule for sun up and one for 07:45, to keep it simple I created a helper in Home Assistant, it is defined as a counter.

The simple idea is that the counter starts at zero, it increments when Sunrise occurs, then again at 07:45 am, once both conditions are met, the counter has a value of 2 and the pond pump should start. We have had issues in the past when the weather is colder, i.e. we don’t want to cool the pond down by circulating cold water, the pond is over 4 feet deep so has some warm at the bottom all year round. I will detail the temperature control further down this page.
Below are the 2 simple automations that ensure the counter reaches the value of 2, before the temperature is checked:
alias: Pond 07:45 Occured
description: ""
trigger:
- platform: time
at: "07:45:00"
condition: []
action:
- service: counter.increment
metadata: {}
data: {}
target:
entity_id: counter.pond_pump_activation
mode: single
alias: Pond Sunrise Occured
description: ""
trigger:
- platform: sun
event: sunrise
offset: 0
condition: []
action:
- service: counter.increment
metadata: {}
data: {}
target:
entity_id: counter.pond_pump_activation
When the pond pump switches off at dusk / sunset, we also reset the pond counter to zero, the simple automation below:
alias: Pond Pump Off
description: ""
trigger:
- platform: sun
event: sunset
offset: 0
condition: []
action:
- type: turn_off
device_id: f2b**c8c49**d369**f060**b5f**6e4
entity_id: switch.on_off_light_15
domain: switch
- service: counter.reset
metadata: {}
data: {}
target:
entity_id: counter.pond_pump_activation
mode: single
We also have a ‘safety net’ automation that zeros the pond counter in the early hours of the morning, this ensures that we start each day with the counter at zero.
We have a number of different devices we use for temperature monitoring, the one we selected to put in the shed for outdoor temperature is a BlueTooth device from SwitchBot, We will provide further details on this page
Below is the simple automation we use that monitors changes to the temperature sensor placed in our shed, though this sensor should be fine outside. When there is a change to any parameter of the sensor, if it is above 4.5°C and the pond activation counter has a value of 2, then switch the pond pump on:
alias: Pond Start on Temperature
description: ""
trigger:
- platform: state
entity_id:
- sensor.switchbot_back_garden
condition:
- condition: numeric_state
entity_id: sensor.switchbot_back_garden
above: 4.5
- condition: numeric_state
entity_id: counter.pond_pump_activation
above: 1
below: 3
action:
- service: switch.turn_on
target:
entity_id: switch.on_off_light_15
data: {}
- service: counter.set_value
metadata: {}
data:
value: 3
target:
entity_id: counter.pond_pump_activation
mode: single
Our primary pond pump is a Jebao XTP-8000 which uses 50 watts, which means its current draw is less than 1 amp. We turn the pump on and off remotely using a Zigbee device, we are real fans of these controllers – SONOFF ZBMINI 2 Way Light Switch
We use the model that requires a neutral connection, it supports switching a 10 amp load, so easily handles our pond pump.
Having had issues in the past with pond emptying due to issues with leaks in pipework and the pump not switching off, we are installing a further control on the pond pump, this solution will be detailed on this page.