mirror of
https://github.com/home-assistant/core.git
synced 2025-07-15 09:17:10 +00:00
Set device connection MAC address for networked devices in NUT (#141856)
* Set device connection MAC address for networked devices * Change variable name for consistency
This commit is contained in:
parent
5057343b6a
commit
3ab2cd3fb7
@ -23,6 +23,7 @@ from homeassistant.const import (
|
||||
from homeassistant.core import Event, HomeAssistant, callback
|
||||
from homeassistant.exceptions import ConfigEntryAuthFailed, HomeAssistantError
|
||||
from homeassistant.helpers import device_registry as dr
|
||||
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC, format_mac
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||
|
||||
from .const import DOMAIN, INTEGRATION_SUPPORTED_COMMANDS, PLATFORMS
|
||||
@ -153,10 +154,15 @@ async def async_setup_entry(hass: HomeAssistant, entry: NutConfigEntry) -> bool:
|
||||
coordinator, data, unique_id, user_available_commands
|
||||
)
|
||||
|
||||
connections: set[tuple[str, str]] | None = None
|
||||
if data.device_info.mac_address is not None:
|
||||
connections = {(CONNECTION_NETWORK_MAC, data.device_info.mac_address)}
|
||||
|
||||
device_registry = dr.async_get(hass)
|
||||
device_registry.async_get_or_create(
|
||||
config_entry_id=entry.entry_id,
|
||||
identifiers={(DOMAIN, unique_id)},
|
||||
connections=connections,
|
||||
name=data.name.title(),
|
||||
manufacturer=data.device_info.manufacturer,
|
||||
model=data.device_info.model,
|
||||
@ -244,6 +250,7 @@ class NUTDeviceInfo:
|
||||
model_id: str | None = None
|
||||
firmware: str | None = None
|
||||
serial: str | None = None
|
||||
mac_address: str | None = None
|
||||
device_location: str | None = None
|
||||
|
||||
|
||||
@ -307,9 +314,18 @@ class PyNUTData:
|
||||
model_id: str | None = self._status.get("device.part")
|
||||
firmware = _firmware_from_status(self._status)
|
||||
serial = _serial_from_status(self._status)
|
||||
mac_address: str | None = self._status.get("device.macaddr")
|
||||
if mac_address is not None:
|
||||
mac_address = format_mac(mac_address.rstrip().replace(" ", ":"))
|
||||
device_location: str | None = self._status.get("device.location")
|
||||
return NUTDeviceInfo(
|
||||
manufacturer, model, model_id, firmware, serial, device_location
|
||||
manufacturer,
|
||||
model,
|
||||
model_id,
|
||||
firmware,
|
||||
serial,
|
||||
mac_address,
|
||||
device_location,
|
||||
)
|
||||
|
||||
async def _async_get_status(self) -> dict[str, str]:
|
||||
|
Loading…
x
Reference in New Issue
Block a user