Deye Charge Speed Monitor

A Flask-based application for monitoring Deye Inverters (and compatible models) using the Solarman V5 protocol. This tool connects directly to the inverter via Modbus over TCP to read real-time data including voltages, currents, battery status, and BMS information.

Features

  • Real-time Monitoring: Reads critical data such as Input/Output Voltage, Grid/Load Currents, Battery SOC, Temperature, and Power.
  • BMS Integration: Retrieves detailed Battery Management System (BMS) data for up to two battery packs.
  • Web Interface: Provides a user-friendly dashboard to view inverter status (served at /).
  • JSON API: Exposes raw data via a RESTful endpoint (/api/data) for integration with other systems.
  • PDF Utility: Includes a tool to extract register information from Deye Modbus PDF manuals.

Prerequisites

  • Python 3.x
  • A Deye Inverter (or compatible) connected to the network.
  • Inverter IP address, Serial Number, and Modbus Slave ID.

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd deyeChargeSpeed
    
  2. Create and activate a virtual environment:

    python -m venv venv
    # Windows
    .\venv\Scripts\activate
    # Linux/Mac
    source venv/bin/activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Configuration:

    Copy the example configuration file and update it with your inverter details:

    cp config.py.example config.py
    

    Edit config.py:

    INVERTER_IP = "192.168.x.x"
    INVERTER_SERIAL = 1234567890
    INVERTER_PORT = 8899
    INVERTER_SLAVE_ID = 1
    

Usage

  1. Start the application:

    python app.py
    
  2. Access the dashboard:

    Open your web browser and navigate to http://localhost:5000.

Utilities

PDF Register Extractor

Located in docs/extract_pdf.py, this script helps identify Modbus registers from Deye PDF manuals.

Usage:

  1. Place your PDF manual in the docs/ folder.
  2. Update the filename in docs/extract_pdf.py if necessary (defaults to Modbus储能-组串-微逆宁波德业V118-1.pdf).
  3. Run the script:
    python docs/extract_pdf.py
    
  4. Check pdf_output.txt for the extracted register locations and context.

Resources

Description
No description provided
Readme 1.1 MiB
Languages
HTML 50.8%
Python 49.2%