Installation

January 6, 2025 ยท View on GitHub


PetKit Home Assistant Integration

Custom Home Assistant component for controlling and monitoring PetKit devices and pets.

Current version GitHub GitHub manifest.json dynamic (path) Total lines count

Buy Me A Coffee Donate using Liberapay

A lot of work has been put into creating the backend and this integration. If you enjoy this integration, consider donating by clicking on one of the supported methods above.

*All proceeds go towards helping a local animal rescue.


Discord Server

Discord

Join the Home Assistant PetKit discord server to follow development news or to share ideas with other users.

Currently Supported Devices

Feeders

Caution

YumShare feeders are NOT currently supported, but will be in the future. Once they are supported this message will be removed.

Litter Boxes

Purifiers

Water Fountains

Prior To Installation

  • This integration requires using your PetKit account email (number for PetKit China accounts) and password. Third-party account sign-in methods (Facebook, Apple, Twitter) are not supported.

Caution

If using another PetKit integration that uses the petkit domain, you will need to delete it prior to installing this integration. You'll also need to remove any mention of it from your configuration.yaml file.

Caution

If you are running Home Assistant as a Docker container, the TZ environment variable must be set.

Important - Please Read:

PetKit Account & Family Sharing Feature:

Important

  • PetKit accounts can only be logged in on one device at a time. Using a single account for both this integration and the mobile app will result in getting signed out of one of them. You can avoid this by creating a secondary account and sharing the devices/pets to it using the family sharing feature. You may use the primary account or the secondary account with this integration. However, as development was done using a primary account, if you use your secondary account with this integration, I cannot guarantee that all features work.

If you have a water fountain:

Note

Getting the most recent data from your water fountain, as well as controlling the water fountain, requires that the BLE relay is set up within the PetKit app. Otherwise, you will not be able to control the water fountain as it requires another compatible PetKit device acting as a BLE relay and data will only be as recent as the last time your phone connected to the water fountain.

Caution

If you have a Pura MAX litter box acting as a BLE relay for your water fountain, you may want to disable the Use PetKit BLE relay (if available) option. A bug exists in the Pura Max firmware that causes the litter box to eventually become unresponsive and needing a reboot if both the integration and PetKit mobile app are in use.

Installation

With HACS

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Tip

If you are unable to use the button above, manually search for PetKit in HACS.

Manual

Copy the petkit directory, from custom_components in this repository, and place it inside your Home Assistant Core installation's custom_components directory. Restart Home Assistant prior to moving on to the Setup section.

Warning

If installing manually, in order to be alerted about new releases, you will need to subscribe to releases from this repository.

Setup

Open your Home Assistant instance and start setting up a new integration.

Tip

If you are unable to use the button above, follow the steps below:

  1. Navigate to the Home Assistant Integrations page (Settings --> Devices & Services)
  2. Click the + ADD INTEGRATION button in the lower right-hand corner
  3. Search for PetKit

Caution

  • Be sure to select the country associated with your account (Hong Kong users should select Hong Kong, not China).
  • During setup, set the timezone option to Set Automatically. If the tzlocal library isn't able to fetch your timezone, please manually select your timezone.

The current polling interval is set to 2 minutes (120 seconds). If you would like to set a different polling interval, change the polling interval option (via the UI). Keep in mind, setting the polling interval too short may result in your account getting rate limited/blocked.

Devices

Each PetKit device and pet is represented as a device in Home Assistant. Within each device are several entities described below.

Feeders


Fresh Element Infinity (click to expand)
Each Feeder has the following entities:
EntityEntity TypeAdditional Comments
Call petButtonOnly available if your feeder is online (connected to PetKit's servers).
Cancel manual feedButton- Only available if your feeder is online (connected to PetKit's servers).
- Will cancel a manual feeding that is currently in progress.
Indicator lightSwitchOnly available if your feeder is online (connected to PetKit's servers).
Manual FeedNumber- Only available if your feeder is online (connected to PetKit's servers).
- Select the amount of food, in grams, you'd like to dispense immediately.
- Note: valid amount ranges from 5-200 grams in increments of 1 gram.
Desiccant days remainingSensorNumber of days left before the desiccant needs to be replaced.
Food levelBinary SensorAllows for determining if there is a food shortage.
Child lockSwitchOnly available if your feeder is online (connected to PetKit's servers).
Do not disturbSwitchOnly available if your feeder is online (connected to PetKit's servers).
Reset desiccantButton- Allows you to reset the desiccant back to 30 days after replacing it.
- Only available if your feeder is online (connected to PetKit's servers).
SoundSelect- Allows you to select which sound is played when calling your pet.
- Default sound is selected if no self-recorded sounds are available or selected.
- Only available if your feeder is online (connected to PetKit's servers).
SurplusNumber- Allows for selecting weight in bowl that is considered to be surplus.
- If a surplus amount is selected and surplus control is enabled, planned feedings will stop when the weight of food detected in the bowl is equal to the surplus amount.
- Only available if your feeder is online (connected to PetKit's servers).
Surplus controlSwitch- Enable or disable surplus control.
- Only available if your feeder is online (connected to PetKit's servers).
System notification soundSwitch- Enable or disable system notification sound.
- Only available if your feeder is online (connected to PetKit's servers).
Voice with dispenseSwitch- Enable or disable sound (selected in Sound entity) to play with every feeding.
- Only available if your feeder is online (connected to PetKit's servers).
VolumeNumber- Allows for controlling feeder sound volume.
- Only available if your feeder is online (connected to PetKit's servers).
Amount eatenSensorAmount of food your pet has eaten from the bowl today.
BatteryBinary SensorIndicates if your battery is charging or not charging.
Battery statusSensor- Will only become available when feeder is running on batteries.
- Indicates the battery level (Normal or Low).
DispensedSensorAmount of food, in grams, dispensed today.
ErrorSensorIdentifies any errors reported by the feeder.
Food in bowlSensorAmount of food, in grams, that is currently in the bowl.
PlannedSensorAmount of food, in grams, that the feeder plans to dispense today.
Planned dispensedSensorOf the planned amount that is to be dispensed today, amount of food (grams) that has been dispensed.
RSSISensorWiFi connection strength.
StatusSensorNormal = Feeder is connected to PetKit's servers
Offline = Feeder is not connected to PetKit servers
On Batteries = Feeder is currently being powered by the batteries.
Times dispensedSensorNumber of times food has been dispensed today.
Times eatenSensorNumber of times pet ate today.
Fresh Element Solo (click to expand)
Each Feeder has the following entities:
EntityEntity TypeAdditional Comments
Cancel manual feedButton- Only available if your feeder is online (connected to PetKit's servers).
- Will cancel a manual feeding that is currently in progress.
Indicator lightSwitchOnly available if your feeder is online (connected to PetKit's servers).
Manual feedSelect- Allows setting the amount of food to dispense immediately.
- Only available if your feeder is online (connected to PetKit's servers).
Desiccant days remainingSensorNumber of days left before the desiccant needs to be replaced.
Food levelBinary SensorAllows for determining if there is a food shortage.
Child lockSwitchOnly available if your feeder is online (connected to PetKit's servers).
Dispense toneSwitchOnly available if your feeder is online (connected to PetKit's servers).
Food shortage alarmSwitchOnly available if your feeder is online (connected to PetKit's servers).
Reset desiccantButton- Allows you to reset the desiccant back to 30 days after replacing it.
- Only available if your feeder is online (connected to PetKit's servers).
Battery installedBinary SensorIf batteries are removed or installed, power cycling the feeder is required for the status to update.
Battery statusSensor- Will only become available when feeder is running on batteries.
- Indicates the battery level (Normal or Low).
DispensedSensorAmount of food, in grams, dispensed today.
ErrorSensorIdentifies any errors reported by the feeder.
Manually dispensedSensorAmount of food, in grams, manually dispensed today.
PlannedSensorAmount of food, in grams, that the feeder plans to dispense today.
Planned dispensedSensorOf the planned amount that is to be dispensed today, amount of food (grams) that has been dispensed.
RSSISensorWiFi connection strength.
StatusSensorNormal = Feeder is connected to PetKit's servers
Offline = Feeder is not connected to PetKit servers
On Batteries = If installed, feeder is currently being powered by the batteries.
Times dispensedSensorNumber of times food has been dispensed today.
Fresh Element Mini Pro (click to expand)
Each Feeder has the following entities:
EntityEntity TypeAdditional Comments
Indicator lightSwitchOnly available if your feeder is online (connected to PetKit's servers).
Manual feedSelect- Allows setting the amount of food to dispense immediately.
- Only available if your feeder is online (connected to PetKit's servers).
Desiccant days remainingSensorNumber of days left before the desiccant needs to be replaced.
Food levelBinary SensorAllows for determining if there is a food shortage.
Child lockSwitchOnly available if your feeder is online (connected to PetKit's servers).
Reset desiccantButton- Allows you to reset the desiccant back to 30 days after replacing it.
- Only available if your feeder is online (connected to PetKit's servers).
Battery statusSensor- Will only become available when feeder is running on batteries.
- Indicates the battery level (Normal or Low).
ErrorSensorIdentifies any errors reported by the feeder.
RSSISensorWiFi connection strength.
StatusSensorNormal = Feeder is connected to PetKit's servers
Offline = Feeder is not connected to PetKit servers
On Batteries = If installed, feeder is currently being powered by the batteries.

Friendly Note: Mini feeders have a bug when batteries are installed that has never been addressed by PetKit. This can result in your device locking up until the batteries are removed and feeder is power cycled. I am not sure what triggers this bug, but as a safety measure I don't install batteries into mini feeders.

Fresh Element Gemini (click to expand)
Each Feeder has the following entities:
EntityEntity TypeAdditional Comments
Cancel manual feedButton- Only available if your feeder is online (connected to PetKit's servers).
- Will cancel a manual feeding that is currently in progress.
Indicator lightSwitchOnly available if your feeder is online (connected to PetKit's servers).
Manual feedText- Allows setting the amount of portions to dispense immediately from hopper 1 and 2.
- Only available if your feeder is online (connected to PetKit's servers).
- Valid text is in the form number,number. For example, setting a value of 1,2 will dispense one portion from hopper 1 and 2 portions from hopper 2. Allowed portion sizes for each hooper range from and include 0 to 10.
Desiccant days remainingSensorNumber of days left before the desiccant needs to be replaced.
Food level hopper 1Binary SensorAllows for determining if there is a food shortage in hopper 1.
Food level hopper 2Binary SensorAllows for determining if there is a food shortage in hopper 2.
Child lockSwitchOnly available if your feeder is online (connected to PetKit's servers).
Dispense toneSwitchOnly available if your feeder is online (connected to PetKit's servers).
Food replenishedButtonTells the PetKit servers that you have replenished hopper 1 and 2 with food. If you don't do this after replenishing food, the food level for hoppers 1 and 2 won't update until a manual feeding is sent or until the next scheduled feeding.
Food shortage alarmSwitchOnly available if your feeder is online (connected to PetKit's servers).
Minimum eating durationNumberMinimum amount of time, in seconds, pet has to eat food before it is recorded.
Reset desiccantButton- Allows you to reset the desiccant back to 30 days after replacing it.
- Only available if your feeder is online (connected to PetKit's servers).
Average eating timeSensorAverage amount of time pet(s) have spent eating food.
Battery installedBinary SensorIf batteries are removed or installed, power cycling the feeder is required for the status to update.
Battery statusSensor- Will only become available when feeder is running on batteries.
- Indicates the battery level (Normal or Low).
Dispensed hopper 1SensorAmount of portions dispensed from hopper 1 today.
Dispensed hopper 2SensorAmount of portions dispensed from hopper 2 today.
ErrorSensorIdentifies any errors reported by the feeder.
Manually dispensed hopper 1SensorAmount of portions manually dispensed from hopper 1 today.
Manually dispensed hopper 2SensorAmount of portions manually dispensed from hopper 2 today.
Planned dispensed hopper 1SensorOf the planned amount that is to be dispensed today, amount of portions that have been dispensed from hopper 1.
Planned dispensed hopper 2SensorOf the planned amount that is to be dispensed today, amount of portions that have been dispensed from hopper 2.
Planned hopper 1SensorAmount of portions that the feeder plans to dispense from hopper 1 today.
Planned hopper 2SensorAmount of portions that the feeder plans to dispense from hopper 2 today.
RSSISensorWiFi connection strength.
StatusSensorNormal = Feeder is connected to PetKit's servers
Offline = Feeder is not connected to PetKit servers
On Batteries = If installed, feeder is currently being powered by the batteries.
Times dispensedSensorNumber of times food has been dispensed today.
Times eatenSensorNumber of times pet(s) ate today.
Fresh Element (click to expand)
Each Feeder has the following entities:
EntityEntity TypeAdditional Comments
Cancel manual feedButton- Only available if your feeder is online (connected to PetKit's servers).
- Will cancel a manual feeding that is currently in progress.
Indicator lightSwitchOnly available if your feeder is online (connected to PetKit's servers).
Manual feedNumber- Allows setting the amount of food (grams) to dispense immediately.
- Only available if your feeder is online (connected to PetKit's servers).
Desiccant days remainingSensorNumber of days left before the desiccant needs to be replaced.
Food levelBinary SensorAllows for determining if there is a food shortage.
Child lockSwitchOnly available if your feeder is online (connected to PetKit's servers).
Reset desiccantButton- Allows you to reset the desiccant back to 30 days after replacing it.
- Only available if your feeder is online (connected to PetKit's servers).
Start calibrationButtonSee note at the bottom of the table for description provided by PetKit.
Stop calibrationButton
Battery statusSensor- Will only become available when feeder is running on batteries.
- Indicates the battery level (Normal or Low).
ErrorSensorIdentifies any errors reported by the feeder.
Food LeftSensorIdentifies the amount of food, as a percentage, left in the feeder.
RSSISensorWiFi connection strength.
StatusSensorNormal = Feeder is connected to PetKit's servers
Offline = Feeder is not connected to PetKit servers
On Batteries = If installed, feeder is currently being powered by the batteries.

Feeder Calibration: Calibration is required after every installation and removal of batteries from the feeder. Prior to calibration, be sure to clean out all of the food from the feeder as the calibration process will empty any food that is left in the feeder.

Water Fountains


Eversweet 3 Pro/5 Mini/Solo 2 (click to expand)
Each water fountain has the following entities:
EntityEntity TypeAdditional Comments
Do not disturbSwitch-Can only be controlled if BLE relay is set up and enabled.
- Allows for enabling or disabling do not disturb - Use PetKit app to set do not disturb schedule if you plan on using this entity.
LightSwitchCan only be controlled if BLE relay is set up and enabled.
PowerSwitch-Can only be controlled if BLE relay is set up and enabled.
- Turning power off is equivalent to "Pause" in the PetKit app.
- Turning power on resumes the water fountain in the mode (Normal/Smart) it was in prior to being powered off.
FilterSensorIndicates % filter life left.
Water levelBinary SensorIndicates if water needs to be added to the water fountain.
Light brightnessSelect-Can only be controlled if BLE relay is set up and enabled.
- Only available when light is turned on
ModeSelect-Can only be controlled if BLE relay is set up and enabled.
- Allows setting mode to Normal or Smart.
- For "Smart mode", use the PetKit app to set the water on and off minutes.
Reset filterButtonOnly available if BLE relay is set up and main BLE relay device is online.
Energy usageSensor
Last data updateSensor- Date/Time that the water fountain last reported updated data to PetKit servers.
- This can be used to track and identify if the BLE relay is working correctly as this will change whenever the main BLE relay device polls the water fountain.
Purified water todaySensorNumber of times water has been purified.

Note About Water Fountain Control

If you have the BLE relay set up in the PetKit app and the main BLE relay device is online, sometimes the bluetooth connection will fail when attempting to send a command (e.g., changing mode, light brightness, etc) . If this happens, it will be noted in the Home Assistant logs. Retrying the command usually results in a subsequent successful connection.

Litter Boxes


Pura X (click to expand)
Each litter box has the following entities:
EntityEntity TypeAdditional Comments
Odor removalButton- Activates immediate odor removal
- Only available if litter box is online (Connected to PetKit's servers).
Pause CleaningButtonOnly available if litter box is online (Connected to PetKit's servers).
PowerButton- Turn litter box on/off
- Only available if litter box is online (Connected to PetKit's servers).
Start/Resume cleaningButton- Start a manual cleaning or resume a cleaning if litter box is currently paused.
- Only available if litter box is online (Connected to PetKit's servers).
Average UseSensorAverage use duration of the litter box today.
DeodorizerBinary SensorAllows for determining if deodorizer needs to be refilled.
Last used bySensorIndicates which cat used the litter box last.
LitterBinary SensorAllows for determining if the litter needs to be refilled.
Times usedSensorNumber of times litter box was used today.
Total useSensorTotal number of seconds litter box was used today.
Waste binBinary SensorAllows for determining if the waste bin is full.
Auto cleaningSwitch- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Kitten Mode is turned on.
Auto odor removalSwitchOnly available if litter box is online (Connected to PetKit's servers).
Avoid repeat cleaningSwitch- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Auto Cleaning is disabled.
- Not available if Kitten Mode is turned on.
Child lockSwitchOnly available if litter box is online (Connected to PetKit's servers).
Cleaning delayNumber- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Auto Cleaning is disabled.
- Not available if Kitten Mode is turned on.
Cleaning intervalSelect- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Auto Cleaning is disabled.
- Not available if Avoid repeat cleaning is disabled.
- Not available if Kitten Mode is turned on.
DisplaySwitch- Turn display on litter box on or off.
- Only available if litter box is online (Connected to PetKit's servers).
Do not disturbSwitchOnly available if litter box is online (Connected to PetKit's servers).
Kitten modeSwitchOnly available if litter box is online (Connected to PetKit's servers).
Light weight cleaning disabledSwitch- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Auto Cleaning is disabled.
- Not available if Avoid repeat cleaning is disabled.
- Not available if Kitten Mode is turned on.
Litter typeSelectType of litter that is being used in the litter box.
Periodic cleaningSwitch- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Kitten Mode is turned on.
Periodic odor removalSwitchOnly available if litter box is online (Connected to PetKit's servers).
Deodorizer levelSensorPercent of deodorizer remaining.
ErrorSensorAny errors being reported by the litter box.
Last eventSensor- Last event that occured in the litter box.
- sub_events attribute is used to list any events that are associated with the main event.
- This sensor is used to mimic the timeline that is seen in the PetKit app.
- Please see "Last event states" section below
Litter levelSensorPercent of litter that is left in the litter box.
Litter weightSensor- Weight of litter currently in litter box.
- By default this is in Kg. The unit can be changed in the settings of this entity.
Manually pausedBinary SensorIndicates if the litter box has been manually paused or not. Please see note below table for additional information.
RSSISensorWiFi connection strength.

When manually pausing the litter box, the manually paused sensor entity will show a state of On. If cleaning isn't resumed, the litter box will (by default) resume cleaning after 10 minutes - the manually paused entity will return to a state of Off. If you manually pause a cleaning and restart Home Assistant while the litter box is paused, this sensor will have an incorrect state of Off. This is a limitation on PetKit's end as the state of the litter box is not reported by their servers. This behavior is evident when a cleaning is paused from the PetKit app, the app is force closed, and opened again. The goal of this entity is to be able to manually keep track of the state of the litter box since PetKit doesn't do that.

Last event states (click to expand)
The following are all possible event/sub event states and their full descriptions:
Event/Sub event stateFull Description
no_events_yetNo events yet
event_type_unknownEvent type unknown
cleaning_completedCleaning completed
dumping_overDumping Over
reset_overReset over
spray_overSpray over
pet_outPet out
auto_cleaning_completedAuto cleaning completed
periodic_cleaning_completedPeriodic cleaning completed
manual_cleaning_completedManual cleaning completed
auto_cleaning_terminatedAutomatic cleaning terminated
periodic_cleaning_terminatedPeriodic cleaning terminated
manual_cleaning_terminatedManual cleaning terminated
auto_cleaning_failed_fullAutomatic cleaning failed, waste collection bin is full, please empty promptly
auto_cleaning_failed_hall_lAutomatic cleaning failure, the cylinder is not properly locked in place, please check
auto_cleaning_failed_hall_tAutomatic cleaning failure, the litter box's upper cupper cover is not placed properly, please check
scheduled_cleaning_failed_fullScheduled cleaning failed, waste collection bin is full, please empty promptly
scheduled_cleaning_failed_hall_lScheduled cleaning failure, the cylinder is not properly locked in place, please check
scheduled_cleaning_failed_hall_tScheduled cleaning failure, the litter box's upper cupper cover is not placed properly, please check
manual_cleaning_failed_fullManual cleaning failed, waste collection bin is full, please empty promptly
manual_cleaning_failed_hall_lManual cleaning failure, the cylinder is not properly locked in place, please check
manual_cleaning_failed_hall_tManual cleaning failure, the litter box's upper cupper cover is not placed properly, please check
auto_cleaning_canceledAutomatic cleaning canceled, device in operation
periodic_cleaning_canceledPeriodic cleaning canceled, device in operation
manual_cleaning_canceledManual cleaning canceled, device in operation
auto_cleaning_canceled_kittenKitten mode is enabled, auto cleaning is canceled
periodic_cleaning_canceled_kittenKitten mode is enabled, periodically cleaning is canceled
litter_empty_completedCat litter empty completed
litter_empty_terminatedCat litter empty terminated
litter_empty_failed_fullCat litter empty failed, waste collection bin is full, please empty promptly
litter_empty_failed_hall_lCat litter empty failure, the cylinder is not properly locked in place, please check
litter_empty_failed_hall_tCat litter empty failure, the litter box's cupper cover is not placed properly, please check
reset_completedDevice reset completed
reset_terminatedDevice reset terminated
reset_failed_fullDevice reset failed, waste collection bin is full, please empty promptly
reset_failed_hall_lDevice reset failure, the cylinder is not properly locked in place, please check
reset_failed_hall_tDevice reset failure, the litter box's cupper cover is not placed properly, please check
deodorant_finishedDeodorant finished
periodic_odor_completedPeriodic odor removal completed
manual_odor_completedManual odor removal completed
deodorant_finished_liquid_lackDeodorant finished, not enough purifying liquid, please refill in time
periodic_odor_completed_liquid_lackPeriodic odor removal completed, not enough purifying liquid, please refill in time
manual_odor_completed_liquid_lackManual odor removal completed, not enough purifying liquid, please refill in time
auto_odor_failedAutomatic odor removal failed, odor eliminator error
periodic_odor_failedPeriodic odor removal failure, odor eliminator malfunction
manual_odor_failedManual odor removal failure, odor eliminator malfunction
no_sub_eventsNo associated sub events
Pura MAX (click to expand)
Each litter box has the following entities:
EntityEntity TypeAdditional Comments
Dump litterButton
- Only available if litter box is online (Connected to PetKit's servers).
Exit maintenance modeButton
- Only available if litter box is online (Connected to PetKit's servers).
Odor removalButton- Activates immediate odor removal
- Only available if litter box is online (Connected to PetKit's servers).
Pause cleaningButtonOnly available if litter box is online (Connected to PetKit's servers).
Pause exiting maintenance modeButtonOnly available if litter box is online (Connected to PetKit's servers).
Pause litter dumpingButtonOnly available if litter box is online (Connected to PetKit's servers).
PowerButton- Turn litter box on/off
- Only available if litter box is online (Connected to PetKit's servers).
Reset N50 odor eliminatorButton
Reset Pura Air liquidButtonOnly available if litter box has a Pura Air associated with it
Resume exiting maintenance modeButtonOnly available if litter box is online (Connected to PetKit's servers).
Resume litter dumpingButtonOnly available if litter box is online (Connected to PetKit's servers).
Start maintenance modeButtonOnly available if litter box is online (Connected to PetKit's servers).
Start/Resume cleaningButton- Start a manual cleaning or resume a cleaning if litter box is currently paused.
- Only available if litter box is online (Connected to PetKit's servers).
Turn light ONButtonOnly available if litter box has a Pura Air associated with it.
Average UseSensorAverage use duration of the litter box today.
Last used bySensorIndicates which cat used the litter box last.
LitterBinary SensorAllows for determining if the litter needs to be refilled.
Pura Air liquidBinary Sensor- Allows for determining if the Pura Air liquid needs to be refilled.
- Only available if litter box has a Pura Air associated with it
Times usedSensorNumber of times litter box was used today.
Total useSensorTotal number of seconds litter box was used today.
Waste binBinary SensorAllows for determining if the waste bin is full.
Auto cleaningSwitch- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Kitten Mode is turned on.
Auto odor removalSwitchOnly available if litter box is online (Connected to PetKit's servers).
Avoid repeat cleaningSwitch- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Auto Cleaning is disabled.
- Not available if Kitten Mode is turned on.
Child lockSwitchOnly available if litter box is online (Connected to PetKit's servers).
Cleaning delayNumber- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Auto Cleaning is disabled.
- Not available if Kitten Mode is turned on.
Cleaning intervalSelect- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Auto Cleaning is disabled.
- Not available if Avoid repeat cleaning is disabled.
- Not available if Kitten Mode is turned on.
Continuous rotationSwitch- Only available if litter box is online (Connected to PetKit's servers).
Deep cleaningSwitch- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Auto Cleaning is disabled.
- Not available if Avoid repeat cleaning is disabled.
- Not available if Kitten Mode is turned on.
Deep deodorizationSwitch- Only available if litter box is online (Connected to PetKit's servers) and has a Pura Air associated with it.
- Not available if Auto Cleaning is disabled.
- Not available if Avoid repeat cleaning is disabled.
- Not available if Kitten Mode is turned on.
DisplaySwitch- Turn display on litter box on or off.
- Only available if litter box is online (Connected to PetKit's servers).
Do not disturbSwitchOnly available if litter box is online (Connected to PetKit's servers).
Enhanced adsorptionSwitchOnly available if litter box is online (Connected to PetKit's servers).
Kitten modeSwitchOnly available if litter box is online (Connected to PetKit's servers).
Light weight cleaning disabledSwitch- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Auto Cleaning is disabled.
- Not available if Avoid repeat cleaning is disabled.
- Not available if Kitten Mode is turned on.
Litter typeSelectType of litter that is being used in the litter box.
Periodic cleaningSwitch- Only available if litter box is online (Connected to PetKit's servers).
- Not available if Kitten Mode is turned on.
Periodic odor removalSwitchOnly available if litter box is online (Connected to PetKit's servers).
ErrorSensorAny errors being reported by the litter box.
Last eventSensor- Last event that occured in the litter box.
- sub_events attribute is used to list any events that are associated with the main event.
- This sensor is used to mimic the timeline that is seen in the PetKit app.
- Please see "Last event states" section below
Litter levelSensorPercent of litter that is left in the litter box.
Litter weightSensor- Weight of litter currently in litter box.
- By default this is in Kg. The unit can be changed in the settings of this entity.
N50 odor eliminatorSensor- Amount of days left before N50 filter needs to be replaced.
Pura Air batterySensor- Only available if litter box has a Pura Air associated with it
Pura Air liquidSensor- Only available if litter box has a Pura Air associated with it.
- Amount of liquid left in the Pura Air
RSSISensorWiFi connection strength.
StateSensor- Current work state of the litter box.
- Please see "State entity states" section below.
Last event states (click to expand)
The following are all possible event/sub event states and their full descriptions:
Event/Sub event stateFull Description
no_events_yetNo events yet
event_type_unknownEvent type unknown
cleaning_completedCleaning completed
dumping_overDumping Over
reset_overReset over
spray_overSpray over
light_overLight over
pet_outPet out
auto_cleaning_completedAuto cleaning completed
periodic_cleaning_completedPeriodic cleaning completed
manual_cleaning_completedManual cleaning completed
auto_cleaning_terminatedAutomatic cleaning terminated
periodic_cleaning_terminatedPeriodic cleaning terminated
manual_cleaning_terminatedManual cleaning terminated
auto_cleaning_failed_fullAutomatic cleaning failed, waste collection bin is full, please empty promptly
auto_cleaning_failed_hall_tAutomatic cleaning failure, the litter box's upper cupper cover is not placed properly, please check
auto_cleaning_failed_falldownAutomatic cleaning failure, the litter box has been knocked down, please check.
auto_cleaning_failed_otherAutomatic cleaning failure, device malfunction, please check.
scheduled_cleaning_failed_fullScheduled cleaning failed, waste collection bin is full, please empty promptly
scheduled_cleaning_failed_hall_tScheduled cleaning failure, the litter box's upper cupper cover is not placed properly, please check
scheduled_cleaning_failed_falldownScheduled cleaning failure, the litter box has been knocked down, please check.
scheduled_cleaning_failed_otherScheduled cleaning failure, device malfunction, please check.
manual_cleaning_failed_fullManual cleaning failed, waste collection bin is full, please empty promptly
manual_cleaning_failed_hall_tManual cleaning failure, the litter box's upper cupper cover is not placed properly, please check
manual_cleaning_failed_falldownManual cleaning failure, the litter box has been knocked down, please check.
manual_cleaning_failed_otherManual cleaning failure, device malfunction, please check.
auto_cleaning_canceledAutomatic cleaning canceled, device in operation
periodic_cleaning_canceledPeriodic cleaning canceled, device in operation
manual_cleaning_canceledManual cleaning canceled, device in operation
auto_cleaning_failed_maintenanceAutomatic cleaning failed, the device is in maintenance mode
periodic_cleaning_failed_maintenancePeriodically cleaning failed, the device is in maintenance mode
auto_cleaning_canceled_kittenKitten mode is enabled, auto cleaning is canceled
periodic_cleaning_canceled_kittenKitten mode is enabled, periodically cleaning is canceled
litter_empty_completedCat litter empty completed
litter_empty_terminatedCat litter empty terminated
litter_empty_failed_fullCat litter empty failed, waste collection bin is full, please empty promptly
litter_empty_failed_hall_tCat litter empty failure, the litter box's cupper cover is not placed properly, please check
litter_empty_failed_falldownCat litter empty failure, the litter box has been knocked down, please check
litter_empty_failed_otherCat litter empty failure, device malfunction, please check.
reset_completedDevice reset completed
reset_terminatedDevice reset terminated
reset_failed_fullDevice reset failed, waste collection bin is full, please empty promptly
reset_failed_hall_tDevice reset failure, the litter box's cupper cover is not placed properly, please check
reset_failed_falldownDevice reset failure, the litter box has been knocked down, please check.
reset_failed_otherDevice reset failure, device malfunction, please check.
maintenance_modeMaintenance mode
deodorant_finishedDeodorant finished
periodic_odor_completedPeriodic odor removal completed
manual_odor_completedManual odor removal completed
auto_odor_terminatedAutomatic odor removal has been terminated.
periodic_odor_terminatedPeriodic odor removal terminated.
manual_odor_terminatedManual odor removal terminated.
auto_odor_failedAutomatic odor removal failed, odor eliminator error
periodic_odor_failedPeriodic odor removal failure, odor eliminator malfunction
manual_odor_failedManual odor removal failure, odor eliminator malfunction
auto_odor_canceledAutomatic odor removal has been canceled, the device is running.
periodic_odor_canceledPeriodic odor removal canceled. Litter Box is working.
manual_odor_canceledManual odor removal canceled. Litter Box is working.
auto_odor_failed_deviceAutomatic odor removal failed, no smart spray is connected.
periodic_odor_failed_devicePeriodic odor removal failed. Odor Removal Device disconnected.
manual_odor_failed_deviceManual odor removal failed. Odor Removal Device disconnected.
auto_odor_failed_battAutomatic odor removal failed, please confirm that the battery of smart spray is sufficient.
periodic_odor_failed_battPeriodic odor removal failed. Please make sure the Odor Removal Device has sufficient battery.
manual_odor_failed_battManual odor removal failed. Please make sure the Odor Removal Device has sufficient battery.
auto_odor_failed_low_battAutomatic odor removal failed, battery is low.
periodic_odor_failed_low_battPeriodic odor removal failed. Odor Removal Device battery low.
manual_odor_failed_low_battManual odor removal failed. Odor Removal Device battery low.
cat_stopped_odorYour cat is using the litter box, deodorization has been canceled
light_onThe light is ON
light_already_onThe light is on. There is no need to turn on again.
light_malfuncFailing to turn on the light. Device malfunction, please check.
light_no_deviceFailing to turn on the light. Please bind the odor removal device first.
light_batt_capFailing to turn on the light. Please check the battery capacity of the odor removal device.
light_low_battFailing to turn on the light. Low battery capacity of odor removal device.
no_sub_eventsNo associated sub events
State entity states (click to expand)
The following are all possible State entity states and their full descriptions:
StateFull Description
cleaning_litter_boxCleaning litter box
cleaning_litter_box_pausedLitter box cleaning paused
cleaning_paused_pet_enteredLitter box cleaning paused: Pet entered while in operation, anti-pinch sensors activated, device stopped working. Please check the device ASAP.
cleaning_paused_system_errorLitter box cleaning paused: System error, operation paused
cleaning_paused_pet_approachLitter box cleaning paused: Your cat is approaching, operation paused
cleaning_paused_pet_usingLitter box cleaning paused: Your cat is using the device, operation paused
resetting_deviceResetting device
litter_box_pausedLitter box paused
paused_pet_enteredLitter box paused: Pet entered while in operation, anti-pinch sensors activated, device stopped working. Please check the device ASAP.
paused_system_errorLitter box paused: System error, operation paused
paused_pet_approachLitter box paused: Your cat is approaching, operation paused
paused_pet_usingLitter box paused: Your cat is using the device, operation paused
dumping_litterDumping cat litter
dumping_litter_pausedDumping cat litter paused
dumping_paused_pet_enteredDumping cat litter paused: Pet entered while in operation, anti-pinch sensors activated, device stopped working. Please check the device ASAP.
dumping_paused_system_errorDumping cat litter paused: System error, operation paused
dumping_paused_pet_approachDumping cat litter paused: Your cat is approaching, operation paused
dumping_paused_pet_usingDumping cat litter paused: Your cat is using the device, operation paused
resettingResetting
levelingLeveling cat litter, please wait.
calibratingCalibrating litter box, please wait.
maintenance_modeIn maintenance mode
maintenance_paused_pet_enteredMaintenance mode paused: Pet entered while in operation, anti-pinch sensors activated, device stopped working. Please check the device ASAP.
maintenance_paused_coverMaintenance mode paused: The top cover is not installed, operation paused
maintenance_paused_system_errorMaintenance mode paused: System error, operation paused
maintenance_paused_pet_approachMaintenance mode paused: Your cat is approaching, operation paused
maintenance_paused_pet_usingMaintenance mode paused: Your cat is using the device, operation paused
maintenance_pausedMaintenance mode paused
exit_maintenanceExiting maintenance mode
maintenance_exit_paused_pet_enteredMaintenance mode exiting paused: Pet entered while in operation, anti-pinch sensors activated, device stopped working. Please check the device ASAP.
maintenance_exit_paused_coverMaintenance mode exiting paused: The top cover is not installed, operation paused
maintenance_exit_paused_system_errorMaintenance mode exiting paused: System error, operation paused
maintenance_exit_paused_pet_approachMaintenance mode exiting paused: Your cat is approaching, operation paused
maintenance_exit_paused_pet_usingMaintenance mode exiting paused: Your cat is using the device, operation paused
maintenance_exit_pausedMaintenance mode exiting paused
idleIdle

Purifiers


Air Magicube (click to expand)
Each purifier has the following entities:
EntityEntity TypeAdditional Comments
Indicator lightSwitchOnly available if your purifier is online (connected to PetKit's servers)
Prompt toneSwitchOnly available if your purifier is online (connected to PetKit's servers).
PurifierFan- Only available if purifier is online (Connected to PetKit's servers).
- Can turn the purifier On and Off and view/change the current mode to one of the following: auto, silent, standard, strong.
Air purifiedSensor
HumiditySensor
TemperatureSensor
ErrorSensorDisplays any error messages. Note: Even though it isn't really an error, An error message is displayed by PetKit if the purifier is in standby mode.
LiquidSensorPercent of purifying liquid that remains in the purifier.
RSSISensorWiFi connection strength.

Pets


Dog (click to expand)
EntityEntity TypeAdditional Comments
Set weightNumberSet the weight of the dog.
Cat (click to expand)
EntityEntity TypeAdditional Comments
Set weightNumberSet the weight of the cat.
Last use durationSensor- Amount of time spent in the litter box during last use.
- Only available if PetKit account has litter box(es).
- If multiple litter boxes, this will display data obtained from the most recent litter box used.
- Will read 0 after first time setup if pet hasn't used litter box that day.
Latest weightSensor- Most recent weight measurement obtained during last litter box use.
- Only available if PetKit account has litter box(es).
- If multiple litter boxes, this will display data obtained from the most recent litter box used.
- By default the unit used is Kg. Unit can be changed in the settings of the entity.
- Will read 0 after first time setup if pet hasn't used litter box that day.

Help With Translations

A simple way of contributing to this integration is by helping translate the entity names and states to other languages.

If you speak another language, and would like to help:

  1. Inside of custom_components/petkit/translations, you will find two files: en.json and hr.json.
  2. Create a new file and title it based on the 639-1 language code you are creating a translation for in the format <language_code>.json.
  3. Copy the contents from the en.json file to your newly created file.
  4. If you are unsure what needs to be translated from english to the target language, compare the en.json file to the hr.json to see what was translated.
  5. Create a PR with your new language file placed in the translations directory.