apatsufas / homebridge-tapo-p100

Homebridge TP-LINK Tapo P100 Platform Plugin
Apache License 2.0
64 stars 14 forks source link

Homebridge Tapo Platform Plugin

This is a Homebridge platform plugin for the TP-Link Tapo P100, P105, P110 Plugs and L510E, L530E Lightbulbs.

Following features are supported per Device:

Tested with:

Installation

  1. Install homebridge
  2. Install this plugin using: npm install -g homebridge-tapo or through Homebridge UI
  3. Update your Homebridge configuration file (config.json)

Configuration

The available fields in the config.json file are:

Example:

"platforms": [
    {
        "name": "Tapo Smart Platform",
        "username": "the username from the Tapo app",
        "password": "the password from the Tapo app",
        "platform": "TapoP100",
        "devices": [
            {
                "name": "Kitchen",
                "host": "192.168.1.21",
                "type": "Plug",
                "updateInterval": 30,
                "timeout": 2
            }
        ]
    }
]

How does it work?

The plugin polls this outlet endpoint:

http://[host]/app?token

Example response from this endpoint:

{
"device_id":"",
"fw_ver":"1.2.1 Build 20200616 Rel. 31218",
"hw_ver":"1.20.0",
"model":"P100",
"type":"SMART.TAPOPLUG",
"mac":"",
"hw_id":"",
"fw_id":"",
"oem_id":"",
"specs":"EU",
"device_on":false,
"on_time":0,
"overheated":false,
"nickname":"",
"location":"kitchen",
"avatar":"ceiling_lamp",
"time_usage_today":515,
"time_usage_past7":3102,
"time_usage_past30":3102,
"longitude":,
"latitude":,
"has_set_location_info":false,
"ip":"",
"ssid":"",
"signal_level":2,
"rssi":-61,
"region":"Europe/Athens",
"time_diff":120,
"lang":"en_US"}}

Information

This plugin will also allow you to control the Tapo Plugs and Lights even if you have blocked the internet connectivity of the device.

I created the plugin for personal use and wanted to share it with other people too.

Maybe you would consider buying me a coffee

Thanks / Credits

Ported from the Python library https://github.com/fishbigger/TapoP100 (by @fishbigger) to Nodejs.