Skip to content

Commit e1ae455

Browse files
authored
Fix ONVIF YAML import (#35035)
1 parent b320152 commit e1ae455

File tree

2 files changed

+28
-23
lines changed

2 files changed

+28
-23
lines changed

homeassistant/components/onvif/__init__.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,23 @@
55

66
from homeassistant.components.ffmpeg import CONF_EXTRA_ARGUMENTS
77
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
8-
from homeassistant.const import CONF_HOST
8+
from homeassistant.const import (
9+
CONF_HOST,
10+
CONF_NAME,
11+
CONF_PASSWORD,
12+
CONF_PORT,
13+
CONF_USERNAME,
14+
)
915
from homeassistant.core import HomeAssistant
1016
from homeassistant.helpers import config_per_platform
1117

1218
from .const import (
13-
CONF_PROFILE,
1419
CONF_RTSP_TRANSPORT,
1520
DEFAULT_ARGUMENTS,
16-
DEFAULT_PROFILE,
21+
DEFAULT_NAME,
22+
DEFAULT_PASSWORD,
23+
DEFAULT_PORT,
24+
DEFAULT_USERNAME,
1725
DOMAIN,
1826
RTSP_TRANS_PROTOCOLS,
1927
)
@@ -32,12 +40,14 @@ async def async_setup(hass: HomeAssistant, config: dict):
3240
continue
3341

3442
config = p_config.copy()
35-
profile = config.get(CONF_PROFILE, DEFAULT_PROFILE)
3643
if config[CONF_HOST] not in configs.keys():
37-
configs[config[CONF_HOST]] = config
38-
configs[config[CONF_HOST]][CONF_PROFILE] = [profile]
39-
else:
40-
configs[config[CONF_HOST]][CONF_PROFILE].append(profile)
44+
configs[config[CONF_HOST]] = {
45+
CONF_HOST: config[CONF_HOST],
46+
CONF_NAME: config.get(CONF_NAME, DEFAULT_NAME),
47+
CONF_PASSWORD: config.get(CONF_PASSWORD, DEFAULT_PASSWORD),
48+
CONF_PORT: config.get(CONF_PORT, DEFAULT_PORT),
49+
CONF_USERNAME: config.get(CONF_USERNAME, DEFAULT_USERNAME),
50+
}
4151

4252
for conf in configs.values():
4353
hass.async_create_task(
@@ -64,7 +74,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry):
6474

6575
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry):
6676
"""Unload a config entry."""
67-
unload_ok = all(
77+
return all(
6878
await asyncio.gather(
6979
*[
7080
hass.config_entries.async_forward_entry_unload(entry, component)
@@ -73,8 +83,6 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry):
7383
)
7484
)
7585

76-
return unload_ok
77-
7886

7987
async def async_populate_options(hass, entry):
8088
"""Populate default options for device."""

homeassistant/components/onvif/config_flow.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -125,21 +125,20 @@ async def async_step_device(self, user_input=None):
125125

126126
discovery = await async_discovery(self.hass)
127127
for device in discovery:
128-
configured = False
129-
for entry in self._async_current_entries():
130-
if entry.unique_id == device[CONF_DEVICE_ID]:
131-
configured = True
132-
break
128+
configured = any(
129+
entry.unique_id == device[CONF_DEVICE_ID]
130+
for entry in self._async_current_entries()
131+
)
132+
133133
if not configured:
134134
self.devices.append(device)
135135

136136
LOGGER.debug("Discovered ONVIF devices %s", pformat(self.devices))
137137

138138
if self.devices:
139-
names = []
140-
141-
for device in self.devices:
142-
names.append(f"{device[CONF_NAME]} ({device[CONF_HOST]})")
139+
names = [
140+
f"{device[CONF_NAME]} ({device[CONF_HOST]})" for device in self.devices
141+
]
143142

144143
names.append(CONF_MANUAL_INPUT)
145144

@@ -299,13 +298,11 @@ def get_device(hass, host, port, username, password) -> ONVIFCamera:
299298
"""Get ONVIFCamera instance."""
300299
session = async_get_clientsession(hass)
301300
transport = AsyncTransport(None, session=session)
302-
device = ONVIFCamera(
301+
return ONVIFCamera(
303302
host,
304303
port,
305304
username,
306305
password,
307306
f"{os.path.dirname(onvif.__file__)}/wsdl/",
308307
transport=transport,
309308
)
310-
311-
return device

0 commit comments

Comments
 (0)