Connect a TP-Link HS110 Smart Plug to HomeKit with Homebridge

As of right now, the only HomeKit-certified smart plug available in Australia is the Elgato Eve Energy – which is bulky, expensive, and uses Bluetooth LE rather than Zigbee, Z-Wave or WiFi.

TP-Link have two WiFi-enabled smart plugs available (HS100 / HS110). While these smart plugs can’t be directly used with HomeKit – by using Homebridge as a software HomeKit bridge, they work great!

Here’s the recipe:

Connect Smart Plug to WiFi

Follow the instructions that came with the smart plug to connect it to WiFi (ensure that this is the same WiFi network that everything else is connected to). Once the smart plug is connected to WiFi, there is no further need for the Kasa app.

Homebridge plugin and config

Don’t already have Homebridge up and running? You should really check out my guide for setting Homebridge up – come back here once you’re done:

Configure Homebridge as a Service on Debian

TP-Link Smart Home plugin and config

A quick one-liner to install the TP-Link Smart Home plugin:

sudo npm install -g homebridge-tplink-smarthome

Once the plugin is installed, use the configuration below – there’s no real need to change anything, but be aware that this is just a snippet and needs to be added to your Homebridge config.json file. If you don’t find yourself writing JSON regularly, it’s probably a good idea to check the syntax at JSONLint.

"platforms": [
    {
        "platform": "TplinkSmarthome",
        "name": "TplinkSmarthome",

        "broadcast": "255.255.255.255",
        "devices": [],
        "deviceTypes": [],
        "macAddresses": [],
        "pollingInterval": 10,

        "addCustomCharacteristics": true,
        "inUseThreshold": 0,
        "switchModels": ["HS200"],
        "timeout": 5
    }
]

Restart Homebridge

After the config.json file is updated, you need to restart Homebridge for the device to be recognised:

sudo systemctl restart homebridge

..and that’s it!