More stable startup
This commit is contained in:
@@ -2,35 +2,53 @@ import logging
|
||||
|
||||
from homeassistant.helpers.entity import Entity, async_generate_entity_id
|
||||
|
||||
from .const import DOMAIN, DATA_DEVICES, DATA_ALIASES, DATA_ADDERS, CONFIG_DEVICES, DATA_CONFIG, CONFIG_PREFIX, CONFIG_DISABLE, CONFIG_DISABLE_ALL
|
||||
from .const import (
|
||||
DOMAIN,
|
||||
DATA_DEVICES,
|
||||
DATA_ALIASES,
|
||||
DATA_ADDERS,
|
||||
CONFIG_DEVICES,
|
||||
DATA_CONFIG,
|
||||
CONFIG_PREFIX,
|
||||
CONFIG_DISABLE,
|
||||
CONFIG_DISABLE_ALL,
|
||||
DATA_SETUP_COMPLETE,
|
||||
)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_devices(hass):
|
||||
return hass.data[DOMAIN][DATA_DEVICES]
|
||||
|
||||
|
||||
def get_alias(hass, deviceID):
|
||||
for k,v in hass.data[DOMAIN][DATA_ALIASES].items():
|
||||
for k, v in hass.data[DOMAIN][DATA_ALIASES].items():
|
||||
if v == deviceID:
|
||||
return k
|
||||
return None
|
||||
|
||||
|
||||
def get_config(hass, deviceID):
|
||||
config = hass.data[DOMAIN][DATA_CONFIG].get(CONFIG_DEVICES, {})
|
||||
return config.get(deviceID, config.get(deviceID.replace('-','_'), {}))
|
||||
return config.get(deviceID, config.get(deviceID.replace('-', '_'), {}))
|
||||
|
||||
|
||||
def create_entity(hass, platform, deviceID, connection):
|
||||
conf = get_config(hass, deviceID)
|
||||
if conf and (platform in conf.get(CONFIG_DISABLE, [])
|
||||
or CONFIG_DISABLE_ALL in conf.get(CONFIG_DISABLE, [])):
|
||||
or CONFIG_DISABLE_ALL in conf.get(CONFIG_DISABLE, [])):
|
||||
return None
|
||||
if not conf and (platform in hass.data[DOMAIN][DATA_CONFIG].get(CONFIG_DISABLE, [])
|
||||
or CONFIG_DISABLE_ALL in hass.data[DOMAIN][DATA_CONFIG].get(CONFIG_DISABLE, [])):
|
||||
if not conf and \
|
||||
(platform in hass.data[DOMAIN][DATA_CONFIG].get(CONFIG_DISABLE, [])
|
||||
or CONFIG_DISABLE_ALL in
|
||||
hass.data[DOMAIN][DATA_CONFIG].get(CONFIG_DISABLE, [])):
|
||||
return None
|
||||
adder = hass.data[DOMAIN][DATA_ADDERS][platform]
|
||||
entity = adder(hass, deviceID, connection, get_alias(hass, deviceID))
|
||||
return entity
|
||||
|
||||
|
||||
def setup_platform(hass, config, async_add_devices, platform, cls):
|
||||
def adder(hass, deviceID, connection, alias=None):
|
||||
entity = cls(hass, connection, deviceID, alias)
|
||||
@@ -39,6 +57,11 @@ def setup_platform(hass, config, async_add_devices, platform, cls):
|
||||
hass.data[DOMAIN][DATA_ADDERS][platform] = adder
|
||||
return True
|
||||
|
||||
|
||||
def is_setup_complete(hass):
|
||||
return hass.data[DOMAIN][DATA_SETUP_COMPLETE]
|
||||
|
||||
|
||||
class BrowserModEntity(Entity):
|
||||
|
||||
def __init__(self, hass, connection, deviceID, alias=None):
|
||||
@@ -47,7 +70,11 @@ class BrowserModEntity(Entity):
|
||||
self.deviceID = deviceID
|
||||
self._data = {}
|
||||
prefix = hass.data[DOMAIN][DATA_CONFIG].get(CONFIG_PREFIX, '')
|
||||
self.entity_id = async_generate_entity_id(self.domain+".{}", alias or f"{prefix}{deviceID}", hass=hass)
|
||||
self.entity_id = async_generate_entity_id(
|
||||
self.domain+".{}",
|
||||
alias or f"{prefix}{deviceID}",
|
||||
hass=hass
|
||||
)
|
||||
|
||||
def updated(self):
|
||||
pass
|
||||
@@ -55,6 +82,7 @@ class BrowserModEntity(Entity):
|
||||
@property
|
||||
def data(self):
|
||||
return self._data
|
||||
|
||||
@data.setter
|
||||
def data(self, data):
|
||||
self._data = data
|
||||
|
||||
Reference in New Issue
Block a user