Handle routers that convert hostnames to lowercase in dhcp (#48429)
Some routers will lowercase all the hostnames. Since we already lowercase hostnames for matching purposes, we now pass the lowercased hostname to the integration. Currently only roomba cared about this, and has been adjusted.
This commit is contained in:
parent
ce3e00d018
commit
958c4764f7
4 changed files with 17 additions and 13 deletions
|
@ -126,7 +126,11 @@ class WatcherBase:
|
|||
self.hass.config_entries.flow.async_init(
|
||||
entry["domain"],
|
||||
context={"source": DOMAIN},
|
||||
data={IP_ADDRESS: ip_address, **data},
|
||||
data={
|
||||
IP_ADDRESS: ip_address,
|
||||
HOSTNAME: lowercase_hostname,
|
||||
MAC_ADDRESS: data[MAC_ADDRESS],
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ class RoombaConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||
if self._async_host_already_configured(dhcp_discovery[IP_ADDRESS]):
|
||||
return self.async_abort(reason="already_configured")
|
||||
|
||||
if not dhcp_discovery[HOSTNAME].startswith(("iRobot-", "Roomba-")):
|
||||
if not dhcp_discovery[HOSTNAME].startswith(("irobot-", "roomba-")):
|
||||
return self.async_abort(reason="not_irobot_device")
|
||||
|
||||
blid = _async_blid_from_hostname(dhcp_discovery[HOSTNAME])
|
||||
|
|
|
@ -376,7 +376,7 @@ async def test_device_tracker_hostname_and_macaddress_exists_before_start(hass):
|
|||
"device_tracker.august_connect",
|
||||
STATE_HOME,
|
||||
{
|
||||
ATTR_HOST_NAME: "connect",
|
||||
ATTR_HOST_NAME: "Connect",
|
||||
ATTR_IP: "192.168.210.56",
|
||||
ATTR_SOURCE_TYPE: SOURCE_TYPE_ROUTER,
|
||||
ATTR_MAC: "B8:B7:F1:6D:B5:33",
|
||||
|
@ -423,7 +423,7 @@ async def test_device_tracker_hostname_and_macaddress_after_start(hass):
|
|||
"device_tracker.august_connect",
|
||||
STATE_HOME,
|
||||
{
|
||||
ATTR_HOST_NAME: "connect",
|
||||
ATTR_HOST_NAME: "Connect",
|
||||
ATTR_IP: "192.168.210.56",
|
||||
ATTR_SOURCE_TYPE: SOURCE_TYPE_ROUTER,
|
||||
ATTR_MAC: "B8:B7:F1:6D:B5:33",
|
||||
|
|
|
@ -19,12 +19,12 @@ DHCP_DISCOVERY_DEVICES = [
|
|||
{
|
||||
IP_ADDRESS: MOCK_IP,
|
||||
MAC_ADDRESS: "50:14:79:DD:EE:FF",
|
||||
HOSTNAME: "iRobot-blid",
|
||||
HOSTNAME: "irobot-blid",
|
||||
},
|
||||
{
|
||||
IP_ADDRESS: MOCK_IP,
|
||||
MAC_ADDRESS: "80:A5:89:DD:EE:FF",
|
||||
HOSTNAME: "Roomba-blid",
|
||||
HOSTNAME: "roomba-blid",
|
||||
},
|
||||
]
|
||||
|
||||
|
@ -33,12 +33,12 @@ DHCP_DISCOVERY_DEVICES_WITHOUT_MATCHING_IP = [
|
|||
{
|
||||
IP_ADDRESS: "1.1.1.1",
|
||||
MAC_ADDRESS: "50:14:79:DD:EE:FF",
|
||||
HOSTNAME: "iRobot-blid",
|
||||
HOSTNAME: "irobot-blid",
|
||||
},
|
||||
{
|
||||
IP_ADDRESS: "1.1.1.1",
|
||||
MAC_ADDRESS: "80:A5:89:DD:EE:FF",
|
||||
HOSTNAME: "Roomba-blid",
|
||||
HOSTNAME: "roomba-blid",
|
||||
},
|
||||
]
|
||||
|
||||
|
@ -58,7 +58,7 @@ def _mocked_discovery(*_):
|
|||
roomba_discovery = MagicMock()
|
||||
|
||||
roomba = RoombaInfo(
|
||||
hostname="iRobot-blid",
|
||||
hostname="irobot-blid",
|
||||
robot_name="robot_name",
|
||||
ip=MOCK_IP,
|
||||
mac="mac",
|
||||
|
@ -751,7 +751,7 @@ async def test_dhcp_discovery_with_ignored(hass):
|
|||
data={
|
||||
IP_ADDRESS: "1.1.1.1",
|
||||
MAC_ADDRESS: "AA:BB:CC:DD:EE:FF",
|
||||
HOSTNAME: "iRobot-blid",
|
||||
HOSTNAME: "irobot-blid",
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -775,7 +775,7 @@ async def test_dhcp_discovery_already_configured_host(hass):
|
|||
data={
|
||||
IP_ADDRESS: "1.1.1.1",
|
||||
MAC_ADDRESS: "AA:BB:CC:DD:EE:FF",
|
||||
HOSTNAME: "iRobot-blid",
|
||||
HOSTNAME: "irobot-blid",
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -802,7 +802,7 @@ async def test_dhcp_discovery_already_configured_blid(hass):
|
|||
data={
|
||||
IP_ADDRESS: "1.1.1.1",
|
||||
MAC_ADDRESS: "AA:BB:CC:DD:EE:FF",
|
||||
HOSTNAME: "iRobot-blid",
|
||||
HOSTNAME: "irobot-blid",
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -829,7 +829,7 @@ async def test_dhcp_discovery_not_irobot(hass):
|
|||
data={
|
||||
IP_ADDRESS: "1.1.1.1",
|
||||
MAC_ADDRESS: "AA:BB:CC:DD:EE:FF",
|
||||
HOSTNAME: "NotiRobot-blid",
|
||||
HOSTNAME: "Notirobot-blid",
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
|
Loading…
Add table
Reference in a new issue