TP-Link Switch


The tplink switch platform allows you to control the state of your TP-Link smart switch.

Supported units:

  • HS100
  • HS105
  • HS110
  • HS200

Configuration

To use your TP-Link switch or socket in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
switch:
  - platform: tplink
    host: IP_ADDRESS

Configuration Variables

name

(string)(Optional)The name to use when displaying this switch.

Default value: TP-Link Switch

host

(string)(Required)The IP address of your TP-Link switch, eg. 192.168.1.32.

enable_leds

(boolean)(Optional)If the LEDs on the switch (WiFi and power) should be lit.

Adding multiple switches

You may need to add multiple switches and the config would need to include multiple switches separately.

# Example configuration.yaml entry
switch:
  - platform: tplink
    host: FIRST_IP_ADDRESS
  - platform: tplink
    host: SECOND_IP_ADDRESS

Configure Energy Sensors

In order to get the power consumption readings from the HS110, you’ll have to create a template sensor. In the example below, change all of the my_tp_switch’s to match your switch’s entity ID.

sensor:
  - platform: template
    sensors:
      my_tp_switch_amps:
        friendly_name_template: "{{ states.switch.my_tp_switch.name}} Current"
        value_template: '{{ states.switch.my_tp_switch.attributes["current_a"] | float }}'
        unit_of_measurement: 'A'
      my_tp_switch_watts:
        friendly_name_template: "{{ states.switch.my_tp_switch.name}} Current Consumption"
        value_template: '{{ states.switch.my_tp_switch.attributes["current_power_w"] | float }}'
        unit_of_measurement: 'W'
      my_tp_switch_total_kwh:
        friendly_name_template: "{{ states.switch.my_tp_switch.name}} Total Consumption"
        value_template: '{{ states.switch.my_tp_switch.attributes["total_energy_kwh"] | float }}'
        unit_of_measurement: 'kWh'
      my_tp_switch_volts:
        friendly_name_template: "{{ states.switch.my_tp_switch.name}} Voltage"
        value_template: '{{ states.switch.my_tp_switch.attributes["voltage"] | float }}'
        unit_of_measurement: 'V'
      my_tp_switch_today_kwh:
        friendly_name_template: "{{ states.switch.my_tp_switch.name}} Today's Consumption"
        value_template: '{{ states.switch.my_tp_switch.attributes["today_energy_kwh"] | float }}'
        unit_of_measurement: 'kWh'