90d967ac2a6e76d70ab1b989ec6c0d23a833af27
Pylontech Battery Monitoring via WiFi
Forked from irekzielinski/Pylontech-Battery-Monitoring
This project allows you to control and monitor Pylontech US2000B, US2000C, US3000C and US5000 batteries via console port over WiFi. It it's a great starting point to integrate battery with your home automation.
I ACCEPT NO RESPONSIBILTY FOR ANY DAMAGE CAUSED, PROCEED AT YOUR OWN RISK
Features:
- Low cost (around 20$ in total).
- Adds WiFi capability to your Pylontech US2000B/C , US3000C, US5000 battery.
- Device exposes web interface that allows to:
- send console commands and read response over WiFi (no PC needed)
- battery information can be retrevied also in JSON format for easy parsing
- MQTT support:
- device pushes basic battery data like SOC, temperature, state, etc to selected MQTT server
- Easy to modify code using Arduino IDE and flash new firmware over WiFi (no need to disconnect from the battery).
See the project in action on Youtube:

Parts needed and schematics:
- Wemos D1 mini microcontroller.
- SparkFun MAX3232 Transceiver.
- US2000B: Cable with RJ10 connector (some RJ10 cables have only two wires, make sure to buy one that has all four wires present).
- US2000C or US5000: Cable with RJ45 connector (see below for more details).
- Capacitors C1: 10uF, C2: 0.1uF (this is not strictly required, but recommended as Wemos D1 can have large current spikes).
US2000C/US3000C/US5000 notes:
This battery uses RJ45 cable instead of RJ10. Schematics is the same only plug differs:
How to get going:
- Get Wemos D1 mini
- Install arduino IDE and ESP8266 libraries as described here
- Open PylontechMonitoring.ino in arduino IDE
- Make sure to copy content of libraries subdirectory to libraries of your Arduino IDE.
- Specify your WiFi login and password at the top of the file (line 11-12)
- If you want MQTT support, uncomment line 15 and fill details in lines 20-24
- Upload project to your device
- Connect Wemos D1 mini to the MAX3232 transreceiver
- Connect transreceiver to RJ10/RJ45 as descibed in the schematics (all three lines need to be connected)
- Connect RJ10/RJ45 to the serial port of the Pylontech US2000 battery. If you have multiple batteries - connect to the master one.
- Connect Wemos D1 to the power via USB
- Find what IP address was assigned to your Wemos by your router and open it in the web-browser
- You should be able now to connunicate with the battery via WiFi
Example of sensors in Home Assistant:
mqtt:
sensor:
- name: "Livello Carica Batteria"
state_topic: "homeassistant/sensor/grid_battery/soc"
unit_of_measurement: "%"
device_class: battery
- name: "Stato Batteria"
state_topic: "homeassistant/sensor/grid_battery/base_state"
- name: "Temperatura Batteria"
state_topic: "homeassistant/sensor/grid_battery/temp"
unit_of_measurement: "°C"
device_class: temperature
- name: "Num Batterie"
state_topic: "homeassistant/sensor/grid_battery/battery_count"
- name: "Potenza impegnata Batterie"
state_topic: "homeassistant/sensor/grid_battery/getPowerDC"
unit_of_measurement: "Wh"
device_class: energy
- name: "Potenza carica Batterie"
state_topic: "homeassistant/sensor/grid_battery/powerIN"
unit_of_measurement: "Wh"
state_class: "total_increasing"
device_class: "energy"
icon: mdi:flash
- name: "Potenza scarica Batterie"
state_topic: "homeassistant/sensor/grid_battery/powerOUT"
unit_of_measurement: "Wh"
state_class: "total_increasing"
device_class: "energy"
icon: mdi:flash
Description
Languages
C++
96.9%
C
1.2%
CMake
0.9%
Python
0.5%
Shell
0.4%

