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
-
Clone the repository:
git clone <repository-url> cd deyeChargeSpeed -
Create and activate a virtual environment:
python -m venv venv # Windows .\venv\Scripts\activate # Linux/Mac source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt -
Configuration:
Copy the example configuration file and update it with your inverter details:
cp config.py.example config.pyEdit
config.py:INVERTER_IP = "192.168.x.x" INVERTER_SERIAL = 1234567890 INVERTER_PORT = 8899 INVERTER_SLAVE_ID = 1
Usage
-
Start the application:
python app.py -
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:
- Place your PDF manual in the
docs/folder. - Update the filename in
docs/extract_pdf.pyif necessary (defaults toModbus储能-组串-微逆宁波德业V118-1.pdf). - Run the script:
python docs/extract_pdf.py - Check
pdf_output.txtfor the extracted register locations and context.
Resources
Description
Languages
HTML
50.8%
Python
49.2%