Files
snmp-scanner/zabbix_template_xerox_color.yaml
cproudlock 389e620261 Initial commit: SNMP scanner and Zabbix template generator
Tools for printer discovery and monitoring:
- snmp_scanner.py: SNMP-based printer discovery
- generate_printer_templates.py: Generate Zabbix templates
- analyze_supplies.py: Analyze printer supply levels
- extract_summary.py: Extract printer data summaries

Includes Zabbix templates for:
- HP Color/Mono printers
- HP DesignJet T1700
- Xerox Color/Mono/Enterprise printers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 13:52:21 -05:00

925 lines
52 KiB
YAML

zabbix_export:
version: '7.4'
template_groups:
- uuid: 3cd4e8d0b828464e8f4b3becf13a9dbd
name: Printers
templates:
- uuid: b642a0ea839c4027a7e6a52a245c3451
template: Xerox VersaLink - Color
name: Xerox VersaLink - Color
description: Xerox VersaLink Color multifunction printers
groups:
- name: Printers
items:
- uuid: f7107cc25a854f6fb68e9b2c861cc421
name: Printer Model
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.25.3.2.1.3.1]
key: printer.model
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Printer Model
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle hex-encoded SNMP strings\n// Try multiple approaches to convert hex to ASCII\n\n// First, check if it looks like hex (with spaces, newlines, or other separators)\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n // Extract all hex pairs (2 characters)\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n // Only keep printable ASCII (0x20-0x7E)\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n return result;\n }\n }\n}\n\n// Fallback: Remove non-printable characters\nreturn value.replace(/[^\\x20-\\x7E]/g, '');"
- uuid: daba1e575ed04f31b7bcf9b453cd4e6c
name: Printer Hostname
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.1.5.0]
key: printer.hostname
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Printer Hostname
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle hex-encoded SNMP strings\n// Try multiple approaches to convert hex to ASCII\n\n// First, check if it looks like hex (with spaces, newlines, or other separators)\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n // Extract all hex pairs (2 characters)\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n // Only keep printable ASCII (0x20-0x7E)\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n return result;\n }\n }\n}\n\n// Fallback: Remove non-printable characters\nreturn value.replace(/[^\\x20-\\x7E]/g, '');"
- uuid: d094a9080b214036abc973111d6dd8ff
name: Printer Serial Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.5.1.1.17.1]
key: printer.serial
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Printer Serial Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle hex-encoded SNMP strings\n// Try multiple approaches to convert hex to ASCII\n\n// First, check if it looks like hex (with spaces, newlines, or other separators)\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n // Extract all hex pairs (2 characters)\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n // Only keep printable ASCII (0x20-0x7E)\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n return result;\n }\n }\n}\n\n// Fallback: Remove non-printable characters\nreturn value.replace(/[^\\x20-\\x7E]/g, '');"
- uuid: f72c5fccc0274c1598df4c93fd7ee3e3
name: System Location
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.1.6.0]
key: printer.location
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: System Location
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle hex-encoded SNMP strings\n// Try multiple approaches to convert hex to ASCII\n\n// First, check if it looks like hex (with spaces, newlines, or other separators)\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n // Extract all hex pairs (2 characters)\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n // Only keep printable ASCII (0x20-0x7E)\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n return result;\n }\n }\n}\n\n// Fallback: Remove non-printable characters\nreturn value.replace(/[^\\x20-\\x7E]/g, '');"
- uuid: d76926198de641309eccc0b46f5e424d
name: Black Toner Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.1]
key: printer.toner.black.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Black Toner Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: 31b5eeb9e1d44f498bb7f0dd66c668e3
name: Black Toner Current
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.9.1.1]
key: printer.toner.black.current
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Black Toner Current
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: a9f68b277d794eb5861b9586c06bec4d
name: Black Toner Max
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.8.1.1]
key: printer.toner.black.max
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Black Toner Max
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 2d2a13236f2d4a4c820102f1ebd473c2
name: Black Toner Level
type: CALCULATED
key: printer.toner.black
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
params: round((last(//printer.toner.black.current)/last(//printer.toner.black.max))*100,0)
description: Black Toner Level
tags:
- tag: component
value: supplies
- tag: type
value: level
- tag: color
value: black
units: '%'
triggers:
- uuid: 79797eefe8004698b02d45aee88d2f46
expression: last(/Xerox VersaLink - Color/printer.toner.black)<20 and length(last(/Xerox VersaLink - Color/printer.toner.black.part))>0
name: 'Black Toner Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: WARNING
tags:
- tag: scope
value: availability
- uuid: 97a49eb30be44c449ad15236c3a2292f
expression: last(/Xerox VersaLink - Color/printer.toner.black)<10 and length(last(/Xerox VersaLink - Color/printer.toner.black.part))>0
name: 'Black Toner Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: b4b21d5261e1493586a87d4a737b83ae
name: Yellow Toner Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.2]
key: printer.toner.yellow.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Yellow Toner Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: 52631b827a7947329514736e841f3ffb
name: Yellow Toner Current
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.9.1.2]
key: printer.toner.yellow.current
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Yellow Toner Current
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 3e3471b5a153410a93043806d141baa2
name: Yellow Toner Max
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.8.1.2]
key: printer.toner.yellow.max
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Yellow Toner Max
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 9d16978ccef6495e8a5c3c4135df15e0
name: Yellow Toner Level
type: CALCULATED
key: printer.toner.yellow
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
params: round((last(//printer.toner.yellow.current)/last(//printer.toner.yellow.max))*100,0)
description: Yellow Toner Level
tags:
- tag: component
value: supplies
- tag: type
value: level
- tag: color
value: yellow
units: '%'
triggers:
- uuid: 70a7e1c08a394f9bad35f851bc2e9b0a
expression: last(/Xerox VersaLink - Color/printer.toner.yellow)<20 and length(last(/Xerox VersaLink - Color/printer.toner.yellow.part))>0
name: 'Yellow Toner Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: WARNING
tags:
- tag: scope
value: availability
- uuid: 1e5d6d55cb894bb1a4c30a1810e69cb5
expression: last(/Xerox VersaLink - Color/printer.toner.yellow)<10 and length(last(/Xerox VersaLink - Color/printer.toner.yellow.part))>0
name: 'Yellow Toner Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: 46add5511ed049a6987e4383f4744683
name: Magenta Toner Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.3]
key: printer.toner.magenta.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Magenta Toner Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: ce99e1d2f0784fe9ab2b935277b2b602
name: Magenta Toner Current
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.9.1.3]
key: printer.toner.magenta.current
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Magenta Toner Current
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 045b02be84c64edfa6371195073c7548
name: Magenta Toner Max
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.8.1.3]
key: printer.toner.magenta.max
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Magenta Toner Max
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: f0f5ee2d31e54cdebdfbca234d344af7
name: Magenta Toner Level
type: CALCULATED
key: printer.toner.magenta
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
params: round((last(//printer.toner.magenta.current)/last(//printer.toner.magenta.max))*100,0)
description: Magenta Toner Level
tags:
- tag: component
value: supplies
- tag: type
value: level
- tag: color
value: magenta
units: '%'
triggers:
- uuid: 961f014b9e2941e4bf497cc07e0433ac
expression: last(/Xerox VersaLink - Color/printer.toner.magenta)<20 and length(last(/Xerox VersaLink - Color/printer.toner.magenta.part))>0
name: 'Magenta Toner Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: WARNING
tags:
- tag: scope
value: availability
- uuid: 8101c478181547848351b9584aa8c5d8
expression: last(/Xerox VersaLink - Color/printer.toner.magenta)<10 and length(last(/Xerox VersaLink - Color/printer.toner.magenta.part))>0
name: 'Magenta Toner Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: e6995a3e91b748cca3aafea261c5dfdb
name: Cyan Toner Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.4]
key: printer.toner.cyan.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Cyan Toner Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: 7aa03745aedb4dd094fd3fd891d105bd
name: Cyan Toner Current
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.9.1.4]
key: printer.toner.cyan.current
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Cyan Toner Current
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 61cd61ec69dc443db8baa0c6fbacd49b
name: Cyan Toner Max
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.8.1.4]
key: printer.toner.cyan.max
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Cyan Toner Max
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 99aa1d37060045bdb1f1b71d11a58209
name: Cyan Toner Level
type: CALCULATED
key: printer.toner.cyan
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
params: round((last(//printer.toner.cyan.current)/last(//printer.toner.cyan.max))*100,0)
description: Cyan Toner Level
tags:
- tag: component
value: supplies
- tag: type
value: level
- tag: color
value: cyan
units: '%'
triggers:
- uuid: ad2d9b2805af40a180c4be0e2af1e4be
expression: last(/Xerox VersaLink - Color/printer.toner.cyan)<20 and length(last(/Xerox VersaLink - Color/printer.toner.cyan.part))>0
name: 'Cyan Toner Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: WARNING
tags:
- tag: scope
value: availability
- uuid: a3baaeec40a94734a1caa8a5acdb9bb2
expression: last(/Xerox VersaLink - Color/printer.toner.cyan)<10 and length(last(/Xerox VersaLink - Color/printer.toner.cyan.part))>0
name: 'Cyan Toner Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: 13a5a1cfbe4d4acdb76cf2ac824a7558
name: Waste Cartridge Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.5]
key: printer.waste.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Waste Cartridge Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: 8ef52118a55f4ab8b3ffc33a6568584f
name: Waste Cartridge Level
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.9.1.5]
key: printer.waste.level
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Waste Cartridge Level
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
units: '%'
triggers:
- uuid: 1303b15de2c444f297476f0ac76814ca
expression: last(/Xerox VersaLink - Color/printer.waste.level)>80 and length(last(/Xerox VersaLink - Color/printer.waste.part))>0
name: 'Waste Cartridge Level is high on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: WARNING
tags:
- tag: scope
value: availability
- uuid: 9c0e8ebd1c8144c7b370c7a48845532c
expression: last(/Xerox VersaLink - Color/printer.waste.level)>90 and length(last(/Xerox VersaLink - Color/printer.waste.part))>0
name: 'Waste Cartridge Level is high on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: 948e14983e8f4118813dc71ecd71fa07
name: Black Drum Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.6]
key: printer.drum.black.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Black Drum Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: 2e6e9de29ab041d6bb76db2805899c70
name: Black Drum Current
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.9.1.6]
key: printer.drum.black.current
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Black Drum Current
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: fc814174ee7349239e18616b77e3d48b
name: Black Drum Max
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.8.1.6]
key: printer.drum.black.max
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Black Drum Max
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 48873ffb49724bdf9579adb2da0e5cdb
name: Black Drum Level
type: CALCULATED
key: printer.drum.black
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
params: round((last(//printer.drum.black.current)/last(//printer.drum.black.max))*100,0)
description: Black Drum Level
tags:
- tag: component
value: supplies
- tag: type
value: level
units: '%'
triggers:
- uuid: a26f322ae0a043b9bbabb779221b81bf
expression: last(/Xerox VersaLink - Color/printer.drum.black)<20 and length(last(/Xerox VersaLink - Color/printer.drum.black.part))>0
name: 'Black Drum Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: WARNING
tags:
- tag: scope
value: availability
- uuid: 278f30be2a40424dbc3af0be623c3a37
expression: last(/Xerox VersaLink - Color/printer.drum.black)<10 and length(last(/Xerox VersaLink - Color/printer.drum.black.part))>0
name: 'Black Drum Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: 09cd943b26c34c659a864d15fcaa1774
name: Yellow Drum Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.7]
key: printer.drum.yellow.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Yellow Drum Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: 4425c4cd54404217b876de974d417f97
name: Yellow Drum Current
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.9.1.7]
key: printer.drum.yellow.current
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Yellow Drum Current
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 3607ac3861f64384a6296b70ff3bfdf8
name: Yellow Drum Max
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.8.1.7]
key: printer.drum.yellow.max
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Yellow Drum Max
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: d0afd17fec7d40188aa14f260d73fa13
name: Yellow Drum Level
type: CALCULATED
key: printer.drum.yellow
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
params: round((last(//printer.drum.yellow.current)/last(//printer.drum.yellow.max))*100,0)
description: Yellow Drum Level
tags:
- tag: component
value: supplies
- tag: type
value: level
units: '%'
triggers:
- uuid: e5767395d8e2439aaa24bd8700d2467a
expression: last(/Xerox VersaLink - Color/printer.drum.yellow)<20 and length(last(/Xerox VersaLink - Color/printer.drum.yellow.part))>0
name: 'Yellow Drum Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: WARNING
tags:
- tag: scope
value: availability
- uuid: 73b6ac5dddc9444da35e05053332ae93
expression: last(/Xerox VersaLink - Color/printer.drum.yellow)<10 and length(last(/Xerox VersaLink - Color/printer.drum.yellow.part))>0
name: 'Yellow Drum Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: e856ccb45cac41adafc2edcb67098dbe
name: Magenta Drum Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.8]
key: printer.drum.magenta.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Magenta Drum Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: 06f01b9113214dcd82aced4b448740b6
name: Magenta Drum Current
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.9.1.8]
key: printer.drum.magenta.current
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Magenta Drum Current
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 21697c90516b4c3c9bf738fba4435823
name: Magenta Drum Max
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.8.1.8]
key: printer.drum.magenta.max
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Magenta Drum Max
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 6da2c8a87be14926b8d1006bc3f61d7e
name: Magenta Drum Level
type: CALCULATED
key: printer.drum.magenta
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
params: round((last(//printer.drum.magenta.current)/last(//printer.drum.magenta.max))*100,0)
description: Magenta Drum Level
tags:
- tag: component
value: supplies
- tag: type
value: level
units: '%'
triggers:
- uuid: 13ac161870e5470a97e7da6963972967
expression: last(/Xerox VersaLink - Color/printer.drum.magenta)<20 and length(last(/Xerox VersaLink - Color/printer.drum.magenta.part))>0
name: 'Magenta Drum Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: WARNING
tags:
- tag: scope
value: availability
- uuid: de333dcd0cf046d1a5109334de1f014c
expression: last(/Xerox VersaLink - Color/printer.drum.magenta)<10 and length(last(/Xerox VersaLink - Color/printer.drum.magenta.part))>0
name: 'Magenta Drum Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: cb41e58df07e4eb2bf11fcaa6cf7b390
name: Cyan Drum Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.9]
key: printer.drum.cyan.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Cyan Drum Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: d4d0f2562edc4f73aae2efcacc159137
name: Cyan Drum Current
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.9.1.9]
key: printer.drum.cyan.current
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Cyan Drum Current
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: 90e0d130a32d47fa81fce7adc54a661d
name: Cyan Drum Max
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.8.1.9]
key: printer.drum.cyan.max
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
description: Cyan Drum Max
tags:
- tag: component
value: printer
- tag: type
value: raw
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Handle SNMP unknown values (-3, -2, etc.)\n// Per RFC 3805: -1 = other, -2 = unknown, -3 = unknown\n// Convert to 0 to indicate empty/problem state\nvar numValue = parseInt(value);\nif (numValue < 0) {\n return '0';\n}\nreturn value;"
- uuid: fa59b63b6fae47a190ae838200069d79
name: Cyan Drum Level
type: CALCULATED
key: printer.drum.cyan
delay: 1h
history: 90d
trends: 365d
value_type: FLOAT
params: round((last(//printer.drum.cyan.current)/last(//printer.drum.cyan.max))*100,0)
description: Cyan Drum Level
tags:
- tag: component
value: supplies
- tag: type
value: level
units: '%'
triggers:
- uuid: 4540db9127f4454aa6d1c084b87139aa
expression: last(/Xerox VersaLink - Color/printer.drum.cyan)<20 and length(last(/Xerox VersaLink - Color/printer.drum.cyan.part))>0
name: 'Cyan Drum Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: WARNING
tags:
- tag: scope
value: availability
- uuid: e188954e41a242e39a9f262ed82eaaee
expression: last(/Xerox VersaLink - Color/printer.drum.cyan)<10 and length(last(/Xerox VersaLink - Color/printer.drum.cyan.part))>0
name: 'Cyan Drum Level is low on {{HOST.NAME}}. Current level: {{ITEM.LASTVALUE}}. Replacement part: {{ITEM.LASTVALUE2}} (See compatibility notes for potential alternatives)'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: cd898e728e4e4b41b34edc2b23d22d6f
name: Transfer Roller Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.10]
key: printer.transfer.roller.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Transfer Roller Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: 6961fd351bf440efb54c3ac7bc2c1a84
name: Transfer Belt Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.11]
key: printer.transfer.belt.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Transfer Belt Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"
- uuid: 3bc8a2cbb96b4b8185240e9ffeb79a83
name: Fuser Part Number
type: SNMP_AGENT
snmp_oid: get[1.3.6.1.2.1.43.11.1.1.6.1.12]
key: printer.fuser.part
delay: 1h
history: 90d
trends: 0d
value_type: TEXT
description: Fuser Part Number
tags:
- tag: component
value: printer
- tag: type
value: info
preprocessing:
- type: JAVASCRIPT
parameters:
- "// Clean up part number by removing serial numbers and firmware\n// Handles formats like:\n// \"Toner Cartridge;SNACC7952D80730000\" -> \"Toner Cartridge\"\n// \"Black Cartridge HP 58A (CF258A);FW:V4.23.3\" -> \"Black Cartridge HP 58A (CF258A)\"\n// \"Drum Cartridge, PN 101R00554;SN2600A90008100000\" -> \"Drum Cartridge, PN 101R00554\"\n\n// First, apply hex conversion if needed\nvar hexPattern = /^[0-9A-Fa-f\\s]+$/;\nif (hexPattern.test(value) && value.length > 4) {\n var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);\n if (hexBytes && hexBytes.length > 0) {\n var result = '';\n for (var i = 0; i < hexBytes.length; i++) {\n var code = parseInt(hexBytes[i], 16);\n if (code >= 32 && code <= 126) {\n result += String.fromCharCode(code);\n }\n }\n if (result.length > 0) {\n value = result;\n }\n }\n}\n\n// Remove serial numbers (;SN followed by anything)\nvalue = value.replace(/;SN[^;]*/g, '');\n\n// Remove firmware info (;FW: or ;FW\
\ followed by anything)\nvalue = value.replace(/;FW[^;]*/g, '');\n\n// Remove any other semicolon-separated metadata\n// (but keep the main description before first semicolon)\nvar parts = value.split(';');\nvalue = parts[0];\n\n// Trim whitespace\nvalue = value.trim();\n\n// For Xerox printers reporting just \"Toner Cartridge\" without PN,\n// try to add known part numbers (must match model-specific logic)\n// This is handled by triggers showing compatibility notes instead\n\nreturn value;"