Skip to content

Petkit W5 Water Fountain

w5.png

BLE Device

The W5 water fountain communicates via Bluetooth Low Energy (BLE) through a nearby Petkit device acting as a BLE proxy (see Bluetooth Devices Overview). The proxy must be present on the network and within Bluetooth range of the fountain. Localkit receives status updates from the fountain and can also send commands to it (power, mode, filter reset).

The Petkit W5 is a smart pet water fountain. Localkit decodes BLE advertisements from the device and exposes its status as Home Assistant entities via MQTT. Supported variants include W5, W5C, W4X, and CTW3.

Acknowledgement

The BLE protocol implementation is based on the work of slespersen/PetkitW5BLEMQTT. Many thanks for reverse engineering the W5 BLE protocol.

Controls (Writable)

These appear as Switch, Select, and Button entities in Home Assistant under the config category. Saving sends the command to the fountain over BLE via the linked proxy.

NameTypeTechnical NameDescription
PowerSwitchpower_statusTurns the fountain on or off
ModeSelectmodeFountain mode: Normal or Smart
Reset FilterButtonaction_reset_filterResets the filter counter after replacing the filter
Refresh Device DataButtonaction_refresh_dataMakes the proxy reconnect over BLE and pull a fresh status

Power and mode can also be changed from the device detail form in the Localkit Web UI. The Refresh Device Data and Reset Filter actions are available as row actions in the Bluetooth Devices list.

Binary Sensors (Read-only)

These appear as Binary Sensor entities in Home Assistant under the diagnostic category.

NameTechnical NameDevice ClassDescription
Runningrunning_statuspoweron when the pump is actively running
Do Not Disturb Activednd_stateon while the DND schedule is active
Do Not Disturbdo_not_disturb_switchon when the DND schedule is enabled
LED Switchled_switchon when the LED is enabled
Warning: Breakdownwarning_breakdownproblemon when a hardware fault is detected
Warning: Water Missingwarning_water_missingproblemon when the water level is too low
Warning: Filterwarning_filterproblemon when the filter needs attention

Sensors (Read-only)

These appear as Sensor entities in Home Assistant under the diagnostic category.

NameTechnical NameUnitDescription
Filter %filter_percentage%Remaining filter capacity (0–100)
Filter Time Leftfilter_time_leftdEstimated days until filter replacement
Last Updatelast_updateTimestamp of the last accepted status frame
Do Not Disturb Time Ondo_not_disturb_time_onStart of the quiet period (HH:MM)
Do Not Disturb Time Offdo_not_disturb_time_offEnd of the quiet period (HH:MM)
Smart Mode Time Onsmart_time_onminSmart mode on-duration
Smart Mode Time Offsmart_time_offminSmart mode off-duration
LED Brightnessled_brightnessLED brightness level
LED Light Time Onled_light_time_onLED on-time (HH:MM)
LED Light Time Offled_light_time_offLED off-time (HH:MM)
Pump Runtimepump_runtimeTotal pump runtime (lifetime)
Pump Runtime Todaypump_runtime_todayPump runtime today
Purified Waterpurified_waterLTotal liters of water purified (lifetime)
Purified Water Todaypurified_water_todayLLiters purified today
Energy Consumptionenergy_consumedkWhTotal energy used
Link Withlink_withName of the Petkit proxy device this fountain is linked to

Data Quality

The fountain occasionally sends malformed or truncated status frames. Localkit rejects these instead of parsing them into zeroed values — the last known good state is kept, and the Last Update sensor always shows when the last valid frame was received. If the sensor grows stale, check that the linked proxy is online and within Bluetooth range, then use the Refresh Device Data button.

Supported Device Variants

AliasFlow RatePump DivisorPower Draw
W51.5 L/min2.00.75 W
W5C1.3 L/min1.00.182 W
W4X1.5 L/min1.80.75 W
CTW31.5 L/min3.00.75 W

The variant affects how pump runtime is translated into purified water volume and energy consumption figures.