{ "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;" ] } ] } ] } ] } }