# 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:** ```bash git clone cd deyeChargeSpeed ``` 2. **Create and activate a virtual environment:** ```bash python -m venv venv # Windows .\venv\Scripts\activate # Linux/Mac source venv/bin/activate ``` 3. **Install dependencies:** ```bash pip install -r requirements.txt ``` 4. **Configuration:** Copy the example configuration file and update it with your inverter details: ```bash cp config.py.example config.py ``` Edit `config.py`: ```python INVERTER_IP = "192.168.x.x" INVERTER_SERIAL = 1234567890 INVERTER_PORT = 8899 INVERTER_SLAVE_ID = 1 ``` ## Usage 1. **Start the application:** ```bash 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: ```bash python docs/extract_pdf.py ``` 4. Check `pdf_output.txt` for the extracted register locations and context. ## Resources - [PySolarmanV5 Documentation](https://pysolarmanv5.readthedocs.io/en/stable/) - [PySolarmanV5 GitHub](https://github.com/jmccrohan/pysolarmanv5)