Probe each value in an SNMP leaf node

I am trying to make generic Cisco probes for Fan state, PSU state, etc… When I do an SNMPWalk of devices to 1.3.6.1.4.1.9.9.13.1.4.1.3, i can see the status of each system fan, but they do not correlate directly, e.g. Switch#1, Fan#1 on one device is 3.1033, on another it is 3.1034, and these values seem to change on reboot as well. Additionally, some devices have more fans than others, and the descriptions do not correlate.

What I would like to do, is create a probe or function that will create an array from all items in a leaf node, then poll the values of each OID in that array to compare to the string “normal (1)” for example, and alert if any of the statuses are not equal to the string.

Ideally, this would be one probe that would include the matching ciscoEnvMonFanStatusDescr value in the notification, so I don’t get a separate alert for each fan when the whole switch goes down, and when a fan fails, I can be alerted immediately what particular fan is causing the issue.

I am imagining it working like this, but I am having several issues with the syntax of creating functions and probes, I am not a programmer by any means:

Function:
Creates an array of all elements under 1.3.6.1.4.1.9.9.13.1.4.1.3, the ciscoEnvMonFanSate leaf node.
Compares the value of each OID in that array to a known good state, “normal (1)”.
Returns a “Bad” value when any of the values are not equal to the defined string.

Probe:
Runs the function and alerts, preferably with the corresponding ciscoEnvMonFanStatusDescr of the array element that is failed.

Is this the proper approach, and is this even possible with the current version of The Dude?

I have been trying various things for hours and am not making any progress, any help would be appreciated.

Never mind, I’m stupid.3560 and 3750 switches use iso.org.dod.internet.private.enterprises.cisco.workgroup.ciscoStackMIB.chassisGrp.chassisFanStatus.0