Epever RS485 + Elfin EW11 WiFi Modbus (or MQTT)

Hi guys,

its now a while since then and it is still the same “issue”.
When the Battery Current get negative, then I get that 655,xx A Value in HA.

What I wonder is: isn’t there an “emergency solution” in which you use a filter? If the value is above 650A (or another value), then 0 is simply displayed.

Would that work?

I had a problem with negative values a couple years ago. If I remember correctly I was able to apply an absolute value, and that fixed it. But I don’t remember whether it was a filter, template or some other process.

Maybe it would be possible to define a word like “charging” etc. for each number.
So that it can get the current status in words. But honestly I don´t know to realize that.

Hi Andrew,

thanks for your feedback.
I have now tested several filters and can’t come up with a suitable value.
Basically just the value, let’s say above 10A (max load of the MPPT controller) would have to be “clipped”.
However, it is a pity in general that I have not yet found a solution to display a negative value.

I use the small EPEVER 2610BP as a controller for a small fountain, which accordingly also has an automation for the switching cycles.
At the load output there an Elfin-EW11 connected for controlling the fountain. This device consumes according to Epever Solar Monitor -0.01A. This is unfortunately displayed as 655.4A in the Dashboard (see screenshot).

Maybe someone has a solution for this.

Hi Chickenbreast,

I think the problem is that the current can go negative and positive, but in your config you assign uint, so unsigned.

when you look at the documentation from ESPHOME

https://esphome.io/components/sensor/modbus_controller.html

it’s the address: 0x331B and the datatype is S_DWORD_R. So it it is a signed 32 bit integer from 2 registers low word first.

I don’t use the Load Output from the Controller so I can test but I think you can try to either use int32 instead of uint as datatype and if that doesn’t work you can add a “count:2” and “swap: word”

    - name: "EPEVER Battery Current"
      address: 13083
      data_type: int32
      slave: 1
      unit_of_measurement: A
      input_type: input        
      scale: 0.01
      precision: 1
      count: 2
      swap: word
      scan_interval: 10

That helped me fix my Problem with the Solar Panel Power jumping up and down weirdly. Hope it Helps =)

1 Like

This thread shows a few different ways to convert a negative value to positive. My sensors don’t give negative values at this time, but I believe my workaround when it was happening a couple years ago was something similar

1 Like

Hi,

holy s**t. You are my hero!!
Finally it works! Thank you very much :grinning_face_with_smiling_eyes:

I am using the following code now:

- name: "EPEVER Battery Current"
  address: 13083
  data_type: int32
  slave: 1
  unit_of_measurement: A
  input_type: input
  scale: 0.01
  precision: 1
  count: 2
  swap: word
  scan_interval: 5

Now it shows exactly the negative value I was looking for!
Great feedback again. I love this forum!

1 Like

Hi Andrew,

thanks for your feedback.
trmnt666´s reply worked finally for me. At least one headache less :grinning_face_with_smiling_eyes:

Cheers

1 Like

Hello. I am trying to resolve the connection of Epever tracer to HA. I read your post. You share there the code titled “modbus.yaml” and the code titled “sensor.yaml”. Where exactly to create this or just put all of this in configuration.yaml? Thank´s

Hi @chukaonline,

even it is too late…happy new year :slight_smile:
Do you have any success with these values?

Can you explain your question in more detail?

No. I was not able to and I have also changed inverter.

Yes. I am trying to solve Epever connection via modbus/elfin ew11. Unfortunately, it doesn’t quite work. I found it working in this thread plus some settings put in but somehow still can’t get it to work. Would it be possible to ask for a set of yaml for commissioning? Thank you.

[image]

Sure you can ask, but there is mode detail from you side needed.
Did you setup your elfin correctly?
What are the settings? Do you receive/transmit data in the elfin device? Check that on its web gui.

Second past your current yaml config.

In general what did you do so far to make it running?!

Hi @LaRy,

The configuration i am doing is ‘Split Configuration’. You can read all about it in the Home Assistant official docs Splitting up the configuration

I need also a solution for the new WIFI Adapter :frowning:

1 Like

Hello. I have 4 modules Epever Wifi box 2.4gh connected to 4 traces 4210an I tried to make the settings in the home assistant in yaml but it shows me the entities in states as unavailable. can you help me where i am wrong? in the epever application I can view the data.

modbus:

  • type: rtuovertcp
    name: rtu00060475
    host: 192.168.0.93
    port: 8088
    close_comm_on_error: false
    timeout: 9
    delay: 9
    message_wait_milliseconds: 50
    retry_on_empty: true
    retries: 10
    sensors:
    • unique_id: 6681086e-d839-11ed-afa1-0242ac120002
      name: “Battery Remaining Capacity”
      address: 12570
      slave: 1
      data_type: uint16
      input_type: input
      unit_of_measurement: ‘%’
      scan_interval: 10
    • name: “Battery Voltage”
      address: 13082
      data_type: uint16
      slave: 1
      unit_of_measurement: V
      input_type: input
      scale: 0.01
      precision: 1
      scan_interval: 10
    • unique_id: 2
      name: “tracer Battery Current”
      address: 13083
      slave: 1
      data_type: uint16
      input_type: input
      unit_of_measurement: A
      scale: 0.01
      precision: 1
      scan_interval: 10
    • unique_id: 3
      name: “Solar Panel Current”
      address: 12545
      slave: 1
      data_type: uint16
      input_type: input
      unit_of_measurement: A
      scale: 0.01
      precision: 1
      scan_interval: 10
    • unique_id: 4
      name: “Solar Panel Voltage”
      address: 12544
      slave: 1
      data_type: uint16
      input_type: input
      unit_of_measurement: V
      scale: 0.01
      precision: 1
      scan_interval: 10
    • unique_id: 5
      name: “Solar Panel Power”
      address: 12546
      slave: 1
      data_type: uint16
      input_type: input
      unit_of_measurement: W
      scale: 0.01
      precision: 1

@silviu61

  sensors:
    - name: "Solar Battery Voltage"
      address: 13082
      data_type: int16
      slave: 1
      unit_of_measurement: V
      input_type: input        
      scale: 0.01
      precision: 3
      scan_interval: 10

Above is my workable configuration. Try changing the data_type: to int16

what wifi mode are you using?what port because I can’t find any open port!
i use 2.4gh rj45a module

Did you get MQTT to work? and since you guys have a lot of experience of the Elfin EW11, is it possible to get some help in understanding how to send/recive commands to another device? i have the ABL car charger that I plan to connect to a elfin EW11.
Here are some documentation of the ABL, some is in german and I dont understand that much, maybe someone here does. :slight_smile:

and evcc-io/evcc/issues/526

1 Like