EPEVER Modbus RS-485 Config

hi @marcao88

Yes there is rs485 rj-45 port on UPpower Hi, but like I have it’s connected to BMS-LINK.

If you have ebox-wifi-01, make the cable and connect it to DB9 connector, should be easy and pinouts are in the manuals. That way you should able to connect like in this thread.

I have feel that Epever try to get all new inverters connected to their cloud services (like other manufactures also) and from there I assume in future they offer API (in Epever Cloud service, there is already some mentions on the API). That way it works in normal conditions. But if after few years cloud service stop working or you have unreliable/no internet connection then it is problematic.

I finally ditched “EPEVER-WIFI-2.4G-DB9-B" and I have old rpi2b connected via usb-rs485 cable to inverter (which was delivered with inverter). Basically config same as in post #67 by dylan, but with different registers values. This has been worked for me few weeks now without problems and I also control from HA when UPower Hi charge battery from grid (and when consuming it).

Check this for newer register values https://community.home-assistant.io/t/epever-upower-hi-modbus-setting-if-you-need/483184. And from this perl script you will find more register values (from German FHEM forum)

1 Like

Please forgive me for asking for help but I could not manage to get it done and you are my last hope.
I made the cable but it did not work, my ebox-wifi-01 remains dead. :sob:
This is what I prepared:

I am using this adapter:
adapter2

And having this cable order, that is not working:
adapter3

This is what I found on the official manual:
I am not sure what to do with pin 1,2 and 6. Even 4 and 5 are confusing to me as in the adapter it had a GND door that I am not using.

The link below refers to the ebox wifi manual, that contains more fancy Definitions for the pins…
https://www.epever.com/wp-content/uploads/2022/04/EPEVER-WiFi-2.4G-Manual-EN-V1.4.pdf

Thank you for your support. :slight_smile:

  • List item

cal wifi connectivity adapter

Hi,

Ebox-wifi-01 works on 5vdc and below is Pinout from UPower (older version) RS485 port.

So, I assume you need to connect following pins

Rj45 - db9
1 - 9 (5vdc)
7 - 5 (gnd)
5 - 7 (A)
3 - 8 (B)

Thank you! It was very helpful, for me to understand it, but this is what worked por the UPOWER HI RTU, I hope more people will benefit from this finding:

RJ45 - DB9
1-9 (5V)
3-8 (B-)
5-7 (A+)
7-4 (gnd)
8-5 (gnd)

1 Like

Good. According pinouts there is two GND’s, but maybe only one is connected.

Anyway, nicely done :+1:

Hello everyone! and @timnis, I am facing a hard time bringing the epever sensors to Home Assistant.

Ebox-wifi-01 might be innocent as it works providing data locally to the phone app (when in AP mode) as it is supposed to be. So, there are no broken links between this lovely ebox-wifi-01 and the Epever UP5000 - HM8042(RTU)

When I place the Ebox-wifi-01 inside the network (STA mode), port 8088 is confirmed to open and I see ZERO significant errors on home assistant logs, this is the log level that I am using:

logger:
default: debug

When I search for errors I look for keywords like “modbus”, “connection”, “sol2” this is what I get:

Logger: homeassistant.components.modbus.validators
Source: components/modbus/validators.py:169
Integration: Modbus (documentation, issues)
First occurred: 4:09:22 PM (2 occurrences)
Last logged: 4:15:56 PM

Modbus Solar2EP timeout(10) is adjusted(4) due to scan_interval

and this:

Something is blocking Home Assistant from wrapping up the start up phase. We’re going to continue anyway.
Please report the following info at https://github.com/home-assistant/core/issues:
BIG LIST of everything including: sensor.modbus, sensor.broadlink… and 1000 things.

I have included the ESPHome addon, (honestly not sure if this helps :blush:)

Since I do not see connection issues I suspect the problem might be the sensor addresses code, so I made a few tests by replacing the addresses for the PV Voltage with the suggestions I found around but with no success, I wonder if I can really use HEX:

12544
13334
12288
13641
0x3549

This is what I have on my configuration.yaml, I am just following the recommendations from this community but still got a problem, please take a moment to suggest:

#EPEver eBox-Wifi-01 modbus
modbus:
  # - type: tcp
  - type: rtuovertcp
    name: "Solar2EP"
    host: 192.168.1.117
    port: 8088
    delay: 5
    timeout: 10
    close_comm_on_error: false
    retry_on_empty: true
    retries: 20
# Modbus sensors for EPever Charge Controller 2
    sensors:
    # - name: "Sol2 Battery Capacity"
    #   unit_of_measurement: "%"
    #   device_class: battery
    #   slave: 1
    #   address: 12570
    #   input_type: input
    #   scan_interval: 10
    - name: "Sol2 Solar V"
      unit_of_measurement: V
      device_class: voltage
      slave: 1
      address: 12544 # original
      # address: 13334 # tested
      # address: 12288 # tested
      # address: 13641 # tested
      # address: 0x3549 # tested
      input_type: input
      scale: 0.01
      precision: 2
      scan_interval: 10
    - name: "Sol2 Solar A"
      unit_of_measurement: A
      device_class: current
      slave: 1
      address: 12545
      input_type: input
      scale: 0.01
      precision: 2
      scan_interval: 10
    # - name: "Sol2 Charging W"
    #   unit_of_measurement: W
    #   device_class: power
    #   slave: 1
    #   address: 12546
    #   input_type: input
    #   data_type: int32
    #   scale: 0.01
    #   count: 2
    #   precision: 2
    #   swap: word
    #   scan_interval: 10
    # - name: "Sol2 Battery V"
    #   unit_of_measurement: V
    #   device_class: voltage
    #   slave: 1
    #   address: 13082
    #   input_type: input
    #   scale: 0.01
    #   precision: 2
    #   scan_interval: 10
    - name: "Sol2 Load W"
      unit_of_measurement: W
      device_class: power
      slave: 1
      address: 12558  # low 12550  high 12551 #12558
      input_type: input
      scale: 0.01
      precision: 2
      scan_interval: 5
    - name: "Sol2 Load A"
      device_class: current
      unit_of_measurement: A
      slave: 1
      address: 12549
      input_type: input
      scale: 0.001
      precision: 2
      scan_interval: 10
    - name: "Sol2 Load V"
      device_class: voltage
      unit_of_measurement: V
      slave: 1
      address: 12548
      input_type: input
      scale: 0.01
      precision: 2
      scan_interval: 10
    # - name: "Sol2 Battery Temp"
    #   unit_of_measurement: °C
    #   slave: 1
    #   address: 12560
    #   input_type: input
    #   scale: 0.01
    #   precision: 2
    #   scan_interval: 10
    # - name: "Sol2 Controller Temp"
    #   unit_of_measurement: °C
    #   slave: 1
    #   address: 12561
    #   input_type: input
    #   scale: 0.01
    #   precision: 2
    #   scan_interval: 10
    # - name: "Sol2 WH Today"
    #   device_class: energy
    #   unit_of_measurement: KWh
    #   slave: 1
    #   address: 13068
    #   input_type: input
    #   data_type: int32
    #   scale: 0.01
    #   precision: 2
    #   count: 2
    #   swap: word
    #   scan_interval: 10
    # - name: "Sol2 WH Month"
    #   device_class: energy
    #   unit_of_measurement: KWh
    #   slave: 1
    #   address: 13070
    #   input_type: input
    #   data_type: int32
    #   scale: 0.01
    #   precision: 2
    #   count: 2
    #   swap: word
    #   scan_interval: 10
    # - name: "Sol2 WH Year"
    #   device_class: energy
    #   unit_of_measurement: KWh
    #   slave: 1
    #   address: 13072
    #   input_type: input
    #   data_type: int32
    #   scale: 0.01
    #   precision: 2
    #   count: 2
    #   swap: word
    #   scan_interval: 10
    # - name: "Sol2 WH Total"
    #   device_class: energy
    #   unit_of_measurement: KWh
    #   slave: 1
    #   address: 13074
    #   input_type: input
    #   data_type: int32
    #   scale: 0.01
    #   precision: 2
    #   count: 2
    #   swap: word
    #   scan_interval: 10
    # binary_sensors:
    # - name: "Sol2 load switch"
    #   slave: 1
    #   address: 2
    #   scan_interval: 10

@marcao88 have you tried to set slave=4?

Check here https://community.home-assistant.io/t/epever-upower-hi-modbus-setting-if-you-need/483184

Hello @timnis , I must say thank you for your post again you helped me!
Yep, the problem was really on the Slave ID! Mine was 10.

I utilized a trick to find out what was it, the https://www.netburner.com/download/virtual-comm-port-driver-windows-xp-10/ to establish a connection from the computer and epever official software https://www.epever.com/download/inverterupower-v1-2-windows-zip/?wpdmdl=1990&refresh=63a01a7eb15e01671436926

So every attempt to get the inverter data I could check if there was a return, (data received) from the virtual connection.

Hello,
Does anyone have functional config for Tracer 3210AN (MPPT) and EPSOLAR eBox-BLE-01 Box RS485 to Bluetooth adapter? I only found links to EBOX-WIFI but I have bluetoth version. I use ESPHome bluetooth proxy in my HA but I’m lost - I don’t know how to proceed to see the data. Could someone please help - share documentation-scripts? tks

Can’t help with Bluetooth.
I’m using esphome with a rs485 module.

If you don’t want to solder it the m5stack esp32 is a nice option.

Just cut a network cable and connect A/B (PIN 3 and 5) to the module.

1 Like

Thank you :+1::+1::+1:. This pinout works for my upower hi too! I now have remote access! Yay. Just need to do the rest to send to HA.!

So Atom from Epever vbia RJ45 and then Atom connects to HA with USB or wifi? Also: You have config that works you could share? (have tried with a selfmade bridge and ESP that did not work…)

HA connects to the esp32 (atom or other) using the esphome API via WiFi . There isn’t any configuration required in HA because esphome devices are auto detected.

Hello. Just to clarify, if I order “ATOM RS485 DC/DC Voltage Converter Development Kit (SP3485EE)” I just connect it A/B to Epever tracer and on the other side usb to RPI - HA. And install ESPHome add-on. In this add-on, the option "new device/ESP32) and that’s it? No modbus and other settings in HA - configuration.yaml? Thank you. P.S Can I ask for a screenshot of what it looks like in HA?

nobody can help setup connection via bluetooth and my ESP32 BT proxy?
i can read data from my Tracer 3210 via bluetooth and ebox-ble-01 (connected directlli via RJ485 with Tracer) can connect to Epever Pair app on my mobile (android) but I need to ebox-ble connect to BT proxy in my HA (esphome).

Hi!

I had a custom made Wifi monitor working on my EPEver Tracer 1210A for years.

Today I replaced it with an EPEver Tracer 4210AN and… the Wifi monitor no longer works.

It also seems as the EPever published datasheet no longer contains the registers or protocol or pin out of the RJ45 either.

I’m assuming from some things above that registers may have changed and as they are focusing on selling their own monitor boxes and cloud garbage they aren’t publishing the specs.

I’ll see how far I can get with support.

It’s okay. Got it working. Installed this instead of my own firmware. GitHub - chickey/RS485-WiFi-EPEver: This project is for connecting to EPEver charge controllers over WiFi for viewing running stats and also allows automatic posting of them to InfluxDB or MQTT.

I’m not really sure but it looks as though the COM port no longer provides 5V.

1 Like

Hi JJanousek! I am interested in this setup aswell, I have a Tracer 2210AN and thinking of getting the BLE box since it uses much less power than wifi.

Have you tried the BLE tracker in esphome? ESP32 Bluetooth Low Energy Tracker Hub — ESPHome

I have used it successfully to get data from many other ble peripherals. If you are able to connect to the ble box and find out the mac address and service UUIDs you would be able to read this and send to HA. Use the nRF connect app to find the BLE box. I am very intrested to hear about this!

Hi David, can you support me how to get data. I can connect via nRF connect app- I know BLE-BOX mac adress…but I don´t know how to add…I´m begginer.

OK, good!

The idea is that you create a BLE sensor in ESPHome for each attribute you want to read. You can click on each service in nRF app to read data (characteristic) from it. You will have to copy the corresponding IDs of the values you want to read to the BLE sensor, see image: