Skip to content

Custom Integrations & Cards

Jamie Jones edited this page Apr 30, 2026 · 2 revisions

Dispenser Schedule Card

A custom Lovelace card for Home Assistant to view and manage feeding schedules for supported pet feeders (such as PetLibro Smart Pet Food Feeders).

🔗 Source repository: https://github.com/cristianchelu/dispenser-schedule-card


Overview

The Dispenser Schedule Card provides a simple interface for managing automated feeding schedules directly from the Home Assistant dashboard.

It supports:

  • Viewing scheduled feed times
  • Adding, editing, and removing schedule entries
  • Toggling schedules on/off
  • Displaying feed amounts and statuses

The card is designed for use with Home Assistant Lovelace and integrates with feeder devices via sensors and services.


Features

  • 📅 Schedule visualization (daily / weekly support)
  • ✏️ Edit, add, and remove feed entries
  • 🔄 Enable/disable individual schedule entries
  • ⚖️ Custom units and alternate unit conversion
  • 🌍 Multi-language support
  • 🐾 Support for multiple feeder types

Recent updates include:

  • Weekly schedule support
  • Multi-compartment feeder support
  • Improved UI and compatibility fixes for newer Home Assistant versions

Installation

Option 1: HACS (Recommended)

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

Or follow these steps:

  1. Open HACS (Home Assistant Community Store)
  2. Click on the three dots in the top right corner
  3. Click on Custom repositories
  4. In the Repository field, enter https://github.com/cristianchelu/dispenser-schedule-card/
  5. In the Category field, select Dashboard
  6. Click on Add
  7. Search for Dispenser Schedule Card in the list
  8. Install the card

More information and screenshots in the official guide: https://hacs.xyz/docs/faq/custom_repositories/

Manually

Download dispenser-schedule-card.min.js from the Releases tab of this repository and place it in under your www folder, then add this as resource type "Javascript Module", by following the official HA guide: https://developers.home-assistant.io/docs/frontend/custom-ui/registering-resources

Basic Usage

The Dispenser Schedule Card can be used with PetLibro feeders by setting the device type to petlibro and providing your feeder's device_id.

The device_id should be your specific dry food feeder's device ID. The easiest way to find it is by opening the device in Home Assistant and checking the device URL.

Minimum PetLibro Configuration

type: custom:dispenser-schedule-card
device:
  type: petlibro
  device_id: 3eec2118e5895c302f33ba8d0e14a80a

Recommended PetLibro Configuration

This example adds support for toggling today's feeding schedule on or off from the card.

type: custom:dispenser-schedule-card
device:
  type: petlibro
  device_id: 3eec2118e5895c302f33ba8d0e14a80a
  switch:
    state_entity: binary_sensor.jet_s_feeder_today_s_feeding_schedule
    off_button: button.jet_s_feeder_disable_all_plans_today
    on_button: button.jet_s_feeder_enable_all_plans_today

Replace the device_id, binary_sensor, and button entities with the ones from your own PetLibro feeder.


Screenshots

Includes the following examples:

  • Full schedule view for today
  • Toggle support for enabling/disabling today's schedule
  • Skipping today's remaining feeds
  • Skipping, disabling, deleting, and editing individual entries
  • Adding new scheduled feeds

Full Schedule View

image

Toggle Schedule On/Off

  • This can be configured to control only today's schedule instead of the full schedule.
image

Skip Today's Remaining Feeds

Disabling the schedule skips all remaining feeds for today (excluding feeds that have already occurred).

image

Manage Schedule Entries

Supports skipping, disabling, deleting, and editing individual entries.

image

Edit Schedule Entry

image

Schedule Limits

Supports adding feeds to the schedule (maximum of 10 entries, limited by PetLibro).

image

Add Scheduled Feed

image

Alternative: Markdown Card (Legacy View)

For users who previously used the custom markdown card created by @yuejon, you can continue using a similar layout with the updated PetLibro schedule format.

This version also supports displaying disabled feeds.

image
```yaml type: markdown title: Jet's Feeding Schedule content: >- {% set schedule = state_attr('binary_sensor.jet_s_feeder_feeding_schedule', 'schedule') or [] %} {% for plan in schedule %} {% if plan.today == true %} {% if plan.enabled == false %} {% else %} {% endif %} {% endif %} {% endfor %}
Meal Time Amount Recurring Status
{{ plan.label }} {{ plan.time }} {{ plan.amount_g }}g
{{ plan.label }} {{ plan.time }} {{ plan.amount_g }}g {% if plan.recurring == true %} {% else %} {% endif %} {% if plan.state == 'dispensed' %} {% elif plan.state == 'to_be_skipped' %} {% elif plan.state == 'skipped' %} {% elif plan.state == 'pending' %} {% elif plan.state == 'unknown' %} {% else %} {% endif %}
```

Replace binary_sensor.jet_s_feeder_feeding_schedule with your own feeder's binary sensor.

Configuration

Main Options

Option Required Description
device Device configuration
editable always, toggle, or never
unit_of_measurement Label for feed amount
alternate_unit Secondary unit conversion
display Customize states and UI

Device Configuration

Option Required Description
type xiaomi-smart-feeder, xiaomi-smart-feeder-2, petlibro, or custom
entity Sensor containing schedule data (required for some device types, e.g. Xiaomi)
device_id Device ID (required for petlibro devices)
switch Switch configuration (entity or buttons depending on device type)
actions Add/edit/remove/toggle services

Custom Display

You can override labels, colors, and icons for statuses:

display:
  failed:
    color: var(--success-color)
    label: Task failed successfully
  My Custom State:
    color: hotpink
    icon: mdi:scale

Requirements

  • Home Assistant with Lovelace UI
  • Home Assistant version 2026.4.0 or newer
  • A compatible feeder integration (e.g., ESPHome or Xiaomi)

Note: For v0.7.0 and newer, the device: configuration block is required.


Credits

Created by Cristian Chelu.

PetLibro integration support and contributions by C4-Dimitri.

Original markdown card concept by yuejon.