Where: src/main/java/org/metricshub/ipmi/core/coding/commands/sdr/record/EntityId.java, DeviceType.java, SensorType.java, ReadingType.java (parseInt), src/main/java/org/metricshub/ipmi/client/runner/GetSensorsRunner.java (buildStates).
What happens: the survey of 2026-10-09 over the lab's management cards (branch fix/decoders) shows that every collection on a mainstream BMC logs several ERROR or WARN lines for values that the IPMI 2.0 specification defines as OEM, chassis-specific or reserved, and that the decoders handle as "invalid":
| BMC |
Log line, per collection |
Specification |
| Dell iDRAC 8 (R630, x3) and iDRAC 6 |
ERROR DeviceType - Invalid value: 0 (x8) |
Table 43-12: 00h and 01h are reserved device types; Dell uses 00h in its FRU locator records |
| Cisco IMC (C240) |
ERROR EntityId - Invalid value: 208 |
Table 43-13: D0h-FFh are OEM System Integrator defined entity IDs |
| Lenovo XCC |
ERROR EntityId - Invalid value: 160, ERROR SensorType - Invalid value: 0 |
A0h-BFh are chassis-specific entity IDs; sensor type 00h is reserved |
| Cisco IMC, Dell iDRAC 8 |
WARN ReadingType - Invalid value: 28675 (7003) for sensor EntityPresence, ... (7005) for sensor ModuleBoard |
Table 42-1: event/reading types 70h-7Fh are OEM; only 7Fh is treated as OEM by GetSensorsRunner |
| HP iLO 4 |
WARN ReadingType - Invalid value: 2054 (806) for sensor Fan, 2584326 (276f06) for sensor Lan |
iLO sets state bits 6 and 7 that the reading type does not define |
The values are not wrong, the library's vocabulary is incomplete, and the ERROR level makes a routine collection look broken (MetricsHub forwards these logs).
Suggested fix:
EntityId: map A0h-BFh to a ChassisSpecific constant and D0h-FFh to OemSystemIntegrator (or keep the raw code on the record), without logging; DeviceType 00h/01h and SensorType 00h to Reserved, without logging.
GetSensorsRunner.buildStates(): treat every event/reading type 70h-7Fh as OEM (0xLL or 0xHHLL state bytes), not only 7Fh.
ReadingType.parseInt(): an offset the type does not define is dropped at DEBUG, not WARN.
Related: #87 (reserved enum values, fixed for the rate unit, modifier unit usage and power restore policy in #143), #121 (logging), #84 (the iDRAC BIOS sensors, whose owner is not the BMC).
Where:
src/main/java/org/metricshub/ipmi/core/coding/commands/sdr/record/EntityId.java,DeviceType.java,SensorType.java,ReadingType.java(parseInt),src/main/java/org/metricshub/ipmi/client/runner/GetSensorsRunner.java(buildStates).What happens: the survey of 2026-10-09 over the lab's management cards (branch
fix/decoders) shows that every collection on a mainstream BMC logs severalERRORorWARNlines for values that the IPMI 2.0 specification defines as OEM, chassis-specific or reserved, and that the decoders handle as "invalid":ERROR DeviceType - Invalid value: 0(x8)00hand01hare reserved device types; Dell uses00hin its FRU locator recordsERROR EntityId - Invalid value: 208D0h-FFhare OEM System Integrator defined entity IDsERROR EntityId - Invalid value: 160,ERROR SensorType - Invalid value: 0A0h-BFhare chassis-specific entity IDs; sensor type00his reservedWARN ReadingType - Invalid value: 28675 (7003) for sensor EntityPresence,... (7005) for sensor ModuleBoard70h-7Fhare OEM; only7Fhis treated as OEM byGetSensorsRunnerWARN ReadingType - Invalid value: 2054 (806) for sensor Fan,2584326 (276f06) for sensor LanThe values are not wrong, the library's vocabulary is incomplete, and the ERROR level makes a routine collection look broken (MetricsHub forwards these logs).
Suggested fix:
EntityId: mapA0h-BFhto aChassisSpecificconstant andD0h-FFhtoOemSystemIntegrator(or keep the raw code on the record), without logging;DeviceType00h/01handSensorType00htoReserved, without logging.GetSensorsRunner.buildStates(): treat every event/reading type70h-7Fhas OEM (0xLLor0xHHLLstate bytes), not only7Fh.ReadingType.parseInt(): an offset the type does not define is dropped atDEBUG, notWARN.Related: #87 (reserved enum values, fixed for the rate unit, modifier unit usage and power restore policy in #143), #121 (logging), #84 (the iDRAC BIOS sensors, whose owner is not the BMC).