APC NMC3 probes not discovered

When temmperature and/or temperature/humidity probes are connected to a APC NMC3 these are not discovered by LibreNMS. When connected to a NMC2 it works as expected.

When running discovery.php for a NMC3 host I found these lines in the output:

Humidity: SNMP[e[0;36m’/usr/bin/snmpbulkwalk’ ‘-v2c’ ‘-c’ ‘COMMUNITY’ ‘-OQUs’ ‘-m’ ‘PowerNet-MIB’ ‘-M’ ‘/opt/librenms/mibs:/opt/librenms/mibs/apc’ ‘udp:HOSTNAME:161’ 'iemConfigProbesTable’e[0m]
iemConfigProbesTable = No Such Object available on this agent at this OID

SNMP[e[0;36m’/usr/bin/snmpbulkwalk’ ‘-v2c’ ‘-c’ ‘COMMUNITY’ ‘-OQUs’ ‘-m’ ‘PowerNet-MIB’ ‘-M’ ‘/opt/librenms/mibs:/opt/librenms/mibs/apc’ ‘udp:HOSTNAME:161’ 'iemStatusProbesTable’e[0m]
iemStatusProbesTable = No Such Object available on this agent at this OID

.SNMP[e[0;36m’/usr/bin/snmpbulkwalk’ ‘-v2c’ ‘-c’ ‘COMMUNITY’ ‘-OQUse’ ‘-m’ ‘PowerNet-MIB’ ‘-M’ ‘/opt/librenms/mibs:/opt/librenms/mibs/apc’ ‘udp:HOSTNAME:161’ 'iemConfigProbesTable’e[0m]
iemConfigProbesTable = No Such Object available on this agent at this OID

SNMP[e[0;36m’/usr/bin/snmpbulkwalk’ ‘-v2c’ ‘-c’ ‘COMMUNITY’ ‘-OQUse’ ‘-m’ ‘PowerNet-MIB’ ‘-M’ ‘/opt/librenms/mibs:/opt/librenms/mibs/apc’ ‘udp:HOSTNAME:161’ 'iemStatusProbesTable’e[0m]
iemStatusProbesTable = No Such Object available on this agent at this OID

On a NMC2 values are returned, but not on a NMC3.

When using universalInputOutput instead of iemConfigProbesTable and iemStatusProbesTable values of the probes are returned (tested this on NMC2 and NMC3)

snmpwalk -v2c -c public -OQUs -m PowerNet-MIB -M /opt/librenms/mibs:/opt/librenms/mibs/apc universalInputOutput
uioSensorStatusTableSize.0 = 1
uioSensorStatusPortID.1.1 = 1
uioSensorStatusSensorID.1.1 = 1
uioSensorStatusSensorName.1.1 = “Port 1 Temp 1”
uioSensorStatusSensorLocation.1.1 = “Port 1”
uioSensorStatusTemperatureDegF.1.1 = 81
uioSensorStatusTemperatureDegC.1.1 = 27
uioSensorStatusHumidity.1.1 = -1
uioSensorStatusViolationStatus.1.1 = 0
uioSensorStatusAlarmStatus.1.1 = uioNormal
uioSensorStatusCommStatus.1.1 = commsOK
uioSensorConfigTableSize.0 = 1
uioSensorConfigPortID.1.1 = 1
uioSensorConfigSensorID.1.1 = 1
uioSensorConfigSensorName.1.1 = “Port 1 Temp 1”
uioSensorConfigSensorLocation.1.1 = “Port 1”
uioSensorConfigMinTemperatureThreshold.1.1 = 0
uioSensorConfigLowTemperatureThreshold.1.1 = 10
uioSensorConfigHighTemperatureThreshold.1.1 = 40
uioSensorConfigMaxTemperatureThreshold.1.1 = 60
uioSensorConfigTemperatureHysteresis.1.1 = 0
uioSensorConfigMinTemperatureEnable.1.1 = disabled
uioSensorConfigLowTemperatureEnable.1.1 = disabled
uioSensorConfigHighTemperatureEnable.1.1 = disabled
uioSensorConfigMaxTemperatureEnable.1.1 = disabled
uioSensorConfigMinHumidityThreshold.1.1 = -1
uioSensorConfigLowHumidityThreshold.1.1 = -1
uioSensorConfigHighHumidityThreshold.1.1 = -1
uioSensorConfigMaxHumidityThreshold.1.1 = -1
uioSensorConfigHumidityHysteresis.1.1 = -1
uioSensorConfigMinHumidityEnable.1.1 = disabled
uioSensorConfigLowHumidityEnable.1.1 = disabled
uioSensorConfigHighHumidityEnable.1.1 = disabled
uioSensorConfigMaxHumidityEnable.1.1 = disabled

Discovery
https://p.libren.ms/view/714f352a

Poller
https://p.libren.ms/view/57e65f61

SNMPBULKWALK:
https://p.libren.ms/view/1e4178ff

Backup and replace /opt/librenms/includes/definitions/discovery/apc.yaml with this file:

https://p.libren.ms/view/53680828

and then force rediscovery of your device. NMC3 Temperature and Humidity sensors should be immediately included for polling.