diff --git a/homeassistant/components/onewire/const.py b/homeassistant/components/onewire/const.py index 54bfc68645969080958de3bb3466c9daf34eb4d6..7bdba0d73d485ef5c6c6d8aa866c99edf3064d14 100644 --- a/homeassistant/components/onewire/const.py +++ b/homeassistant/components/onewire/const.py @@ -20,6 +20,10 @@ DOMAIN = "onewire" DEVICE_KEYS_0_7 = range(8) DEVICE_KEYS_A_B = ("A", "B") +MANUFACTURER_MAXIM = "Maxim Integrated" +MANUFACTURER_HOBBYBOARDS = "Hobby Boards" +MANUFACTURER_EDS = "Embedded Data Systems" + PRESSURE_CBAR = "cbar" READ_MODE_BOOL = "bool" diff --git a/homeassistant/components/onewire/onewirehub.py b/homeassistant/components/onewire/onewirehub.py index c2a88dc6df6e090ceee0255ec4b21ec2572da063..2ee99597a27736375496c374984490c669b03d80 100644 --- a/homeassistant/components/onewire/onewirehub.py +++ b/homeassistant/components/onewire/onewirehub.py @@ -25,7 +25,15 @@ from homeassistant.helpers import device_registry as dr from homeassistant.helpers.device_registry import DeviceEntry from homeassistant.helpers.entity import DeviceInfo -from .const import CONF_MOUNT_DIR, CONF_TYPE_OWSERVER, CONF_TYPE_SYSBUS, DOMAIN +from .const import ( + CONF_MOUNT_DIR, + CONF_TYPE_OWSERVER, + CONF_TYPE_SYSBUS, + DOMAIN, + MANUFACTURER_EDS, + MANUFACTURER_HOBBYBOARDS, + MANUFACTURER_MAXIM, +) from .model import ( OWDeviceDescription, OWDirectDeviceDescription, @@ -37,6 +45,11 @@ DEVICE_COUPLERS = { "1F": ["aux", "main"] } +DEVICE_MANUFACTURER = { + "7E": MANUFACTURER_EDS, + "EF": MANUFACTURER_HOBBYBOARDS, +} + _LOGGER = logging.getLogger(__name__) @@ -108,12 +121,14 @@ class OneWireHub: devices: list[OWDeviceDescription] = [] assert self.pi1proxy for interface in self.pi1proxy.find_all_sensors(): - family = interface.mac_address[:2] - device_id = f"{family}-{interface.mac_address[2:]}" + device_family = interface.mac_address[:2] + device_id = f"{device_family}-{interface.mac_address[2:]}" device_info: DeviceInfo = { ATTR_IDENTIFIERS: {(DOMAIN, device_id)}, - ATTR_MANUFACTURER: "Maxim Integrated", - ATTR_MODEL: family, + ATTR_MANUFACTURER: DEVICE_MANUFACTURER.get( + device_family, MANUFACTURER_MAXIM + ), + ATTR_MODEL: device_family, ATTR_NAME: device_id, } device = OWDirectDeviceDescription( @@ -137,7 +152,9 @@ class OneWireHub: _LOGGER.debug("read `%stype`: %s", device_path, device_type) device_info: DeviceInfo = { ATTR_IDENTIFIERS: {(DOMAIN, device_id)}, - ATTR_MANUFACTURER: "Maxim Integrated", + ATTR_MANUFACTURER: DEVICE_MANUFACTURER.get( + device_family, MANUFACTURER_MAXIM + ), ATTR_MODEL: device_type, ATTR_NAME: device_id, } diff --git a/tests/components/onewire/const.py b/tests/components/onewire/const.py index 2642e4e7454dee639ef6f2b3abf834ab30a3689a..1cd4babd2635b27c26f6ec75956c7380a76b502c 100644 --- a/tests/components/onewire/const.py +++ b/tests/components/onewire/const.py @@ -3,7 +3,13 @@ from pi1wire import InvalidCRCException, UnsupportResponseException from pyownet.protocol import Error as ProtocolError from homeassistant.components.binary_sensor import DOMAIN as BINARY_SENSOR_DOMAIN -from homeassistant.components.onewire.const import DOMAIN, PRESSURE_CBAR +from homeassistant.components.onewire.const import ( + DOMAIN, + MANUFACTURER_EDS, + MANUFACTURER_HOBBYBOARDS, + MANUFACTURER_MAXIM, + PRESSURE_CBAR, +) from homeassistant.components.sensor import ( ATTR_STATE_CLASS, DOMAIN as SENSOR_DOMAIN, @@ -50,7 +56,6 @@ FIXED_ATTRIBUTES = ( ATTR_UNIT_OF_MEASUREMENT, ) -MANUFACTURER = "Maxim Integrated" MOCK_OWPROXY_DEVICES = { "00.111111111111": { @@ -65,7 +70,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "05.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS2405", ATTR_NAME: "05.111111111111", }, @@ -85,7 +90,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "10.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS18S20", ATTR_NAME: "10.111111111111", }, @@ -107,7 +112,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "12.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS2406", ATTR_NAME: "12.111111111111", }, @@ -186,7 +191,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "1D.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS2423", ATTR_NAME: "1D.111111111111", }, @@ -216,13 +221,13 @@ MOCK_OWPROXY_DEVICES = { ATTR_DEVICE_INFO: [ { ATTR_IDENTIFIERS: {(DOMAIN, "1F.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS2409", ATTR_NAME: "1F.111111111111", }, { ATTR_IDENTIFIERS: {(DOMAIN, "1D.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS2423", ATTR_NAME: "1D.111111111111", ATTR_VIA_DEVICE: (DOMAIN, "1F.111111111111"), @@ -265,7 +270,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "22.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS1822", ATTR_NAME: "22.111111111111", }, @@ -287,7 +292,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "26.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS2438", ATTR_NAME: "26.111111111111", }, @@ -409,7 +414,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "28.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS18B20", ATTR_NAME: "28.111111111111", }, @@ -431,7 +436,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "29.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS2408", ATTR_NAME: "29.111111111111", }, @@ -614,7 +619,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "3A.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS2413", ATTR_NAME: "3A.111111111111", }, @@ -657,7 +662,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "3B.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS1825", ATTR_NAME: "3B.111111111111", }, @@ -679,7 +684,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "42.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "DS28EA00", ATTR_NAME: "42.111111111111", }, @@ -701,7 +706,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "EF.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_HOBBYBOARDS, ATTR_MODEL: "HobbyBoards_EF", ATTR_NAME: "EF.111111111111", }, @@ -745,7 +750,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "EF.111111111112")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_HOBBYBOARDS, ATTR_MODEL: "HB_MOISTURE_METER", ATTR_NAME: "EF.111111111112", }, @@ -795,7 +800,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "7E.111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_EDS, ATTR_MODEL: "EDS", ATTR_NAME: "7E.111111111111", }, @@ -845,7 +850,7 @@ MOCK_OWPROXY_DEVICES = { ], ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "7E.222222222222")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_EDS, ATTR_MODEL: "EDS", ATTR_NAME: "7E.222222222222", }, @@ -879,7 +884,7 @@ MOCK_SYSBUS_DEVICES = { "10-111111111111": { ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "10-111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "10", ATTR_NAME: "10-111111111111", }, @@ -904,7 +909,7 @@ MOCK_SYSBUS_DEVICES = { "22-111111111111": { ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "22-111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "22", ATTR_NAME: "22-111111111111", }, @@ -926,7 +931,7 @@ MOCK_SYSBUS_DEVICES = { "28-111111111111": { ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "28-111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "28", ATTR_NAME: "28-111111111111", }, @@ -951,7 +956,7 @@ MOCK_SYSBUS_DEVICES = { "3B-111111111111": { ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "3B-111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "3B", ATTR_NAME: "3B-111111111111", }, @@ -970,7 +975,7 @@ MOCK_SYSBUS_DEVICES = { "42-111111111111": { ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "42-111111111111")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "42", ATTR_NAME: "42-111111111111", }, @@ -989,7 +994,7 @@ MOCK_SYSBUS_DEVICES = { "42-111111111112": { ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "42-111111111112")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "42", ATTR_NAME: "42-111111111112", }, @@ -1008,7 +1013,7 @@ MOCK_SYSBUS_DEVICES = { "42-111111111113": { ATTR_DEVICE_INFO: { ATTR_IDENTIFIERS: {(DOMAIN, "42-111111111113")}, - ATTR_MANUFACTURER: MANUFACTURER, + ATTR_MANUFACTURER: MANUFACTURER_MAXIM, ATTR_MODEL: "42", ATTR_NAME: "42-111111111113", },