Metadata-Version: 2.1
Name: tapo-forky
Version: 4.0.3
Summary: Controller for TP-Link Tapo P100 and other devices
Home-page: https://github.com/miumer/tapo
Download-URL: https://github.com/miumer/tapo
Author: @miumer
Author-email: siimpoldre@gmail.com
License: GPL3
Keywords: Tapo
Classifier: Development Status :: 5 - Production/Stable
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: certifi (>=2021.5.30)
Requires-Dist: jsons (>=1.6.3)
Requires-Dist: requests (>=2.27.1)
Requires-Dist: aiohttp (>=3.8.1)
Requires-Dist: semantic-version (==2.10.0)
Requires-Dist: cryptography (>=38.0.3)
Requires-Dist: scapy (>=2.5.0)
Requires-Dist: urllib3 (<2,>=1.26.5)

# Plug P100
This is a fork of original work of [@K4CZP3R](https://github.com/K4CZP3R/tapo-p100-python)

The purpose of this fork is to provide the library as PyPi package. 

# How to install
```pip install plugp100```

# Code example

```python
import asyncio
import os

from plugp100.api.light_effect_preset import LightEffectPreset
from plugp100.api.tapo_client import TapoClient
from plugp100.common.credentials import AuthCredential
from plugp100.discovery.arp_lookup import ArpLookup
from plugp100.discovery.tapo_discovery import TapoDiscovery


async def main():
    # print("Scanning network...")
    # discovered_devices = list(TapoDiscovery.scan(5))
    # for x in discovered_devices:
    #     print(x)

    # if len(discovered_devices) > 0:
    #     print("Trying to lookup with mac address")
    #     lookup = await ArpLookup.lookup(
    #         discovered_devices[0].mac.replace("-", ":"),
    #         "192.168.1.0/24",
    #         allow_promiscuous=False,
    #     )
    #     print(lookup)

    # 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>")

    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()
```

