SmartThings Community

TP-Link/Kasa Bulbs and Plugs Control

(Dave Gutheinz) #730

Upgrade should work. Replace existing DH code, SmartApp code.


(Mark) #731

I think I am missing something. Adding to outlets and followed creating the DH and SmartApp, but am not seeing how the auth to Kasa is setup or the connection to the physical devices. Tried using the network ip for the outlets, but that did not work. Am sure it is something I am doing wrong. Can anyone assist?


(Dave Gutheinz) #732
  1. Install the devices via the Kasa App, creating the account and login.
  2. Install the Device Handlers and Smart App on the IDE AFTER selection your hub on “My Locations”.
  3. On the Classic Application (not the new), go the Smart Apps and add a new app. A selection “My apps” appears at the bottom. Select that then the app you installed earlier.
  4. The first page, select installation type of “Kasa Account”.
  5. You will be prompted for a login in (same as for your Kasa Account). Enter this and follow the remaining prompts to install your devices.


1 Like

(Mark) #733

Awesome…knew it was something simple I missed. great app!




I just followed your instructions and copy/pasted the code for my TP-Link Plug, but when I click on Create, I get the following error message:

No signature of method: script_app_metadata_a446887c_1302_484d_a656_7e91b5b1bf3a.metadata() is applicable for argument types: (script_app_metadata_a446887c_1302_484d_a656_7e91b5b1bf3a$_run_closure1) values: [script_app_metadata_a446887c_1302_484d_a656_7e91b5b1bf3a$_run_closure1@18c6f9e8] Possible solutions: getMetadata(), getState(), setState(java.lang.Object), metaClass(groovy.lang.Closure)

Please advise, thank you!


(Dave Gutheinz) #736

I just tested and it worked OK. Only two guesses:

a. You did not copy full file or tried a “select all” in the GitHub window.

  Fist line should be:     /*
  last line should be:    //end-of-file

b. Sometimes (for reasons I do not know) the text does not copy as ascii code and mixes in non-ascii. Usually corrected by trying again.



(Radim Svoboda) #737

Dave, I can not log-in to the smart App with my KASA credentials. I get this error message. Can it be, that your app can’t handle special symbols in passwords, like question-marks and hashes?

I am absolutely certain I am entering a correct password.


(Dave Gutheinz) #738

Make sure you have blanked out the entire password field before entering the new password. There is a problem with some phones where they have memorized a password and overwrite the password you are entering.


(Radim Svoboda) #739

I did that as well. I found the issue by replacing my default android keyboard from Google to Samsung. The issue is not the keyboard actually. The issue is that the password needs to be sent when the cursor is in the USER EMAIL field and not through the keyboard but through the app’s NEXT button (TOP RIGHT corner).

Gosh, crazy, right?

1 Like

(George A Roberts IV) #740

@Gutheinz First, thanks for this! I have the cloud version installed with one HS200 switch. It works … but there’s one annoyance that I’m sure is due to how I’m using it. I’m hoping if I describe my scenario you can recommend a workaround.

In my kitchen I had a dimmer and a switch on a three-way circuit. I replaced the dimmer with a Wemo dimmer, which does not support 3-way operation. So I put a HS200 switch in place of the old three-way switch and power it but removed it from the circuit. The dimmer now controls the circuit, but I’d like the switch to still turn the circuit on and off.

I have set up a routine to trigger “when something turns on or off” so that when either the dimmer or the switch turns off it sets them both to off. And the same for on. This works exactly how I want it to … except that if I turn off or on the HS200 it takes the “refresh time” amount of time before SmartThings knows that the switch has been triggered and mirrors the state onto the dimmer.

All that to lead up to this … is there any way to get SmartThings to know immediately when the switch has been pressed?


(Dave Gutheinz) #741

No, there is no practical way. The best you can do is every minute by setting refresh interval in the preferences.

(Note that there are ways to do more, but it using it would consume excessive resources on the SmartThings cloud server. Not something I can support in my devices.)

1 Like

(George A Roberts IV) #742

Would using the node version instead of the cloud version help? It wasn’t clear to me from your posts what benefit using the local node environment would give me.


(Dave Gutheinz) #743

Support for RE270 and RE370 Range Extenders with smart plug. I have added support for this device. Due to an inability to find the on/off command sequence, I am using IFTTT for the on/off then refreshing the status using the normal interface.

Full instructions and the driver are at “DH Range Extender” folder on GitHub.


(Dave Gutheinz) #744

No. The node version does not help on resource utilization. It is still dependent on processing from the SmartThings cloud.


(Ken Kleefman ) #745

@seant, what dh are you using for your HS200? I can’t seem to find anything that works.


(Ken Kleefman ) #746

@Gutheinz, what DH do you have that works with the HS200? I can’t find anything that works. I have an HS220 that works with one of your DHs but it doesn’t work with the HS200. When I try to add it in ST classic app, it shows as available to add but when I try to save it then I always end up with an error saying it can’t save. I’m at a loss as to what to do.


(George A Roberts IV) #747

I ended up writing a node script myself that polls the switch every second and triggers a webhook on IFTTT which switches my other switch off through SmartThings. Seems to work well and is pretty quick.


(Dave Gutheinz) #748

Below is a list of devices and supporting device handler.

	tpLinkModel << ["HS100" : "TP-Link Smart Plug"]
	tpLinkModel << ["HS103" : "TP-Link Smart Plug"]
	tpLinkModel << ["HS105" : "TP-Link Smart Plug"]
	tpLinkModel << ["HS200" : "TP-Link Smart Switch"]
	tpLinkModel << ["HS210" : "TP-Link Smart Switch"]
	tpLinkModel << ["KP100" : "TP-Link Smart Plug"]
	//	WiFi Range Extender with smart plug.
	tpLinkModel << ["RE270" : "TP-Link Smart Plug"]
	tpLinkModel << ["RE370" : "TP-Link Smart Plug"]
	//	Miltiple Outlet Plug
	tpLinkModel << ["HS107" : "TP-Link Smart Multi-Plug"]
	tpLinkModel << ["HS300" : "TP-Link Smart Multi-Plug"]
	tpLinkModel << ["KP200" : "TP-Link Smart Multi-Plug"]
	tpLinkModel << ["KP400" : "TP-Link Smart Multi-Plug"]
	//	Dimming Switch Devices
	tpLinkModel << ["HS220" : "TP-Link Smart Dimming Switch"]
	//	Energy Monitor Plugs
	tpLinkModel << ["HS110" : "TP-Link Smart Energy Monitor Plug"]
	tpLinkModel << ["HS115" : "TP-Link Smart Energy Monitor Plug"]
	//	Soft White Bulbs
	tpLinkModel << ["KB100" : "TP-Link Smart Soft White Bulb"]
	tpLinkModel << ["LB100" : "TP-Link Smart Soft White Bulb"]
	tpLinkModel << ["LB110" : "TP-Link Smart Soft White Bulb"]
	tpLinkModel << ["KL110" : "TP-Link Smart Soft White Bulb"]
	tpLinkModel << ["LB200" : "TP-Link Smart Soft White Bulb"]
	//	Tunable White Bulbs
	tpLinkModel << ["LB120" : "TP-Link Smart Tunable White Bulb"]
	tpLinkModel << ["KL120" : "TP-Link Smart Tunable White Bulb"]
	//	Color Bulbs
	tpLinkModel << ["KB130" : "TP-Link Smart Color Bulb"]
	tpLinkModel << ["LB130" : "TP-Link Smart Color Bulb"]
	tpLinkModel << ["KL130" : "TP-Link Smart Color Bulb"]
	tpLinkModel << ["LB230" : "TP-Link Smart Color Bulb"]

(Ken Kleefman ) #749

thanks Dave, but how do I find the link to the device handler you listed?


(Dave Gutheinz) #750