New Switch Platform: TPLink Switch (HS100 / HS110) (#2453)
* New Switch Platform: TPLink Switch (HS100 / HS110) ### Information The TPLink switch platform allows you to control the state of your TPLink Wi-Fi Smart Plugs. Supported devices (tested): HS100 (UK) It should also work with the HS110. To use your D-Link smart plugs in your installation, add the following to your configuration.yaml file: """ # Example configuration.yaml entry switch: platform: tplink host: IP_ADRRESS name: TPLink Switch """ ### Configuration variables: host (Required): The IP address of your TPlink plug, eg. http://192.168.1.105 name (Optional): The name to use when displaying this switch. * Update tplink.py Bug fixes * Separate to a standalone library * Removed unnecessary imports * Code cleanup and update reference library link * TPLink switch support (#2453) * updated requirementspull/2487/head
parent
344fb9c8b4
commit
609458052c
|
@ -223,6 +223,7 @@ omit =
|
|||
homeassistant/components/switch/pulseaudio_loopback.py
|
||||
homeassistant/components/switch/rest.py
|
||||
homeassistant/components/switch/rpi_rf.py
|
||||
homeassistant/components/switch/tplink.py
|
||||
homeassistant/components/switch/transmission.py
|
||||
homeassistant/components/switch/wake_on_lan.py
|
||||
homeassistant/components/thermostat/eq3btsmart.py
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
"""Support for TPLink HS100/HS110 smart switch.
|
||||
|
||||
It is able to monitor current switch status, as well as turn on and off
|
||||
the switch. Will work with both HS100 and HS110 switch models.
|
||||
"""
|
||||
|
||||
from homeassistant.components.switch import SwitchDevice
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, CONF_NAME)
|
||||
|
||||
# constants
|
||||
DEVICE_DEFAULT_NAME = 'HS100'
|
||||
REQUIREMENTS = ['https://github.com/gadgetreactor/pyHS100/archive/'
|
||||
'master.zip#pyHS100==0.1.2']
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
|
||||
|
||||
def setup_platform(hass, config, add_devices_callback, discovery_info=None):
|
||||
"""Setup the TPLink platform in configuration.yaml."""
|
||||
from pyHS100.pyHS100 import SmartPlug
|
||||
host = config.get(CONF_HOST)
|
||||
name = config.get(CONF_NAME, DEVICE_DEFAULT_NAME)
|
||||
|
||||
add_devices_callback([SmartPlugSwitch(SmartPlug(host),
|
||||
name)])
|
||||
|
||||
|
||||
class SmartPlugSwitch(SwitchDevice):
|
||||
"""Representation of a TPLink Smart Plug switch."""
|
||||
|
||||
def __init__(self, smartplug, name):
|
||||
"""Initialize the switch."""
|
||||
self.smartplug = smartplug
|
||||
self._name = name
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
"""Return the name of the Smart Plug, if any."""
|
||||
return self._name
|
||||
|
||||
@property
|
||||
def is_on(self):
|
||||
"""Return true if switch is on."""
|
||||
return self.smartplug.state == 'ON'
|
||||
|
||||
def turn_on(self, **kwargs):
|
||||
"""Turn the switch on."""
|
||||
self.smartplug.state = 'ON'
|
||||
|
||||
def turn_off(self):
|
||||
"""Turn the switch off."""
|
||||
self.smartplug.state = 'OFF'
|
|
@ -128,6 +128,9 @@ https://github.com/danieljkemp/onkyo-eiscp/archive/python3.zip#onkyo-eiscp==0.9.
|
|||
# homeassistant.components.device_tracker.fritz
|
||||
# https://github.com/deisi/fritzconnection/archive/b5c14515e1c8e2652b06b6316a7f3913df942841.zip#fritzconnection==0.4.6
|
||||
|
||||
# homeassistant.components.switch.tplink
|
||||
https://github.com/gadgetreactor/pyHS100/archive/master.zip#pyHS100==0.1.2
|
||||
|
||||
# homeassistant.components.netatmo
|
||||
https://github.com/jabesq/netatmo-api-python/archive/v0.5.0.zip#lnetatmo==0.5.0
|
||||
|
||||
|
|
Loading…
Reference in New Issue