pyWeMo serialnumber is deprecated, use serial_number (#94791)

This commit is contained in:
Eric Severance 2023-06-17 17:59:19 -07:00 committed by GitHub
parent 0513117a11
commit 7f7b7aee6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 17 additions and 17 deletions

View File

@ -154,14 +154,14 @@ class WemoDispatcher:
self, hass: HomeAssistant, wemo: pywemo.WeMoDevice self, hass: HomeAssistant, wemo: pywemo.WeMoDevice
) -> None: ) -> None:
"""Add a WeMo device to hass if it has not already been added.""" """Add a WeMo device to hass if it has not already been added."""
if wemo.serialnumber in self._added_serial_numbers: if wemo.serial_number in self._added_serial_numbers:
return return
try: try:
coordinator = await async_register_device(hass, self._config_entry, wemo) coordinator = await async_register_device(hass, self._config_entry, wemo)
except pywemo.PyWeMoException as err: except pywemo.PyWeMoException as err:
if wemo.serialnumber not in self._failed_serial_numbers: if wemo.serial_number not in self._failed_serial_numbers:
self._failed_serial_numbers.add(wemo.serialnumber) self._failed_serial_numbers.add(wemo.serial_number)
_LOGGER.error( _LOGGER.error(
"Unable to add WeMo %s %s: %s", repr(wemo), wemo.host, err "Unable to add WeMo %s %s: %s", repr(wemo), wemo.host, err
) )
@ -194,8 +194,8 @@ class WemoDispatcher:
coordinator, coordinator,
) )
self._added_serial_numbers.add(wemo.serialnumber) self._added_serial_numbers.add(wemo.serial_number)
self._failed_serial_numbers.discard(wemo.serialnumber) self._failed_serial_numbers.discard(wemo.serial_number)
class WemoDiscovery: class WemoDiscovery:

View File

@ -53,7 +53,7 @@ class WemoEntity(CoordinatorEntity[DeviceCoordinator]):
@property @property
def unique_id(self) -> str: def unique_id(self) -> str:
"""Return the id of this WeMo device.""" """Return the id of this WeMo device."""
serial_number: str = self.wemo.serialnumber serial_number: str = self.wemo.serial_number
if suffix := self.unique_id_suffix: if suffix := self.unique_id_suffix:
return f"{serial_number}_{suffix}" return f"{serial_number}_{suffix}"
return serial_number return serial_number

View File

@ -61,7 +61,7 @@ class DeviceCoordinator(DataUpdateCoordinator[None]):
CONF_NAME: self.wemo.name, CONF_NAME: self.wemo.name,
CONF_TYPE: event_type, CONF_TYPE: event_type,
CONF_PARAMS: params, CONF_PARAMS: params,
CONF_UNIQUE_ID: self.wemo.serialnumber, CONF_UNIQUE_ID: self.wemo.serial_number,
}, },
) )
else: else:
@ -131,14 +131,14 @@ def _create_device_info(wemo: WeMoDevice) -> DeviceInfo:
_dev_info = _device_info(wemo) _dev_info = _device_info(wemo)
if wemo.model_name == "DLI emulated Belkin Socket": if wemo.model_name == "DLI emulated Belkin Socket":
_dev_info[ATTR_CONFIGURATION_URL] = f"http://{wemo.host}" _dev_info[ATTR_CONFIGURATION_URL] = f"http://{wemo.host}"
_dev_info[ATTR_IDENTIFIERS] = {(DOMAIN, wemo.serialnumber[:-1])} _dev_info[ATTR_IDENTIFIERS] = {(DOMAIN, wemo.serial_number[:-1])}
return _dev_info return _dev_info
def _device_info(wemo: WeMoDevice) -> DeviceInfo: def _device_info(wemo: WeMoDevice) -> DeviceInfo:
return DeviceInfo( return DeviceInfo(
connections={(CONNECTION_UPNP, wemo.udn)}, connections={(CONNECTION_UPNP, wemo.udn)},
identifiers={(DOMAIN, wemo.serialnumber)}, identifiers={(DOMAIN, wemo.serial_number)},
manufacturer="Belkin", manufacturer="Belkin",
model=wemo.model_name, model=wemo.model_name,
name=wemo.name, name=wemo.name,

View File

@ -61,9 +61,9 @@ def create_pywemo_device(pywemo_registry, pywemo_model):
device.host = MOCK_HOST device.host = MOCK_HOST
device.port = MOCK_PORT device.port = MOCK_PORT
device.name = MOCK_NAME device.name = MOCK_NAME
device.serialnumber = MOCK_SERIAL_NUMBER device.serial_number = MOCK_SERIAL_NUMBER
device.model_name = pywemo_model.replace("LongPress", "") device.model_name = pywemo_model.replace("LongPress", "")
device.udn = f"uuid:{device.model_name}-1_0-{device.serialnumber}" device.udn = f"uuid:{device.model_name}-1_0-{device.serial_number}"
device.firmware_version = MOCK_FIRMWARE_VERSION device.firmware_version = MOCK_FIRMWARE_VERSION
device.get_state.return_value = 0 # Default to Off device.get_state.return_value = 0 # Default to Off
device.supports_long_press.return_value = cls.supports_long_press() device.supports_long_press.return_value = cls.supports_long_press()
@ -102,7 +102,7 @@ def pywemo_dli_device_fixture(pywemo_registry, pywemo_model):
"""Fixture for Digital Loggers emulated instances.""" """Fixture for Digital Loggers emulated instances."""
with create_pywemo_device(pywemo_registry, pywemo_model) as pywemo_dli_device: with create_pywemo_device(pywemo_registry, pywemo_model) as pywemo_dli_device:
pywemo_dli_device.model_name = "DLI emulated Belkin Socket" pywemo_dli_device.model_name = "DLI emulated Belkin Socket"
pywemo_dli_device.serialnumber = "1234567891" pywemo_dli_device.serial_number = "1234567891"
yield pywemo_dli_device yield pywemo_dli_device

View File

@ -138,9 +138,9 @@ async def test_discovery(hass: HomeAssistant, pywemo_registry) -> None:
device.host = f"{MOCK_HOST}_{counter}" device.host = f"{MOCK_HOST}_{counter}"
device.port = MOCK_PORT + counter device.port = MOCK_PORT + counter
device.name = f"{MOCK_NAME}_{counter}" device.name = f"{MOCK_NAME}_{counter}"
device.serialnumber = f"{MOCK_SERIAL_NUMBER}_{counter}" device.serial_number = f"{MOCK_SERIAL_NUMBER}_{counter}"
device.model_name = "Motion" device.model_name = "Motion"
device.udn = f"uuid:{device.model_name}-1_0-{device.serialnumber}" device.udn = f"uuid:{device.model_name}-1_0-{device.serial_number}"
device.firmware_version = MOCK_FIRMWARE_VERSION device.firmware_version = MOCK_FIRMWARE_VERSION
device.get_state.return_value = 0 # Default to Off device.get_state.return_value = 0 # Default to Off
device.supports_long_press.return_value = False device.supports_long_press.return_value = False

View File

@ -35,12 +35,12 @@ def pywemo_model():
def pywemo_bridge_light_fixture(pywemo_device): def pywemo_bridge_light_fixture(pywemo_device):
"""Fixture for Bridge.Light WeMoDevice instances.""" """Fixture for Bridge.Light WeMoDevice instances."""
light = create_autospec(pywemo.ouimeaux_device.bridge.Light, instance=True) light = create_autospec(pywemo.ouimeaux_device.bridge.Light, instance=True)
light.uniqueID = pywemo_device.serialnumber light.uniqueID = pywemo_device.serial_number
light.name = pywemo_device.name light.name = pywemo_device.name
light.bridge = pywemo_device light.bridge = pywemo_device
light.state = {"onoff": 0, "available": True} light.state = {"onoff": 0, "available": True}
light.capabilities = ["onoff", "levelcontrol", "colortemperature"] light.capabilities = ["onoff", "levelcontrol", "colortemperature"]
pywemo_device.Lights = {pywemo_device.serialnumber: light} pywemo_device.Lights = {pywemo_device.serial_number: light}
return light return light

View File

@ -84,7 +84,7 @@ async def test_long_press_event(
"name": device.wemo.name, "name": device.wemo.name,
"params": "testing_params", "params": "testing_params",
"type": EVENT_TYPE_LONG_PRESS, "type": EVENT_TYPE_LONG_PRESS,
"unique_id": device.wemo.serialnumber, "unique_id": device.wemo.serial_number,
} }