EPEVER Modbus RS-485 Config

Epever has changed registers for the UPower-Hi series from UPower. I found perl script from German FHEM forum https://forum.fhem.de/index.php?topic=111967.0 and downloaded it.

I don’t know perl but looks like there is new registers for UPower-Hi, like for PV, I assume this “i13641” is register for PV Array Voltage :thinking:

          "i13641" =>  {       'reading' => 'PVInputVolt',
								  'expr' => '$val=($val/100)." V"',
                       },
          "i13642" =>  {       'reading' => 'PVInputCurrent',
								  'expr' => '$val=($val/100)." A"',
                       },
          "i13643" =>  {       'reading' => 'PVInputPower',
								  'expr' => '$val=($val/100)." W"',
                                   'len' => '2',
                                'unpack' => 'l>', 							  
                       },
          "i13655" =>  {       'reading' => 'PVTotalCargePower',
								  'expr' => '$val=($val/100)." kWh"',
                                   'len' => '2',
                                'unpack' => 'l>', 							  
                       },

Any ideas how easy is to convert to python? Whole perl script can be found here.

What Type of Temp. Sensor does the Tracer-AN use?

hi @timnis, we are in the same boat…

I expected the ebox-wifi-01 to connect with the UPower-HI but I had a bad surprise as the RJ45 port is not meant for that. Some store told me it is possible to connect the ebox-wifi-01 on the RS485 with limitations, I tried to follow the RS485 interface pin scheme described on the UPower-HI manual and build an adapter but sadly it did not work.

I am not planning to buy “EPEVER-WIFI-2.4G-DB9-B" until I am 100% sure it will work with Home Assistant.

Epever is a very famous brand, it is hard to believe there is no integration built for Home Assistant.

Please keep me posted if you find a solution.

By the way, I found a new dongle on the official website “EPEVER WiFi Adapter 2.4G RJ45 C” no idea if this works with the UPower-HI, but I guess not :stuck_out_tongue_winking_eye:

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