UnDPs for printer toner, page count, and supply kit levels

This .UnDP file contains seven UnDPs that I created to monitor the printers in our network.  It should be able to monitor any printer that is compliant with the RFC1759 MIB, and as far as I know many (most?) printers are.  That being said while we use it with a mix of HP and Sharp printers, your mileage may vary.  It seems to work best with HP printers in particular, while Sharp's seemingly often lack the capability to measure the remaining toner though SNMP.  I made one set of UnDPs specifically for the black toner so that you can have it gauged in the printer's view if you want, but otherwise the intended use is for graphing via a Universal Device Poller Chart resource on the printer's view.

Update 1 (2013/9/27): I found within a few hours after posting this that HP P4015 return their toner and supply levels as some sort of raw value, whereas every other printer I've tried returns percentages.  Thus I added two more UnDPs to get the maximum capacities, and two transform UnDPs to properly convert the two (level and capacity) UnDPs into an actual percentage regardless of what the incoming format is.

Update 2 (2014/2/5): [Download was not changed.]  Included some information on how these UnDPs can actually be used.  Added some text to the beginning explaining their usage a bit more.  Added text to emphasize that the Percentage UnDPs require that the corresponding Level and MaxCapacity UnDPs are assigned to the node as well in order to function.

Summary:


BlackTonerLevel: Returns the current black toner level, if the printer is capable of measuring/returning it.  This can be either a percentage of the maximum, or some sort of raw value.

BlackTonerMaxCapacity: Returns the maximum black toner capacity, if the printer is capable of measuring/returning it.  This can be either a percentage representation of the maximum (i.e. 100), or some sort of raw value.

BlackTonerPercentage: Transforms the two prior UnDPs into an actual percentage, as I've found some printers give raw data for them that must be transformed before it can be made useful.  We use this to gauge the remaining black toner on the printer's node page.  Requires that the printer's node also has the BlackTonerLevel and BlackTonerMaxCapacity UnDPs assigned, as it gets its values from those two UnDPs.

LifetimePageCount: Returns the current lifetime page count of the printer.  We use this to show a graph of the page count, which is useful for both trending and to get current page counts to our hardware support vendor.

SuppliesLevel: Returns the current levels of all toner cartridges as well as other information such as on maintenance kits, where available.

SuppliesMaxCapacity: Returns the maximum capacities of all toner cartridges as well as other information such as on maintenance kits, where available.

SuppliesPercentage: Transforms the two prior UnDPs into an actual percentage, as I've found some printers give raw data for them that must be transformed before it can be made useful.  We use this to graph all supply levels to allow for historical analysis and loose predictions on when we may need to procure replacement supply cartridges.  Requires that the printer's node also has the SuppliesLevel and SuppliesMaxCapacity UnDPs assigned, as it gets its values from those two UnDPs.



Detailed Info:


BlackTonerLevel

OID: 1.3.6.1.2.1.43.11.1.1.9.1.1

Get Type: GET

Description: The current level if this supply is a container ; the remaining space if this supply is a receptacle. If this supply container/receptacle can reliably sense this value, the value is sensed by the printer and is read-only ; otherwise , the value may be written (by a Remote Contol Panel or a Management Application). The value (-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown. A value of (-3) means that the printer knows that there is some supply/remaining space, respectively.

BlackTonerMaxCapacity

OID: 1.3.6.1.2.1.43.11.1.1.8.1.1

Get Type: GET

Description: The maximum capacity of this supply container/receptacle expressed in SupplyUnit. If this supply container/receptacle can reliably sense this value , the value is sensed by the printer and is read-only; otherwise , the value may be written (by a Remote Contol Panel or a Management Application). The value (-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown.

BlackTonerPercentage

Transform

Formula: ({BlackTonerLevel}/{BlackTonerMaxCapacity})*100

Description: Takes the BlackTonerLevel and BlackTonerMaxCapacity UnDPs and transforms their values into an actual percentage, regardless if the original values are in percentage or raw form.

LifetimePageCount

OID: 1.3.6.1.2.1.43.10.2.1.4.1.1

Get Type: GET

Description: The count of the number of units of measure counted during the life of printer using units of measure as specified by CounterUnit.

SuppliesLevel

OID: 1.3.6.1.2.1.43.11.1.1.9

Get Type: GET TABLE

Description: The current level if this supply is a container ; the remaining space if this supply is a receptacle. If this supply container/receptacle can reliably sense this value , the value is sensed by the printer and is read-only ; otherwise , the value may be written (by a Remote Contol Panel or a Management Application). The value (-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown. A value of (-3) means that the printer knows that there is some supply/remaining space, respectively.

SuppliesMaxCapacity

OID: 1.3.6.1.2.1.43.11.1.1.8

Get Type: GET TABLE

Description: The maximum capacity of this supply container/receptacle expressed in SupplyUnit. If this supply container/receptacle can reliably sense this value , the value is sensed by the printer and is read-only ; otherwise , the value may be written (by a Remote Contol Panel or a Management Application). The value (-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown.

SuppliesPercentage

Transform

Formula: ({SuppliesLevel}/{SuppliesMaxCapacity})*100

Description: Takes the SuppliesLevel and SuppliesMaxCapacity UnDPs and transforms their values into an actual percentage, regardless if the original values are in percentage or raw form.

Usage Info:


To make use of these UnDPs you must first assign them to a printer node.  Once assigned, I would recommend adding the Universal Device Poller Status resource to the view you use for your printers so that you can see that the UnDPs are properly assigned and what their values are:

1.png


To graph them, you can add a Universal Device Poller Chart to the view and make it use the SuppliesPercentage UnDP.  Once you've done so you can also pick and choose which of the underlying supplies you wish to graph:

2.png

This results in a graph that looks like the following:

3.png