TP-Link Kasa Spot KC100

Has anyone tried to integrate new tp-link cloud cameras?


I would also like to know if anyone is working on the TP-Link KC100 cameras.
These are such great cameras!

1 Like

+1 really need this

There’s a really good write up over on Medium that walks through reverse engineering the KC100 API. He was able to get local live streaming setup. The instructions worked for my KC105 as well. Saved me from having to return my camera :grinning:

1 Like

Gday Josh,

I’ve gone through the article, having issues integrating on my side as I continue to get 401 errors.

Can I confirm the user name was your email and the password was the encoded password? If so which way did you encode it?

Did you have to fetch your device id, or are they all the same?

Hey @Anton2079 - that’s correct, the username and password are the ones used to set up the Kasa account (so the user name should be an email). In regards to the device id, I just left that portion off since I also wasn’t sure what my device ID was :grinning:. I have a comment over on Github that shows an example of how to encode the credentials, and shows the final command I ended up using.

1 Like

I have setup a small add-on that handles connecting to the Kasa camera and exposes the stream so that it can be used in Home Assistant. This seems to work on my KC105 camera. If anyone wants to give it a shot it’s available at I found that sometimes the stream has I/O errors, so I’ve added some logic to retry the connection as well. Credit to @Anton2079 for suggesting that a Docker container might be a good way to deploy something like this.

1 Like

@joeshgetter Works great with my KC100!!! Can not thank you enough, I had have decided this is no-go, but oh man - so cool to have the stream inside HA now.
Going to try now to expose this stream to homekit: and notifications with streams :smiley:

I’m starting thinking of expanding cameras. Have you thought of having more than one cam setting?


Hi, I don’t know why it doesn’t work for me. Could you have a look at the logs and tell me what to do?

[s6-init] making user provided files available at /var/run/s6/etc…exited 0.
[s6-init] ensuring user provided files have correct perms…exited 0.
[fix-attrs.d] applying ownership & permissions fixes…
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts…
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Starting Nginx
Nginx Started
Starting controller
[Controller] Controller is starting.
[Controller] Loading configuration.
[Controller] Initial toggle status: True.
[Wrapper] Starting Ffmpeg.
[Controller] Controller is running.
[HealthChecker] Starting health checker.
[https @ 0x74ecccb0] No trailing CRLF found in HTTP header. Adding it.
[flv @ 0x20e8f50] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly

Glad to hear its working! Support for multiple cameras would be cool. I’ll have to look into that. Unfortunately I only have the one KC105 camera so testing could be a bit difficult. If you get another let me know if you’d like to test something out.

@Adalbertus_PL - those logs actually look normal (that warning at the end is due to the way the camera streams the video). I’d have to see the configuration (without username/password) and the url you’re using to see the stream.

Theoretically, if I was to run more than one instance of HA and run your add on separately on each instance, would I be able to expose multiple cameras via individual URLs?

If you’re looking to do some testing, I have 4 KC100’s. At the time they seemed like a good idea :rofl: I just got the first one working, and I was just about to start researching the others when I saw this thread was still alive :smiley:

It’s works!! I have a KC100 camera and works. I’ve tried sometimes but it didn’t work. I revised a lot of time configuration files, ips, ports but I was the error hehehe.

" Note that the output will be at HA IP which is the IP address of your Home Assistant instance not the IP of the camera."
This is the key, I put the camera IP, right now I’ve changed the IP and It’s works fine!!

Thanks a lot!!

I have three of these, one working great with your add on, would love to test a version with support for more than one camera for you.

1 Like