Skip to content

Prometheus exporter written in Python to collect metrics as Power, Current, and Voltage from Tuya smart plugs.

License

Notifications You must be signed in to change notification settings

luizbizzio/tuya-smart-plug-exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tuya Smart Plug Exporter 🔌📈

Overview 📊

This script collects and exports key metrics from Tuya smart plugs to Prometheus. It tracks three important data points: power , current, and voltage. This allows you to monitor the performance of your smart plugs with ease.

Metrics

Features 🌟

  • Metrics Collection: Retrieves power, current, and voltage data from Tuya smart plugs.

  • Prometheus Integration: Provides metrics in a format compatible with Prometheus scraping.

  • Simple Configuration: Easy to set up with minimal configuration required.

  • Low CPU Usage: Designed to be efficient and have a minimal impact on system resources.

Configuration ⚙️

  1. Device Configuration:

    Update the DEVICE_CONFIGS list with your device details:

     # Device Configuration
     DEVICE_IP = "DEVICE_LOCAL_IP"
     DEVICE_ID = "DEVICE_ID"
     LOCAL_KEY = "LOCAL_KEY"

    If you are unsure how to obtain these following details, refer to this tutorial

    • DEVICE_IP: Local IP address of your Tuya smart plug.
    • DEVICE_ID: Unique identifier for your Tuya device.
    • LOCAL_KEY: Authentication key for your Tuya device.
  2. Exporter Port (Optional):

    Set the port for the Prometheus exporter in the script:

    EXPORTER_PORT = 9999

Usage 🚀

  1. Install Dependencies:

    Install the required Python packages:

    pip install click tinytuya prometheus_client
  2. Run the Script:

    Launch the script to start the Prometheus exporter:

    python tuya_exporter.py
  3. Access Metrics:

    After running the script, you can access the metrics at:

    http://localhost:9999/metrics
    

Notes 📝

  • Automatic Version Detection: The script automatically tries different versions of the Tuya protocol to ensure connectivity. Manual adjustment is not needed for the version.

  • Configuration: Ensure that device IPs, IDs, and local keys are correctly configured. You can verify these settings in the configuration section of the script.

License 📄

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.