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>
1451 lines
71 KiB
JSON
1451 lines
71 KiB
JSON
{
|
|
"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;"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
} |