[RELEASE] TP-Link Plug, Switch, and Bulb integration


oddly, cannot get error to appear with trace on. Will see if maybe it goes away. Maybe there's some bug with TP-Link not populating certain things.


How long is your device name in TP-Link? There is an issue that (sometimes) TP-Link will fragment the return to two messages (which Hubitat can not pass through). Happens when the TP-Link name is greater than 17 characters (total message link causes the breakup). There are also other times that TP-Link breaks up the message into two parts - usually toward end of month when message is longest. It happens when the device has been busy for a while.


just called "Washer" in Kasa.


Then the second case. Nothing I can fix. The only workaround is to go to Kasa or Node account versions (3.6).


not sure I understand. but right now, it's working. =-)


Dave, Amazing, fantastic job, works perfect with the HS-105 plug
and I don't need their stupid app !

Thank You !!!


Dave, thank you for the excellent work, I have 2 HS-100 plugs in my bedroom, 1 to control a fan and 1 to control a space heater. I finally have a solution without having to upgrade them that I can use automation to turn on and off as needed.


thanks for this Dave, I was a bit confusing as the readme says to grab the driver for the device you have, but with your 4.2 update you just need the driver & app.
Followed the instructions and had this installer with my HS100 and working well. Thanks for your work!


Awesome integration. Just a heads up for those who get the HS300 multi power strip. Don't name the devices too long in the Kasa APP or else it will not be found. Not sure if that was mentioned earlier. Made that mistake and couldn't find one strip. Not sure the limit. If you rename later after installing, you may get COM errors saying this.


The limitation is that the devices fragment the return message (sometimes) when the return message is too long. The name is part of the message. I thought this only applied to Energy Monitor Plugs; however..... Hubitat (and SmartThings) do not have ways to capture two messages from one sent get statement.

Experience has in the past shown that 16 characters or less seem to work.



I guess HS300 is an energy monitor plug strip so that helps. 16 character limit is a good start


Not energy monitor, it is just the size of the message. The multi-plug returns can be long, as can the EM plugs.


Ah gotcha. I use them for sense monitor and forgot this driver doesn't monitor the energy. Is the limitation with Hubitat. Sorry for the nub question


Limitation is my explicit knowledge of the EM functions (how to call and how to parse) for the 300.


This app works great, thank you very much for your hard work. I just added a KP400 (dual outdoor plugs) to my setup. Any chance of a driver to support this device? Never had much luck with the range of my GE outdoor zwave plugs but the KP400 is working great.


The KP400 should install using the driver file: TP-Link Multi-Plug (Hubitat).groovy.



I installed that driver also but initially it didn’t discover the plug. Launched the app again this morning and there it was! Works perfectly. Thanks again!


An update is planned for 15 July with the following changes:

  • Synchronize Names. Preference. three options: do not synchronize, synchronize with the Hubitat Label as the master, or synchronize with the device (Kasa) alias as the master).
  • Debug logging. Preference. On or off without a 30 minute turn off. Default is off.
  • Info Logging. Preference. On or off preference. Default is on.
  • Fast Polling for Plug-Switch Driver. Code Option. Default is false. User can set to fast polling in the driver code. Then go to the individual devices to select the true/false Preference. Will monitor on/off state every 5 seconds and update attribute switch if changed.
  • Fast Polling for the Energy Monitor Switch Driver. Code Option. Default is false. User can set to fast polling in the driver code. Then go to the individual devices to select the true/false Preference. Will monitor power state every 5 seconds and update attribute power if changed.
  • Reduced attribute updates. To reduce system load, now only update attributes and log the info message when they have changed.
  • Hubitat Import Capability. Added an internal link that will allow future updates via the import button in the driver / application editor.
  • HS-300 Energy Monitor Driver. A new driver for the HS-300 multi-plug which also has energy monitoring capability should be ready (I get my multi-plug tomorrow). Exact details coming soon.
  • Compatibility. I will assure compatibility with all Version 4.x drivers using the new drivers and application. The Version 4.x drivers are the UDP communications versions that are currently on the server.

Notes on fast polling:

  1. Can have significant impact on Hub resources if used by too many devices.
  2. If device is off-line (no response received), will immediately stop. Will restart at the next refresh cycle.
  3. Typical Use Case - Switch. To monitor someone using the wall switch with the desire for a follow-on action (i.e., turn on/off other items). Example: Turn on left hall switch and right turns on rapidly and automatically using a rule (within 6 seconds, 3 seconds average).
  4. Typical Use Case - Energy Monitor Plug. Monitor a gas dryer (or low amp electric dryer) or washer to report when cycle finishes and power usage drops below a nominal setting. Using Rule Machine can sent SMS message, cause audio TTS announcement, or turn on/off light).
  5. I am still not convinced that one minute polling is not sufficient - especially for the energy monitor; however, I do listen and the function was easy to implement.

Current status. All code is done except the HS-300 driver. I have been completing robustness and stress testing on my hub using 1 minute polling, fast polling, and 15 minute application polling without detected (by my operations) impact.

Comments, concerns, and complaints are welcome.



Sounds like a crazy good update is heading our way.
Very cool Dave


Cheers Dave,
sounds great