Adjust onewire device manufacturer (#58515)

Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
epenet 2021-10-27 12:02:07 +02:00 committed by GitHub
parent f8af44cac2
commit 8017a1e141
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 58 additions and 32 deletions

View File

@ -20,6 +20,10 @@ DOMAIN = "onewire"
DEVICE_KEYS_0_7 = range(8) DEVICE_KEYS_0_7 = range(8)
DEVICE_KEYS_A_B = ("A", "B") DEVICE_KEYS_A_B = ("A", "B")
MANUFACTURER_MAXIM = "Maxim Integrated"
MANUFACTURER_HOBBYBOARDS = "Hobby Boards"
MANUFACTURER_EDS = "Embedded Data Systems"
PRESSURE_CBAR = "cbar" PRESSURE_CBAR = "cbar"
READ_MODE_BOOL = "bool" READ_MODE_BOOL = "bool"

View File

@ -25,7 +25,15 @@ from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.device_registry import DeviceEntry from homeassistant.helpers.device_registry import DeviceEntry
from homeassistant.helpers.entity import DeviceInfo 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 ( from .model import (
OWDeviceDescription, OWDeviceDescription,
OWDirectDeviceDescription, OWDirectDeviceDescription,
@ -37,6 +45,11 @@ DEVICE_COUPLERS = {
"1F": ["aux", "main"] "1F": ["aux", "main"]
} }
DEVICE_MANUFACTURER = {
"7E": MANUFACTURER_EDS,
"EF": MANUFACTURER_HOBBYBOARDS,
}
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -108,12 +121,14 @@ class OneWireHub:
devices: list[OWDeviceDescription] = [] devices: list[OWDeviceDescription] = []
assert self.pi1proxy assert self.pi1proxy
for interface in self.pi1proxy.find_all_sensors(): for interface in self.pi1proxy.find_all_sensors():
family = interface.mac_address[:2] device_family = interface.mac_address[:2]
device_id = f"{family}-{interface.mac_address[2:]}" device_id = f"{device_family}-{interface.mac_address[2:]}"
device_info: DeviceInfo = { device_info: DeviceInfo = {
ATTR_IDENTIFIERS: {(DOMAIN, device_id)}, ATTR_IDENTIFIERS: {(DOMAIN, device_id)},
ATTR_MANUFACTURER: "Maxim Integrated", ATTR_MANUFACTURER: DEVICE_MANUFACTURER.get(
ATTR_MODEL: family, device_family, MANUFACTURER_MAXIM
),
ATTR_MODEL: device_family,
ATTR_NAME: device_id, ATTR_NAME: device_id,
} }
device = OWDirectDeviceDescription( device = OWDirectDeviceDescription(
@ -137,7 +152,9 @@ class OneWireHub:
_LOGGER.debug("read `%stype`: %s", device_path, device_type) _LOGGER.debug("read `%stype`: %s", device_path, device_type)
device_info: DeviceInfo = { device_info: DeviceInfo = {
ATTR_IDENTIFIERS: {(DOMAIN, device_id)}, ATTR_IDENTIFIERS: {(DOMAIN, device_id)},
ATTR_MANUFACTURER: "Maxim Integrated", ATTR_MANUFACTURER: DEVICE_MANUFACTURER.get(
device_family, MANUFACTURER_MAXIM
),
ATTR_MODEL: device_type, ATTR_MODEL: device_type,
ATTR_NAME: device_id, ATTR_NAME: device_id,
} }

View File

@ -3,7 +3,13 @@ from pi1wire import InvalidCRCException, UnsupportResponseException
from pyownet.protocol import Error as ProtocolError from pyownet.protocol import Error as ProtocolError
from homeassistant.components.binary_sensor import DOMAIN as BINARY_SENSOR_DOMAIN 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 ( from homeassistant.components.sensor import (
ATTR_STATE_CLASS, ATTR_STATE_CLASS,
DOMAIN as SENSOR_DOMAIN, DOMAIN as SENSOR_DOMAIN,
@ -50,7 +56,6 @@ FIXED_ATTRIBUTES = (
ATTR_UNIT_OF_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT,
) )
MANUFACTURER = "Maxim Integrated"
MOCK_OWPROXY_DEVICES = { MOCK_OWPROXY_DEVICES = {
"00.111111111111": { "00.111111111111": {
@ -65,7 +70,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "05.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "05.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS2405", ATTR_MODEL: "DS2405",
ATTR_NAME: "05.111111111111", ATTR_NAME: "05.111111111111",
}, },
@ -85,7 +90,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "10.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "10.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS18S20", ATTR_MODEL: "DS18S20",
ATTR_NAME: "10.111111111111", ATTR_NAME: "10.111111111111",
}, },
@ -107,7 +112,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "12.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "12.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS2406", ATTR_MODEL: "DS2406",
ATTR_NAME: "12.111111111111", ATTR_NAME: "12.111111111111",
}, },
@ -186,7 +191,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "1D.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "1D.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS2423", ATTR_MODEL: "DS2423",
ATTR_NAME: "1D.111111111111", ATTR_NAME: "1D.111111111111",
}, },
@ -216,13 +221,13 @@ MOCK_OWPROXY_DEVICES = {
ATTR_DEVICE_INFO: [ ATTR_DEVICE_INFO: [
{ {
ATTR_IDENTIFIERS: {(DOMAIN, "1F.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "1F.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS2409", ATTR_MODEL: "DS2409",
ATTR_NAME: "1F.111111111111", ATTR_NAME: "1F.111111111111",
}, },
{ {
ATTR_IDENTIFIERS: {(DOMAIN, "1D.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "1D.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS2423", ATTR_MODEL: "DS2423",
ATTR_NAME: "1D.111111111111", ATTR_NAME: "1D.111111111111",
ATTR_VIA_DEVICE: (DOMAIN, "1F.111111111111"), ATTR_VIA_DEVICE: (DOMAIN, "1F.111111111111"),
@ -265,7 +270,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "22.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "22.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS1822", ATTR_MODEL: "DS1822",
ATTR_NAME: "22.111111111111", ATTR_NAME: "22.111111111111",
}, },
@ -287,7 +292,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "26.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "26.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS2438", ATTR_MODEL: "DS2438",
ATTR_NAME: "26.111111111111", ATTR_NAME: "26.111111111111",
}, },
@ -409,7 +414,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "28.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "28.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS18B20", ATTR_MODEL: "DS18B20",
ATTR_NAME: "28.111111111111", ATTR_NAME: "28.111111111111",
}, },
@ -431,7 +436,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "29.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "29.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS2408", ATTR_MODEL: "DS2408",
ATTR_NAME: "29.111111111111", ATTR_NAME: "29.111111111111",
}, },
@ -614,7 +619,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "3A.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "3A.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS2413", ATTR_MODEL: "DS2413",
ATTR_NAME: "3A.111111111111", ATTR_NAME: "3A.111111111111",
}, },
@ -657,7 +662,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "3B.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "3B.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS1825", ATTR_MODEL: "DS1825",
ATTR_NAME: "3B.111111111111", ATTR_NAME: "3B.111111111111",
}, },
@ -679,7 +684,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "42.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "42.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "DS28EA00", ATTR_MODEL: "DS28EA00",
ATTR_NAME: "42.111111111111", ATTR_NAME: "42.111111111111",
}, },
@ -701,7 +706,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "EF.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "EF.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_HOBBYBOARDS,
ATTR_MODEL: "HobbyBoards_EF", ATTR_MODEL: "HobbyBoards_EF",
ATTR_NAME: "EF.111111111111", ATTR_NAME: "EF.111111111111",
}, },
@ -745,7 +750,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "EF.111111111112")}, ATTR_IDENTIFIERS: {(DOMAIN, "EF.111111111112")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_HOBBYBOARDS,
ATTR_MODEL: "HB_MOISTURE_METER", ATTR_MODEL: "HB_MOISTURE_METER",
ATTR_NAME: "EF.111111111112", ATTR_NAME: "EF.111111111112",
}, },
@ -795,7 +800,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "7E.111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "7E.111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_EDS,
ATTR_MODEL: "EDS", ATTR_MODEL: "EDS",
ATTR_NAME: "7E.111111111111", ATTR_NAME: "7E.111111111111",
}, },
@ -845,7 +850,7 @@ MOCK_OWPROXY_DEVICES = {
], ],
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "7E.222222222222")}, ATTR_IDENTIFIERS: {(DOMAIN, "7E.222222222222")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_EDS,
ATTR_MODEL: "EDS", ATTR_MODEL: "EDS",
ATTR_NAME: "7E.222222222222", ATTR_NAME: "7E.222222222222",
}, },
@ -879,7 +884,7 @@ MOCK_SYSBUS_DEVICES = {
"10-111111111111": { "10-111111111111": {
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "10-111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "10-111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "10", ATTR_MODEL: "10",
ATTR_NAME: "10-111111111111", ATTR_NAME: "10-111111111111",
}, },
@ -904,7 +909,7 @@ MOCK_SYSBUS_DEVICES = {
"22-111111111111": { "22-111111111111": {
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "22-111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "22-111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "22", ATTR_MODEL: "22",
ATTR_NAME: "22-111111111111", ATTR_NAME: "22-111111111111",
}, },
@ -926,7 +931,7 @@ MOCK_SYSBUS_DEVICES = {
"28-111111111111": { "28-111111111111": {
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "28-111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "28-111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "28", ATTR_MODEL: "28",
ATTR_NAME: "28-111111111111", ATTR_NAME: "28-111111111111",
}, },
@ -951,7 +956,7 @@ MOCK_SYSBUS_DEVICES = {
"3B-111111111111": { "3B-111111111111": {
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "3B-111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "3B-111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "3B", ATTR_MODEL: "3B",
ATTR_NAME: "3B-111111111111", ATTR_NAME: "3B-111111111111",
}, },
@ -970,7 +975,7 @@ MOCK_SYSBUS_DEVICES = {
"42-111111111111": { "42-111111111111": {
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "42-111111111111")}, ATTR_IDENTIFIERS: {(DOMAIN, "42-111111111111")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "42", ATTR_MODEL: "42",
ATTR_NAME: "42-111111111111", ATTR_NAME: "42-111111111111",
}, },
@ -989,7 +994,7 @@ MOCK_SYSBUS_DEVICES = {
"42-111111111112": { "42-111111111112": {
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "42-111111111112")}, ATTR_IDENTIFIERS: {(DOMAIN, "42-111111111112")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "42", ATTR_MODEL: "42",
ATTR_NAME: "42-111111111112", ATTR_NAME: "42-111111111112",
}, },
@ -1008,7 +1013,7 @@ MOCK_SYSBUS_DEVICES = {
"42-111111111113": { "42-111111111113": {
ATTR_DEVICE_INFO: { ATTR_DEVICE_INFO: {
ATTR_IDENTIFIERS: {(DOMAIN, "42-111111111113")}, ATTR_IDENTIFIERS: {(DOMAIN, "42-111111111113")},
ATTR_MANUFACTURER: MANUFACTURER, ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
ATTR_MODEL: "42", ATTR_MODEL: "42",
ATTR_NAME: "42-111111111113", ATTR_NAME: "42-111111111113",
}, },