Use the shared Zeroconf instance in devolo_home_control (#40800)
parent
f9f17dc718
commit
a73daa5f20
|
@ -4,7 +4,7 @@ from functools import partial
|
||||||
from devolo_home_control_api.homecontrol import HomeControl
|
from devolo_home_control_api.homecontrol import HomeControl
|
||||||
from devolo_home_control_api.mydevolo import Mydevolo
|
from devolo_home_control_api.mydevolo import Mydevolo
|
||||||
|
|
||||||
from homeassistant.components import switch as ha_switch
|
from homeassistant.components import zeroconf
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, EVENT_HOMEASSISTANT_STOP
|
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, EVENT_HOMEASSISTANT_STOP
|
||||||
from homeassistant.exceptions import ConfigEntryNotReady
|
from homeassistant.exceptions import ConfigEntryNotReady
|
||||||
|
@ -12,8 +12,6 @@ from homeassistant.helpers.typing import HomeAssistantType
|
||||||
|
|
||||||
from .const import CONF_HOMECONTROL, CONF_MYDEVOLO, DOMAIN, PLATFORMS
|
from .const import CONF_HOMECONTROL, CONF_MYDEVOLO, DOMAIN, PLATFORMS
|
||||||
|
|
||||||
SUPPORTED_PLATFORMS = [ha_switch.DOMAIN]
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup(hass, config):
|
async def async_setup(hass, config):
|
||||||
"""Get all devices and add them to hass."""
|
"""Get all devices and add them to hass."""
|
||||||
|
@ -32,7 +30,6 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool
|
||||||
mydevolo.user = conf[CONF_USERNAME]
|
mydevolo.user = conf[CONF_USERNAME]
|
||||||
mydevolo.password = conf[CONF_PASSWORD]
|
mydevolo.password = conf[CONF_PASSWORD]
|
||||||
mydevolo.url = conf[CONF_MYDEVOLO]
|
mydevolo.url = conf[CONF_MYDEVOLO]
|
||||||
mydevolo.mprm = conf[CONF_HOMECONTROL]
|
|
||||||
|
|
||||||
credentials_valid = await hass.async_add_executor_job(mydevolo.credentials_valid)
|
credentials_valid = await hass.async_add_executor_job(mydevolo.credentials_valid)
|
||||||
|
|
||||||
|
@ -44,11 +41,16 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool
|
||||||
|
|
||||||
gateway_ids = await hass.async_add_executor_job(mydevolo.get_gateway_ids)
|
gateway_ids = await hass.async_add_executor_job(mydevolo.get_gateway_ids)
|
||||||
gateway_id = gateway_ids[0]
|
gateway_id = gateway_ids[0]
|
||||||
mprm_url = mydevolo.mprm
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
zeroconf_instance = await zeroconf.async_get_instance(hass)
|
||||||
hass.data[DOMAIN]["homecontrol"] = await hass.async_add_executor_job(
|
hass.data[DOMAIN]["homecontrol"] = await hass.async_add_executor_job(
|
||||||
partial(HomeControl, gateway_id=gateway_id, url=mprm_url)
|
partial(
|
||||||
|
HomeControl,
|
||||||
|
gateway_id=gateway_id,
|
||||||
|
zeroconf_instance=zeroconf_instance,
|
||||||
|
url=conf[CONF_HOMECONTROL],
|
||||||
|
)
|
||||||
)
|
)
|
||||||
except ConnectionError as err:
|
except ConnectionError as err:
|
||||||
raise ConfigEntryNotReady from err
|
raise ConfigEntryNotReady from err
|
||||||
|
|
|
@ -53,10 +53,10 @@ class DevoloHomeControlFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
||||||
mydevolo.password = password
|
mydevolo.password = password
|
||||||
if self.show_advanced_options:
|
if self.show_advanced_options:
|
||||||
mydevolo.url = user_input[CONF_MYDEVOLO]
|
mydevolo.url = user_input[CONF_MYDEVOLO]
|
||||||
mydevolo.mprm = user_input[CONF_HOMECONTROL]
|
mprm = user_input[CONF_HOMECONTROL]
|
||||||
else:
|
else:
|
||||||
mydevolo.url = DEFAULT_MYDEVOLO
|
mydevolo.url = DEFAULT_MYDEVOLO
|
||||||
mydevolo.mprm = DEFAULT_MPRM
|
mprm = DEFAULT_MPRM
|
||||||
credentials_valid = await self.hass.async_add_executor_job(
|
credentials_valid = await self.hass.async_add_executor_job(
|
||||||
mydevolo.credentials_valid
|
mydevolo.credentials_valid
|
||||||
)
|
)
|
||||||
|
@ -73,7 +73,7 @@ class DevoloHomeControlFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
||||||
CONF_PASSWORD: password,
|
CONF_PASSWORD: password,
|
||||||
CONF_USERNAME: user,
|
CONF_USERNAME: user,
|
||||||
CONF_MYDEVOLO: mydevolo.url,
|
CONF_MYDEVOLO: mydevolo.url,
|
||||||
CONF_HOMECONTROL: mydevolo.mprm,
|
CONF_HOMECONTROL: mprm,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
"name": "devolo Home Control",
|
"name": "devolo Home Control",
|
||||||
"documentation": "https://www.home-assistant.io/integrations/devolo_home_control",
|
"documentation": "https://www.home-assistant.io/integrations/devolo_home_control",
|
||||||
"requirements": ["devolo-home-control-api==0.15.0"],
|
"requirements": ["devolo-home-control-api==0.15.0"],
|
||||||
|
"after_dependencies": ["zeroconf"],
|
||||||
"config_flow": true,
|
"config_flow": true,
|
||||||
"codeowners": ["@2Fake", "@Shutgun"],
|
"codeowners": ["@2Fake", "@Shutgun"],
|
||||||
"quality_scale": "silver"
|
"quality_scale": "silver"
|
||||||
|
|
Loading…
Reference in New Issue