Remove global variable from tellstick code (#4700)

* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.

* Refactor Tellstick object model for increased clarity.

* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.

* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.

* Refactor Tellstick object model for increased clarity.

* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.

* Fix lint issues.

* Remove global variable according to hint from balloob.
This commit is contained in:
Magnus Ihse Bursie 2016-12-04 02:27:55 +01:00 committed by Paulus Schoutsen
parent c89e6ec915
commit 97cc76b43e
3 changed files with 12 additions and 11 deletions

View File

@ -29,16 +29,17 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
signal_repetitions = discovery_info.get(ATTR_DISCOVER_CONFIG, signal_repetitions = discovery_info.get(ATTR_DISCOVER_CONFIG,
DEFAULT_SIGNAL_REPETITIONS) DEFAULT_SIGNAL_REPETITIONS)
add_devices(TellstickLight(tellcore_id, signal_repetitions) add_devices(TellstickLight(tellcore_id, hass.data['tellcore_registry'],
signal_repetitions)
for tellcore_id in discovery_info[ATTR_DISCOVER_DEVICES]) for tellcore_id in discovery_info[ATTR_DISCOVER_DEVICES])
class TellstickLight(TellstickDevice, Light): class TellstickLight(TellstickDevice, Light):
"""Representation of a Tellstick light.""" """Representation of a Tellstick light."""
def __init__(self, tellcore_id, signal_repetitions): def __init__(self, tellcore_id, tellcore_registry, signal_repetitions):
"""Initialize the light.""" """Initialize the light."""
super().__init__(tellcore_id, signal_repetitions) super().__init__(tellcore_id, tellcore_registry, signal_repetitions)
self._brightness = 255 self._brightness = 255

View File

@ -26,7 +26,8 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
signal_repetitions = discovery_info.get(ATTR_DISCOVER_CONFIG, signal_repetitions = discovery_info.get(ATTR_DISCOVER_CONFIG,
DEFAULT_SIGNAL_REPETITIONS) DEFAULT_SIGNAL_REPETITIONS)
add_devices(TellstickSwitch(tellcore_id, signal_repetitions) add_devices(TellstickSwitch(tellcore_id, hass.data['tellcore_registry'],
signal_repetitions)
for tellcore_id in discovery_info[ATTR_DISCOVER_DEVICES]) for tellcore_id in discovery_info[ATTR_DISCOVER_DEVICES])

View File

@ -62,8 +62,6 @@ def setup(hass, config):
from tellcore.library import DirectCallbackDispatcher from tellcore.library import DirectCallbackDispatcher
from tellcore.telldus import TelldusCore from tellcore.telldus import TelldusCore
global TELLCORE_REGISTRY
try: try:
tellcore_lib = TelldusCore( tellcore_lib = TelldusCore(
callback_dispatcher=DirectCallbackDispatcher()) callback_dispatcher=DirectCallbackDispatcher())
@ -75,8 +73,9 @@ def setup(hass, config):
all_tellcore_devices = tellcore_lib.devices() all_tellcore_devices = tellcore_lib.devices()
# Register devices # Register devices
TELLCORE_REGISTRY = TellstickRegistry(hass, tellcore_lib) tellcore_registry = TellstickRegistry(hass, tellcore_lib)
TELLCORE_REGISTRY.register_tellcore_devices(all_tellcore_devices) tellcore_registry.register_tellcore_devices(all_tellcore_devices)
hass.data['tellcore_registry'] = tellcore_registry
# Discover the switches # Discover the switches
_discover(hass, config, 'switch', _discover(hass, config, 'switch',
@ -153,17 +152,17 @@ class TellstickDevice(Entity):
Contains the common logic for all Tellstick devices. Contains the common logic for all Tellstick devices.
""" """
def __init__(self, tellcore_id, signal_repetitions): def __init__(self, tellcore_id, tellcore_registry, signal_repetitions):
"""Initalize the Tellstick device.""" """Initalize the Tellstick device."""
self._signal_repetitions = signal_repetitions self._signal_repetitions = signal_repetitions
self._state = None self._state = None
# Look up our corresponding tellcore device # Look up our corresponding tellcore device
self._tellcore_device = TELLCORE_REGISTRY.get_tellcore_device( self._tellcore_device = tellcore_registry.get_tellcore_device(
tellcore_id) tellcore_id)
# Query tellcore for the current state # Query tellcore for the current state
self.update() self.update()
# Add ourselves to the mapping # Add ourselves to the mapping
TELLCORE_REGISTRY.register_ha_device(tellcore_id, self) tellcore_registry.register_ha_device(tellcore_id, self)
@property @property
def should_poll(self): def should_poll(self):