Disconnect velux on hass stop (#26266)
* velux KLF200 device did not disconnect properly when rebooting the hass device. disconnect is now being called on the 'EVENT_HOMEASSISTANT_STOP' event * removed comment * removed comment * trigger bot * trigger bot * trigger bot * logging casing fixed. code moved from init. * logger level debug logger level moved from info to debug only config[DOMAIN] exposed to module imports moved to top * DOMAIN part of config passed to module. * removed trailing whitespaces etc. * black --fast changes * added missing docstring * D400 First line should end with a period * black formatting
This commit is contained in:
parent
12f68af107
commit
ed13cab8d6
1 changed files with 21 additions and 9 deletions
|
@ -1,11 +1,12 @@
|
|||
"""Support for VELUX KLF 200 devices."""
|
||||
import logging
|
||||
|
||||
import voluptuous as vol
|
||||
from pyvlx import PyVLX
|
||||
from pyvlx import PyVLXException
|
||||
|
||||
from homeassistant.helpers import discovery
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.const import CONF_HOST, CONF_PASSWORD
|
||||
from homeassistant.const import CONF_HOST, CONF_PASSWORD, EVENT_HOMEASSISTANT_STOP
|
||||
|
||||
DOMAIN = "velux"
|
||||
DATA_VELUX = "data_velux"
|
||||
|
@ -24,10 +25,9 @@ CONFIG_SCHEMA = vol.Schema(
|
|||
|
||||
async def async_setup(hass, config):
|
||||
"""Set up the velux component."""
|
||||
from pyvlx import PyVLXException
|
||||
|
||||
try:
|
||||
hass.data[DATA_VELUX] = VeluxModule(hass, config)
|
||||
hass.data[DATA_VELUX] = VeluxModule(hass, config[DOMAIN])
|
||||
hass.data[DATA_VELUX].setup()
|
||||
await hass.data[DATA_VELUX].async_start()
|
||||
|
||||
except PyVLXException as ex:
|
||||
|
@ -44,15 +44,27 @@ async def async_setup(hass, config):
|
|||
class VeluxModule:
|
||||
"""Abstraction for velux component."""
|
||||
|
||||
def __init__(self, hass, config):
|
||||
def __init__(self, hass, domain_config):
|
||||
"""Initialize for velux component."""
|
||||
from pyvlx import PyVLX
|
||||
self.pyvlx = None
|
||||
self._hass = hass
|
||||
self._domain_config = domain_config
|
||||
|
||||
host = config[DOMAIN].get(CONF_HOST)
|
||||
password = config[DOMAIN].get(CONF_PASSWORD)
|
||||
def setup(self):
|
||||
"""Velux component setup."""
|
||||
|
||||
async def on_hass_stop(event):
|
||||
"""Close connection when hass stops."""
|
||||
_LOGGER.debug("Velux interface terminated")
|
||||
await self.pyvlx.disconnect()
|
||||
|
||||
self._hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, on_hass_stop)
|
||||
host = self._domain_config.get(CONF_HOST)
|
||||
password = self._domain_config.get(CONF_PASSWORD)
|
||||
self.pyvlx = PyVLX(host=host, password=password)
|
||||
|
||||
async def async_start(self):
|
||||
"""Start velux component."""
|
||||
_LOGGER.debug("Velux interface started")
|
||||
await self.pyvlx.load_scenes()
|
||||
await self.pyvlx.load_nodes()
|
||||
|
|
Loading…
Add table
Reference in a new issue