The cups sensor platform uses the open source printing system CUPS to show details about your printers, including the ink levels. It can obtain the information using a CUPS server or by communicating directly with the printer with the Internet Printing Protocol.


You will need to install the python3-dev or python3-devel package and the development files for CUPS (libcups2-dev orcups-devel) on your system manually (e.g., sudo apt-get install python3-dev libcups2-dev or sudo dnf -y install python3-devel cups-devel) along with a compiler (gcc). This integration doesn’t work out-of-the-box in a container-based setup.

To set up the sensor the “Queue Name” of the printer is needed. The fastest way to get it, is to visit the CUPS web interface at “http://[IP ADDRESS PRINT SERVER]:631” and go to “Printers”.


To enable the CUPS sensor, add the following lines to your configuration.yaml:

# Example configuration.yaml entry
  - platform: cups
      - C410
      - C430

Configuration Variables

printers list Required

List of printers to add. If you’re not using a CUPS server, add your “Printer Name” here.

host string (Optional, default:

The IP address of the CUPS print server or of the printer.

port integer (Optional, default: 631)

The port number of the CUPS print server or of the printer.

is_cups_server boolean (Optional, default: true)

Set true if you want to use a CUPS print server, set false otherwise.


Default configuration for an IPP printer:

# Example configuration.yaml entry for an IPP printer
  - platform: cups
    host: PRINTER_IP
    is_cups_server: false
      - ipp/print