The handler uses different extraction logic per product family:
Pressure Sensors (HSC/SSC/ABP/MPR)
// Extract last 2 characters from the main part (before any hyphen)
// HSCDANN001PG2A3 -> A3 -> DIP
String suffix = mainPart.substring(mainPart.length() - 2);
switch (suffix) {
case "A3" -> "DIP"
case "A5" -> "SMT"
case "AA" -> "DIP"
case "SA" -> "SIP"
case "MD" -> "SMD"
}
Humidity Sensors (HIH)
// Package code is in the second segment after hyphen
// HIH6130-021-001 -> 021 -> SIP
switch (segment) {
case "021" -> "SIP" // SIP non-condensing
case "022" -> "SMD" // SMD non-condensing
case "031" -> "SIP" // SIP condensing
case "032" -> "SMD" // SMD condensing
}
Hall Effect Sensors (SS4xx/SS5xx)
// Package code is the letter before final digit (if present)
// SS495A1 -> A -> TO-92
// SS441A -> A -> TO-92
switch (pkgChar) {
case 'A' -> "TO-92"
case 'E' -> "SOT-89"
case 'T' -> "SOT-23"
case 'L' -> "SIP"
}
Magnetometers (HMC)
// Look for trailing L indicating LCC package
// HMC5883L -> L -> LCC
if (basePart.endsWith("L")) return "LCC"
Example MPNs with Explanations
Humidity Sensors
MPN
Series
Package
Description
HIH6130-021-001
HIH6130
SIP
Digital humidity sensor, SIP non-condensing
HIH6130-022-001
HIH6130
SMD
Digital humidity sensor, SMD non-condensing
HIH4000-001
HIH4000
(varies)
Analog humidity sensor
HIH8120-021-001
HIH8120
SIP
High accuracy digital humidity
Pressure Sensors
MPN
Series
Package
Description
HSCDANN001PG2A3
HSC
DIP
TruStability, differential, 1 psi, DIP
HSCDRRN060MDSA
HSC
SIP
TruStability, 60 mbar differential, SIP
SSCMANV060PGAA5
SSC
SMT
Standard pressure, 60 psi gauge, SMT
ABPMANN060PG2A3
ABP
DIP
Basic pressure, 60 psi gauge, DIP
MPRLS0025PA00001A
MPR
SMT
MicroPressure, 25 psi, SMT
Hall Effect Sensors
MPN
Series
Package
Description
SS49E
SS49
SOT-89
Linear hall effect, SOT-89
SS495A
SS49
TO-92
Linear hall effect, TO-92
SS495A1
SS49
TO-92
Linear hall effect, TO-92, variant 1
SS441A
SS4
TO-92
Hall switch, bipolar, TO-92
SS451A
SS4
TO-92
Hall switch, unipolar, TO-92
SS59ET
SS59
SOT-23
Linear hall, high sensitivity, SOT-23
Magnetometers
MPN
Series
Package
Description
HMC5883L
HMC5883
LCC
3-axis magnetometer, I2C, LCC
HMC5883L-TR
HMC5883
LCC
Same as above, tape and reel
HMC5843
HMC5843
(QFN)
Older 3-axis magnetometer
Optical Sensors
MPN
Series
Package
Description
HOA1180-001
HOA1180
(varies)
Reflective optical sensor
HLC2705-001
HLC2705
(varies)
Optical interrupter
Official Replacement Logic
The isOfficialReplacement() method in HoneywellHandler checks:
Same series: Parts in the same series are typically compatible (different packages)
Pressure range match: For pressure sensors, range must match for compatibility
Known compatible pairs:
HIH6130 <-> HIH6131 (alarm output variant)
HIH8120 <-> HIH8121 (alarm output variant)
HIH4000 <-> HIH4010 (covered variant)
HMC5883 variants
Handler Implementation Notes
matches() Override
The handler provides explicit matches() implementation for better performance:
@Override
public boolean matches(String mpn, ComponentType type, PatternRegistry patterns) {
switch (type) {
case HUMIDITY_SENSOR:
return upperMpn.matches("^HIH[0-9].*");
case PRESSURE_SENSOR:
return upperMpn.matches("^HSC[A-Z].*") ||
upperMpn.matches("^SSC[A-Z].*") ||
upperMpn.matches("^ABP[A-Z].*") ||
upperMpn.matches("^MPR[A-Z].*");
// ... etc.
}
}
getSupportedTypes() Pattern
Uses Set.of() (modern, immutable) - compliant with codebase best practices:
SS49x vs SS4xx conflict: The handler uses specific patterns to distinguish linear sensors (SS49x, SS59x) from switch sensors (SS4xx where xx != 9x). Patterns SS4[0-8][0-9] exclude SS49x.
Pressure sensor range extraction: Range is embedded in the long MPN string at different positions. The handler searches for 3-digit or 4-digit numeric chunks.
Humidity sensor package in hyphenated segment: Unlike most manufacturers where package is a suffix, HIH sensors encode package info in the second hyphen-separated segment (021, 022, 031, 032).
HMC5883 vs HMC5883L: Both extract series "HMC5883" but "L" suffix indicates LCC package. They are the same IC in different packages.
No manufacturer-specific ComponentTypes: Unlike TI or ST handlers, Honeywell uses generic types (HUMIDITY_SENSOR, PRESSURE_SENSOR) without _HONEYWELL suffixes.
getManufacturerTypes() returns empty set: Honeywell does not define custom ManufacturerComponentType enums.