Added functionallity so that the tellstick switch can send it's signals repeatedly
Because the tellstick sends its actions via radio and from most receivers it's impossible to know if the signal was received or not.
This commit is contained in:
parent
d7e46b5427
commit
370355b94b
1 changed files with 17 additions and 4 deletions
|
@ -3,6 +3,12 @@ homeassistant.components.switch.tellstick
|
|||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Support for Tellstick switches.
|
||||
|
||||
Because the tellstick sends its actions via radio and from most
|
||||
receivers it's impossible to know if the signal was received or not.
|
||||
Therefore you can configure the switch to try to send each signal repeatedly
|
||||
with the config parameter signal_repetitions (default is 1).
|
||||
signal_repetitions: 3
|
||||
"""
|
||||
import logging
|
||||
|
||||
|
@ -11,6 +17,8 @@ from homeassistant.const import ATTR_FRIENDLY_NAME
|
|||
from homeassistant.helpers.entity import ToggleEntity
|
||||
import tellcore.constants as tellcore_constants
|
||||
|
||||
SINGAL_REPETITIONS = 1
|
||||
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
def setup_platform(hass, config, add_devices_callback, discovery_info=None):
|
||||
|
@ -22,6 +30,8 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None):
|
|||
"Failed to import tellcore")
|
||||
return
|
||||
|
||||
signal_repetitions = config.get('signal_repetitions', SINGAL_REPETITIONS)
|
||||
|
||||
core = telldus.TelldusCore()
|
||||
switches_and_lights = core.devices()
|
||||
|
||||
|
@ -29,7 +39,7 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None):
|
|||
|
||||
for switch in switches_and_lights:
|
||||
if not switch.methods(tellcore_constants.TELLSTICK_DIM):
|
||||
switches.append(TellstickSwitchDevice(switch))
|
||||
switches.append(TellstickSwitchDevice(switch, signal_repetitions))
|
||||
|
||||
add_devices_callback(switches)
|
||||
|
||||
|
@ -39,9 +49,10 @@ class TellstickSwitchDevice(ToggleEntity):
|
|||
last_sent_command_mask = (tellcore_constants.TELLSTICK_TURNON |
|
||||
tellcore_constants.TELLSTICK_TURNOFF)
|
||||
|
||||
def __init__(self, tellstick):
|
||||
def __init__(self, tellstick, signal_repetitions):
|
||||
self.tellstick = tellstick
|
||||
self.state_attr = {ATTR_FRIENDLY_NAME: tellstick.name}
|
||||
self.signal_repetitions = signal_repetitions
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
|
@ -63,8 +74,10 @@ class TellstickSwitchDevice(ToggleEntity):
|
|||
|
||||
def turn_on(self, **kwargs):
|
||||
""" Turns the switch on. """
|
||||
self.tellstick.turn_on()
|
||||
for _ in range(self.signal_repetitions):
|
||||
self.tellstick.turn_on()
|
||||
|
||||
def turn_off(self, **kwargs):
|
||||
""" Turns the switch off. """
|
||||
self.tellstick.turn_off()
|
||||
for _ in range(self.signal_repetitions):
|
||||
self.tellstick.turn_off()
|
||||
|
|
Loading…
Add table
Reference in a new issue