Files
snmp-scanner/zabbix_template_xerox_enterprise.json
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

1414 lines
71 KiB
JSON

{
"zabbix_export": {
"version": "7.4",
"template_groups": [
{
"uuid": "3cd4e8d0b828464e8f4b3becf13a9dbd",
"name": "Printers"
}
],
"templates": [
{
"uuid": "c2e2302205ce4d249e7edfe6db933ee9",
"template": "Xerox Enterprise - Color",
"name": "Xerox Enterprise - Color",
"description": "Xerox EC8036, AltaLink C8xxx enterprise color printers",
"groups": [
{
"name": "Printers"
}
],
"items": [
{
"uuid": "d03e698d55fc45d191884bbdf7810be1",
"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": "4e7860eb0b2047ac919bd4a097982eca",
"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": "d6aff78eb5c84fccb4db51612fb72b23",
"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": "7adc5e990d914b6386a631a24d78e86d",
"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": "df2c66eb2cab4842908c61a853a8fa42",
"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": "5711ef102f0d425aa56dea64fb513fc5",
"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": "5cc49eed0ed54341b1b3219becd3defb",
"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": "6e5ae3d685a44b80ae8cc46a5317dd89",
"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": "f29c9298c8de4b00b1ad9afff3a26b29",
"expression": "last(/Xerox Enterprise - Color/printer.toner.black)<20 and length(last(/Xerox Enterprise - 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": "6d9174594b6a45158cbedda71528f045",
"expression": "last(/Xerox Enterprise - Color/printer.toner.black)<10 and length(last(/Xerox Enterprise - 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": "8a5caec5e00a4bbb922d6d5ecec81b84",
"name": "Cyan 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.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": "f1f57074096546e38f06f3a72b49eac1",
"name": "Cyan Toner Current",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.2]",
"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": "5c7fa001b3824adaae4bb329c9d457a3",
"name": "Cyan Toner Max",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.8.1.2]",
"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": "5d5521b20f7446358bcc983548393146",
"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": "9cceff0affe946d2bb479494b5a53856",
"expression": "last(/Xerox Enterprise - Color/printer.toner.cyan)<20 and length(last(/Xerox Enterprise - 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": "d3e2fd3d21384222bbdbeaf7f3a4ddfb",
"expression": "last(/Xerox Enterprise - Color/printer.toner.cyan)<10 and length(last(/Xerox Enterprise - 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": "d5f3c36c00ea46a98db8d55d94ea4877",
"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": "cfb2aa9afdac4888a5b308a36fe691f2",
"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": "fe63cabb3aab41a890680844bc154b8d",
"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": "48f16d55b5b94699b7c130e754780a06",
"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": "86631cefe7c340da8f3d43fbd48675f7",
"expression": "last(/Xerox Enterprise - Color/printer.toner.magenta)<20 and length(last(/Xerox Enterprise - 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": "24d3aa508eec4b33a19151ffbace424c",
"expression": "last(/Xerox Enterprise - Color/printer.toner.magenta)<10 and length(last(/Xerox Enterprise - 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": "5c9f0b5d390f4fbe9fa6eed25484bc91",
"name": "Yellow 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.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": "a59e1595e3b148dc911c33780d96955a",
"name": "Yellow Toner Current",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.4]",
"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": "5e73fae1f51e435884faab2f3bc67918",
"name": "Yellow Toner Max",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.8.1.4]",
"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": "54baecbcfbb347619038285724e22c25",
"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": "4f7e80ea7a3b469f83a27b1940ea64a3",
"expression": "last(/Xerox Enterprise - Color/printer.toner.yellow)<20 and length(last(/Xerox Enterprise - 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": "c2a3e67d116a4f71b4285b6a0179d57c",
"expression": "last(/Xerox Enterprise - Color/printer.toner.yellow)<10 and length(last(/Xerox Enterprise - 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": "8c4813f0619a4c89a5c97c11bed56ffd",
"name": "Drum Cartridge R1 Part Number",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.6.1.5]",
"key": "printer.drum.r1.part",
"delay": "1h",
"history": "90d",
"trends": "0d",
"value_type": "TEXT",
"description": "Drum Cartridge R1 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": "548923c9cd58485194efca4680bde2da",
"name": "Drum Cartridge R1 Level",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.5]",
"key": "printer.drum.r1",
"delay": "1h",
"history": "90d",
"trends": "365d",
"value_type": "FLOAT",
"description": "Drum Cartridge R1 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": "b147995cef044decaa97b143eb039d6a",
"expression": "last(/Xerox Enterprise - Color/printer.drum.r1)<20 and length(last(/Xerox Enterprise - Color/printer.drum.r1.part))>0",
"name": "Drum Cartridge R1 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": "53c3b15d79394f758e1d8b836d796dea",
"expression": "last(/Xerox Enterprise - Color/printer.drum.r1)<10 and length(last(/Xerox Enterprise - Color/printer.drum.r1.part))>0",
"name": "Drum Cartridge R1 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": "45ff64acfd41458a8a12f0992f710c23",
"name": "Drum Cartridge R2 Part Number",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.6.1.6]",
"key": "printer.drum.r2.part",
"delay": "1h",
"history": "90d",
"trends": "0d",
"value_type": "TEXT",
"description": "Drum Cartridge R2 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": "c9039db77e4c4132968c21abe8112b72",
"name": "Drum Cartridge R2 Level",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.6]",
"key": "printer.drum.r2",
"delay": "1h",
"history": "90d",
"trends": "365d",
"value_type": "FLOAT",
"description": "Drum Cartridge R2 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": "2ed60d3a355443dca8be5d7fce0ed5f2",
"expression": "last(/Xerox Enterprise - Color/printer.drum.r2)<20 and length(last(/Xerox Enterprise - Color/printer.drum.r2.part))>0",
"name": "Drum Cartridge R2 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": "6d2ee2c9445340f1b93c12266cb9e10e",
"expression": "last(/Xerox Enterprise - Color/printer.drum.r2)<10 and length(last(/Xerox Enterprise - Color/printer.drum.r2.part))>0",
"name": "Drum Cartridge R2 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": "4875f060efad49e7881975478a3f6ed9",
"name": "Drum Cartridge R3 Part Number",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.6.1.7]",
"key": "printer.drum.r3.part",
"delay": "1h",
"history": "90d",
"trends": "0d",
"value_type": "TEXT",
"description": "Drum Cartridge R3 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": "d21017456aad4c92aca5546af3a7b0f8",
"name": "Drum Cartridge R3 Level",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.7]",
"key": "printer.drum.r3",
"delay": "1h",
"history": "90d",
"trends": "365d",
"value_type": "FLOAT",
"description": "Drum Cartridge R3 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": "a7855fb69aea4988b9dc3dfde7ea3524",
"expression": "last(/Xerox Enterprise - Color/printer.drum.r3)<20 and length(last(/Xerox Enterprise - Color/printer.drum.r3.part))>0",
"name": "Drum Cartridge R3 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": "32b7fe7831d140e3946f47e74e8c88dc",
"expression": "last(/Xerox Enterprise - Color/printer.drum.r3)<10 and length(last(/Xerox Enterprise - Color/printer.drum.r3.part))>0",
"name": "Drum Cartridge R3 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": "53a1563fc0f6455fa1d71513c1587c60",
"name": "Drum Cartridge R4 Part Number",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.6.1.8]",
"key": "printer.drum.r4.part",
"delay": "1h",
"history": "90d",
"trends": "0d",
"value_type": "TEXT",
"description": "Drum Cartridge R4 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": "3a70d28a36df4f068993add946713716",
"name": "Drum Cartridge R4 Level",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.8]",
"key": "printer.drum.r4",
"delay": "1h",
"history": "90d",
"trends": "365d",
"value_type": "FLOAT",
"description": "Drum Cartridge R4 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": "52794d11f96644c08b2e14d628375650",
"expression": "last(/Xerox Enterprise - Color/printer.drum.r4)<20 and length(last(/Xerox Enterprise - Color/printer.drum.r4.part))>0",
"name": "Drum Cartridge R4 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": "ab90cd28b6f6423d914e9455f5927167",
"expression": "last(/Xerox Enterprise - Color/printer.drum.r4)<10 and length(last(/Xerox Enterprise - Color/printer.drum.r4.part))>0",
"name": "Drum Cartridge R4 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": "e2c246f9da8544eba92924b3706ff944",
"name": "Fuser Part Number",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.6.1.9]",
"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;"
]
}
]
},
{
"uuid": "3b5628120c194bfda5c55572c13db316",
"name": "Fuser Level",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.9]",
"key": "printer.fuser",
"delay": "1h",
"history": "90d",
"trends": "365d",
"value_type": "FLOAT",
"description": "Fuser 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": "d79ee4c1ef014b7c81a3f4b9d4a4f2a1",
"expression": "last(/Xerox Enterprise - Color/printer.fuser)<20 and length(last(/Xerox Enterprise - Color/printer.fuser.part))>0",
"name": "Fuser 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": "a268fed950074c46a574b4eb86c208d7",
"expression": "last(/Xerox Enterprise - Color/printer.fuser)<10 and length(last(/Xerox Enterprise - Color/printer.fuser.part))>0",
"name": "Fuser 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": "ee5eeacfd5024775ad40b302811ba2f2",
"name": "Waste Container Part Number",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.6.1.10]",
"key": "printer.waste.part",
"delay": "1h",
"history": "90d",
"trends": "0d",
"value_type": "TEXT",
"description": "Waste Container 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": "90417fd5f0a740b499c8d27943973736",
"name": "Waste Container Level",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.10]",
"key": "printer.waste",
"delay": "1h",
"history": "90d",
"trends": "365d",
"value_type": "FLOAT",
"description": "Waste Container 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": "69cebca1efb3446c8c383465991a80af",
"expression": "last(/Xerox Enterprise - Color/printer.waste)>80 and length(last(/Xerox Enterprise - Color/printer.waste.part))>0",
"name": "Waste Container 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": "0a88c88dd7f3424e948647264e83b6ed",
"expression": "last(/Xerox Enterprise - Color/printer.waste)>90 and length(last(/Xerox Enterprise - Color/printer.waste.part))>0",
"name": "Waste Container 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": "232ac58feeea45299b525cca72effa4a",
"name": "Transfer Belt Cleaner 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 Cleaner 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": "3836d9fa2d674f97a3405162a88f2c25",
"name": "Transfer Belt Cleaner Level",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.11]",
"key": "printer.transfer.belt",
"delay": "1h",
"history": "90d",
"trends": "365d",
"value_type": "FLOAT",
"description": "Transfer Belt Cleaner 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": "7354e1f37e894f05be032edf493e3721",
"expression": "last(/Xerox Enterprise - Color/printer.transfer.belt)<20 and length(last(/Xerox Enterprise - Color/printer.transfer.belt.part))>0",
"name": "Transfer Belt Cleaner 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": "b30fc1c454bc460e9c70e9ac83af48d3",
"expression": "last(/Xerox Enterprise - Color/printer.transfer.belt)<10 and length(last(/Xerox Enterprise - Color/printer.transfer.belt.part))>0",
"name": "Transfer Belt Cleaner 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": "a3619eef02a74c49aecf1b955fe27f27",
"name": "Second Bias Transfer Roll Part Number",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.6.1.12]",
"key": "printer.transfer.roller.part",
"delay": "1h",
"history": "90d",
"trends": "0d",
"value_type": "TEXT",
"description": "Second Bias Transfer Roll 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": "49f8bd6f255049adb329327fbec53e6a",
"name": "Second Bias Transfer Roll Level",
"type": "SNMP_AGENT",
"snmp_oid": "get[1.3.6.1.2.1.43.11.1.1.9.1.12]",
"key": "printer.transfer.roller",
"delay": "1h",
"history": "90d",
"trends": "365d",
"value_type": "FLOAT",
"description": "Second Bias Transfer Roll 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": "0a369a1a8b464ef29337d37b25eda6f7",
"expression": "last(/Xerox Enterprise - Color/printer.transfer.roller)<20 and length(last(/Xerox Enterprise - Color/printer.transfer.roller.part))>0",
"name": "Second Bias Transfer Roll 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": "54af07ea4601435c90b2478881944397",
"expression": "last(/Xerox Enterprise - Color/printer.transfer.roller)<10 and length(last(/Xerox Enterprise - Color/printer.transfer.roller.part))>0",
"name": "Second Bias Transfer Roll 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"
}
]
}
]
}
]
}
]
}
}