[Custom Component] Tapo P100 Plug Control

I’ve developed a small preview of UI. It requires less time than expected.

This is a small preview (sorry for bad video mount and Italian language). Notice that the UI integration use my plugp100 library.

Before release this version, I ask you to test 2 things:

  • get a dump of full state from different tapo devices, especially the light bulb. I need the value of “model” and “type” in order to distinguish the creation of light or switch entities.
    You can get a dump of state by calling the method getDeviceInfo from PyPlug100 library or by calling the method get_state from my plugp100 library. (remember not to share the location or ssid)
  • I don’t known if the token created by login method have an expiration time. Anyone can test this?

Anyway, I want to release a stable version in April.

Thanks for support.

L530 bulb, I get type=" SMART.TAPOBULB", model=“L530 Series”
I’'m also interested in what the output is for L510 bubs as in my code in my PR for adding colour support I only checked if it was an L530, then assumed that if it wasn’t it was an L510.

Also for anyone else sharing the output, obviously make sure you trim the end bit off which has your SSID and location (if set).

Thank you so much. Now I edit the post to prevent the location share.

Hi guys,
I am new to HA, I’ve installed HomeAssistant OS on a Raspberry Pi 4 with the guide on their website, nice and easy.
Got a couple of P100s and followed the instruction in the github copying the p100 folder to /config/custom_components/.
I restarted HomeAssistant and the code didn’t get added to my configuration.yaml so I added it myself with the correct ip and login details.

After I reboot the HA, I still cannot find my device as a new entity…
I’m assuming I’ve missed a step? Anything else I need to download within HomeAssistant OS?
Thanks for your patience, new to all this and havn’t tried any other custom components like this before.

Hi,
I’m having the same issue as jb01390! Brand new to HA, got a raspberry pi 4 8 GB and set it up with HomeAssistant OS. Installed the file to custome_components, looked on visual code to make sure the yaml configurations were good. I’ve restarted both my laptop and HA and it still doesn’t show up in intergrations.

Me too I have installed the custom_component and did the setup in config but yet nothing shows up

Hi guys, I’ve good news, I realized the UI implementation, currently considered as a beta version.

There is a lot of difference from the fishbigger implementation, for this reason I’ve uploaded the code to my old repository, but I’m open to make pull request when all scheduled improvements described below are meet.

  • the workflow change completely. I’ve “optimized” the requests to tapo devices avoiding every time to make handshake and login.
  • I’ve used my plugp100 library that seems to be a more stable (e.g. I use password longer than 8 char).
  • actually only switch are supported, because I need to update the plugp100 library for light bulb, but is not complicated. In a few days I will add.
  • I’ve added the support for HACS. You can install this integration from HACS by adding my repository https://github.com/petretiandrea/home-assistant-tapo-p100. (don’t follow the README, is not updated :frowning: )

When the integration is installed, I recommend a full reboot, for enable the integration UI.

As I described above, this is considered a beta version, for this reason install, test and report issues.

Next scheduled improvements are:

  • support for bulb (in a few days I will add)
  • improve error handling in UI flow
  • improve plugp100 library (e.g. handle here the optimization described above, actually is handled in HA code)

:slight_smile:

EDIT: new update post below

1 Like

pretty sweet, thank you. looking forward to the addition of the bulbs.

When ever i try to install the integration i get the following error:-

Invalid authentication

Any ideas?

That’s brilliant! Look forward to testing the bulbs. Thanks for tackling this

Hi guys. I’ve newss!!

I’ve been upgrade my plugp100 library making it async. And I’ve added support for light bulb (only brightness). For color, I need contributions, because I don’t have a light bulb for test.

Here there is a new version of integration that use my new library version! The integration now support light bulb. For the same reason explained above, I need that you test the light integration.

The integration can be installed by adding this repository to hacs! Rate a star and open issues for any problem :wink:

1 Like

Try with this new integration version. mochipon close an issue related to a missing request parameter into login method :slight_smile:

Hey Pedro, happy to help with colour tests, let me know how I can go about it and you’re welcome to DM

edit added via HACS, added bulbs via integrations (full restarts at all stages), they show in the integrations menu but they don’t appear in devices or entities. I’ve culled fishbiggers config and custom_components just incase there was an issue loading both. Any thoughts?

Hi, I don’t know if both integration collide in some way, post your home assistant log after adding an entity to my integration.

A reason why you might not see your entities, is that for now only P100 and light bulb 105 works, what is your tapo device? In my previous post here I ask to get me the device model and type, because this allows the integration to automatically provide the right entity (switch or light).
Please send me your model and type of your tapo device.

Regarding the color bulb, first I need that you test if brightness work with actual implementation.

Oh, this makes sense, its probably the reason for which my L530E bulbs didnt show up as entities either; but based on this, there’s no way to test the brightness setting (at least in my case), if current support is only for the P100 plug & L510E bulb.

If you use this piece of code you can post here the state of your lamp:

import asyncio
from plugp100 import TapoApiClient

async def main():
    # create generic tapo api
    sw = TapoApiClient("<ip>", "<email>", "<passwd>")
    state = await sw.get_state()
    print(f"Model: {state.model}, Type: {state.type}")

loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.run_until_complete(asyncio.sleep(0.1))
loop.close()

Post here the output and I will add support in few minutes :slight_smile:

I’d love to help, but I’m running an unsupported install of Home Assistant through Docker, and your integration for Tapo was installed manually; If there’s a way to run the code you mentioned and you can point me in the right direction, I’ll gladly post the output.

@arrival-spring did say in a previous reply that for the L530E bulbs he gets type=" SMART.TAPOBULB" and model=“L530 Series”

I’ve updated the repository (branch dev). Try now, I’ve erroneously deleted l530, I wait your feedback :slight_smile:

They still dont show up as entities for some reason :frowning_face:

:frowning: you can post the log of home assistant? Sorry but I don’t have a light to test the integration

EDIT: sorry to everyone, I’m stupid ahahahah. I forget to enable light as platform for this integration, please retry now I’ve updated the repository.