mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 12:47:08 +00:00
Adjust async_step_reauth in broadlink (#74168)
This commit is contained in:
parent
9c991d9c6f
commit
2fce301b34
@ -1,8 +1,10 @@
|
|||||||
"""Config flow for Broadlink devices."""
|
"""Config flow for Broadlink devices."""
|
||||||
|
from collections.abc import Mapping
|
||||||
import errno
|
import errno
|
||||||
from functools import partial
|
from functools import partial
|
||||||
import logging
|
import logging
|
||||||
import socket
|
import socket
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
import broadlink as blk
|
import broadlink as blk
|
||||||
from broadlink.exceptions import (
|
from broadlink.exceptions import (
|
||||||
@ -12,9 +14,10 @@ from broadlink.exceptions import (
|
|||||||
)
|
)
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant import config_entries, data_entry_flow
|
from homeassistant import config_entries
|
||||||
from homeassistant.components import dhcp
|
from homeassistant.components import dhcp
|
||||||
from homeassistant.const import CONF_HOST, CONF_MAC, CONF_NAME, CONF_TIMEOUT, CONF_TYPE
|
from homeassistant.const import CONF_HOST, CONF_MAC, CONF_NAME, CONF_TIMEOUT, CONF_TYPE
|
||||||
|
from homeassistant.data_entry_flow import AbortFlow, FlowResult
|
||||||
from homeassistant.helpers import config_validation as cv
|
from homeassistant.helpers import config_validation as cv
|
||||||
|
|
||||||
from .const import DEFAULT_PORT, DEFAULT_TIMEOUT, DEVICE_TYPES, DOMAIN
|
from .const import DEFAULT_PORT, DEFAULT_TIMEOUT, DEVICE_TYPES, DOMAIN
|
||||||
@ -40,7 +43,7 @@ class BroadlinkFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
"an issue at https://github.com/home-assistant/core/issues",
|
"an issue at https://github.com/home-assistant/core/issues",
|
||||||
hex(device.devtype),
|
hex(device.devtype),
|
||||||
)
|
)
|
||||||
raise data_entry_flow.AbortFlow("not_supported")
|
raise AbortFlow("not_supported")
|
||||||
|
|
||||||
await self.async_set_unique_id(
|
await self.async_set_unique_id(
|
||||||
device.mac.hex(), raise_on_progress=raise_on_progress
|
device.mac.hex(), raise_on_progress=raise_on_progress
|
||||||
@ -53,9 +56,7 @@ class BroadlinkFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
"host": device.host[0],
|
"host": device.host[0],
|
||||||
}
|
}
|
||||||
|
|
||||||
async def async_step_dhcp(
|
async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> FlowResult:
|
||||||
self, discovery_info: dhcp.DhcpServiceInfo
|
|
||||||
) -> data_entry_flow.FlowResult:
|
|
||||||
"""Handle dhcp discovery."""
|
"""Handle dhcp discovery."""
|
||||||
host = discovery_info.ip
|
host = discovery_info.ip
|
||||||
unique_id = discovery_info.macaddress.lower().replace(":", "")
|
unique_id = discovery_info.macaddress.lower().replace(":", "")
|
||||||
@ -300,14 +301,14 @@ class BroadlinkFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
self._async_abort_entries_match({CONF_HOST: import_info[CONF_HOST]})
|
self._async_abort_entries_match({CONF_HOST: import_info[CONF_HOST]})
|
||||||
return await self.async_step_user(import_info)
|
return await self.async_step_user(import_info)
|
||||||
|
|
||||||
async def async_step_reauth(self, data):
|
async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
|
||||||
"""Reauthenticate to the device."""
|
"""Reauthenticate to the device."""
|
||||||
device = blk.gendevice(
|
device = blk.gendevice(
|
||||||
data[CONF_TYPE],
|
entry_data[CONF_TYPE],
|
||||||
(data[CONF_HOST], DEFAULT_PORT),
|
(entry_data[CONF_HOST], DEFAULT_PORT),
|
||||||
bytes.fromhex(data[CONF_MAC]),
|
bytes.fromhex(entry_data[CONF_MAC]),
|
||||||
name=data[CONF_NAME],
|
name=entry_data[CONF_NAME],
|
||||||
)
|
)
|
||||||
device.timeout = data[CONF_TIMEOUT]
|
device.timeout = entry_data[CONF_TIMEOUT]
|
||||||
await self.async_set_device(device)
|
await self.async_set_device(device)
|
||||||
return await self.async_step_reset()
|
return await self.async_step_reset()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user