Controller for TP-Link Tapo P100 and other devices
This is a fork of original work of @K4CZP3R
The purpose of this fork is to provide the library as PyPi package.
pip install plugp100
import asyncio
import os
from plugp100.api.hub.hub_device import HubDevice
from plugp100.api.light_effect_preset import LightEffectPreset
from plugp100.api.tapo_client import TapoClient
from plugp100.common.credentials import AuthCredential
async def main():
# create generic tapo api
username = os.getenv("USERNAME", "<tapo_email>")
password = os.getenv("PASSWORD", "<tapo_password>")
credentials = AuthCredential(username, password)
client = TapoClient.create(credentials, "<tapo_device_ip>")
await client.initialize()
print(await client.get_device_info())
print(await client.get_energy_usage())
print(await client.get_current_power())
print(await client.get_child_device_list())
print(await client.get_child_device_component_list())
print(await client.set_lighting_effect(LightEffectPreset.Aurora.to_effect()))
# plug = PlugDevice(TapoClient(username, password), "<tapo_device_ip>")
# light = LightDevice(TapoClient(username, password), "<tapo_device_ip>")
# ledstrip = LedStripDevice(TapoClient(username, password), "<tapo_device_ip>")
# - hub example
# hub = HubDevice(client)
# print(await hub.get_children())
# print(await hub.get_state_as_json())
if __name__ == "__main__":
loop = asyncio.new_event_loop()
loop.run_until_complete(main())
loop.run_until_complete(asyncio.sleep(0.1))
loop.close()