Getting the TP-Link HS110 Smart Plug to work with Apple Home & Siri
I recently came across the TP-Link HS110 Smart Plug which was priced quite reasonably and had energy monitoring built-in. The fact that it worked with Amazon Alexa made it more intriguing to test it out. I’ve been already using a couple of cheaper Wi-Fi connected Orvibo S20 smart plugs but I’ve not really be satisfied with it due to its poor connectivity stability. So without much further thoughts, I bought them and tested it out immediately.
Setting up the TP-Link HS110 Smart Plug
The installation of the TP-Link HS110 Smart Plug was really simple. In fact, it’s so simple it seems quite stupid for me to write down the whole set up process of the TP-Link HS110 Smart Plug. Instead, I’ve just taken the bunch of photos and screenshots of TP-Link’s Kasa App on my iPhone to get you a run through of a typical set up of the smart plug. The Smart Plug you see below is a UK-edition but everything else should just be the same as the US-edtion.
Setting up the TP-Link HS110 Smart Plug with Alexa
Setting it up with Alexa is also quite simple. Again, I’d rather just post the following screenshots which are pretty self-explanatory on the steps it takes to get it connected with Alexa.
While works really great with Alexa, I actually found it quite lacking as I only have a single Echo Dot unit that I actually use mostly as a demo device at work. Therefore, I could get more Echo Dots to be installed around my home so that I can start using voice commands to turn these TP-Link HS110 Smart Plug switches on or off. Or, I could somehow make it work with Apple’s Home app and therefore with Siri instead!
The Apple Home app and Siri integration
I’ve been somewhat aware of a HomeKit bridge project which allowed for devices that are not built for it to work. Now that I had a potential smart device that would work with it, I quickly search and found the HomeBridge project. HomeBridge is essentially a server that emulates the HomeKit API thus allowing a multitude of devices to work with the Apple Home app. It is a very lightweight server and can run even on a Raspberry Pi. I had a spare Raspberry Pi 2 Model B and decided to use it for my HomeBridge setup. If you don’t have one, I’d recommend you to get the newer Raspberry Pi 3 Model B which has a built-in Wi-Fi connectivity.
There are many guides out there on how to set up the Raspberry Pi. The documentation at raspberrypi.org is quite easy to follow but a Google search would also get you a whole bunch of guides on the setup. Once you got your Raspberry Pi running, it is then time to install HomeBridge on the Raspberry Pi. The guide here is excellent and it’s exactly what I did to get my TP-Link HS110 Smart Plug working with it. Now, you do need to be comfortable with running commands on terminal. But even if you’re not familiar, what better way than to explore and pick up some command line skills!
You can also set up Homebrige to run on Windows and MacOS. But what’s the fun in that? 😎 More importantly, you’d actually want to keep HomeBridge running on a low-powered device like the Raspberry Pi 3 Model B than a desktop machine running 24/7/365 at your home.
Avoiding some HomeBridge gotchas
Now, I don’t intend to write up a full step-by-step guide on the HomeBridge setup here. But here are a couple of things to point out as reminders that I either missed or made a mistake on.
- Make sure you set up the ~/.homebridge/config.json file. It’s not there by default. Just use the sample config file here and edit accordingly.
My config.json looks like the following screenshot. You can see that I didn’t even bother to edit the description. 😆
Do note that the config below includes the configuration for the TP-Link HS100 HomeBridge plugin and also a WakeOnLan plugin for HomeBridge.
I used my Raspberry Pi’s Wi-Fi MAC address as the HomeBridge’s username but it really don’t matter whatever you put it as, though it is using a MAC address format.
I’ve also edited the pin to a set of numbers that I can remember. I would also encourage you to edit it to a different number from the default one provided in the sample config file.
- You would want to set up a static IP assignment for the TP-Link HS110 Smart Plug on your router. The HS100 HomeBrige plugin caches the IP address in its configuration and if the actual device IP changes (via a new DHCP assignment) then the plugin would fail and you would need to purge the HomeBridge configurations persistence and restart HomeBridge again. Not fun. So, depending on your router, make sure you configure it accordingly. I’m using an Asus RT-AC87U and the following screenshot is where you would configure the manual IP assignment. You can find this settings under Advanced Settings -> LAN -> DHCP Server.
- You will also need to make sure the router does not block and disable multicast within your network. Otherwise, you will often see the “No accessories responding” status on iOS Home app. The necessary configurations are a little tricky and it depends very much on the router you use. For my Asus RT-AC87U, I find that disabling IPv6 support and configuring the following settings at the IPTV settings under the LAN settings works for me. It’s not perfect and sometimes it does loose connection for a while but this is as stable as I can get it working for the moment.
- Make sure the Wi-Fi device power saving mode on the Raspberry Pi is disabled. I used the steps described here to disable it.
So there you go. With everything setup, you would see the following in your iOS Home app and you can now use Siri to ask it to “Turn on the Bedroom Lamp”!
If you have any trouble getting it to work, just send me a comment on this post and I’ll try my best to help guide you along. Have fun HomeBridge hacking!