I just checked and my elfin is on the latest firmware. I reset to factory and reconfigured but still no change. I still get invalid message, no response.
Maybe it is damaged.
Are you confirmed if it’s a rs232 or rs485 version?
Maybe epever needs some update.
It is RA485 version. The firmware i have is the latest. It is quite frustrating
Try with a laptop or even serial connection
I will have to purchase the cable for that and try it.
address: 12570
does not need
count: 2
swap: word
0-100% only needs one byte
so it can not request two words
Thanks Thomas. Even without those 2 parameters it still does not work.
Since the serial connection worked back when you took that screenshot:
i would start analysing with a minimum modbus config that does not litter the logs.
restarting the core every time you change the config.yaml is tedious, but i would delete all sensors but one. and i would delete all parameters, that are not needed i.e. have defaults…
lets say:
modbus:
- type: rtuovertcp
name: "ew11"
host: 192.168.5.249
port: 502
close_comm_on_error: false
timeout: 10
retry_on_empty: true
retries: 20
sensors:
- name: "Battery Capacity"
address: 12570
slave: 1
input_type: input
data_type: int16
unit_of_measurement: '%'
scan_interval: 60
then look what the logs say
and then add sensor by sensor
I actually have just one sonsor i have been testing with for the past 3 weeks.
Current config
modbus:
- type: tcp
name: ew11
host: 192.168.5.249
port: 502
close_comm_on_error: false
timeout: 9
delay: 9
message_wait_milliseconds: 50
retry_on_empty: true
retries: 10
sensors:
- name: "Battery Remaining Capacity"
address: 12570
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: '%'
scale: 0.01
precision: 3
scan_interval: 10
Error
2021-10-13 17:16:28 DEBUG (SyncWorker_1) [pymodbus.transaction] Transaction failed. (Modbus Error: [Invalid Message] No response received, expected at least 8 bytes (0 received))
modbus:
- name: ew11
type: tcp
host: 192.168.5.249
port: 502
close_comm_on_error: false
timeout: 9
delay: 1
message_wait_milliseconds: 200
retry_on_empty: true
retries: 10
sensors:
- name: "Battery Remaining Capacity"
address: 12570
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: '%'
scale: 0.01
precision: 3
scan_interval: 10
input_type: input
input or holding?
input is ok in my config of an epever-charge controller.
when i put in the uint16 in my config, it does not work for me.
and i have to use rtuovertcp otherwise it does not work either.
Not sure what solved it but it is working now. I unplugged the cable from the charge controller and plugged it again and it worked. Thanks for all the input.
Could you please copy paste your working config? I’m not able to get data from my Epever. Thx
This is what worked for me using ebox wifi
modbus:
- type: rtuovertcp
name: hub1
host: 192.168.5.157
port: 8088
close_comm_on_error: false
timeout: 9
delay: 9
message_wait_milliseconds: 50
retry_on_empty: true
retries: 10
sensors:
- 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
- name: "Battery Current"
address: 13083
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: A
scale: 0.01
precision: 1
scan_interval: 10
- 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
- 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
- name: "Solar Panel Power"
address: 12546
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: W
scale: 0.01
precision: 1
scan_interval: 10
Thx, it works!
Can anyone confirm if the ew11a is able to also send commands from wifi to the modbus out? I need it to replace a wired connection between a ventilation system and a raspberry pi with home assistant.
Sorry I can´t help you in this case. Currently I am struggeling with my config, too.
Hi guys,
does anyone know, where my mistake is?
I am using the EPEVER Tracer 2610BP with an Elfin EW11 Wifi almost successful.
Almost, because when the load current is higher than the charging current, then I get a wired value (instead of negative it is way too positive) → 655.1A.
My Modbus config is as follows:
- type: tcp
name: "ew11"
host: 192.168.178.9
port: 8088
close_comm_on_error: false
timeout: 9
retry_on_empty: true
retries: 10
#Solar Charge Controller
sensors:
- name: "EPEVER Charge Controller Temperature"
address: 12561
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: °C
precision: 1
scale: 0.01
scan_interval: 30
- name: "EPEVER ext. Sensor Temperature"
address: 12560
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: °C
precision: 1
scale: 0.01
scan_interval: 30
#Solar Battery
- name: "EPEVER Battery Voltage"
address: 13082
data_type: uint16
slave: 1
unit_of_measurement: V
input_type: input
scale: 0.01
precision: 1
scan_interval: 10
- name: "EPEVER Battery Current"
address: 13083
data_type: uint
slave: 1
unit_of_measurement: A
input_type: input
scale: 0.01
precision: 1
scan_interval: 10
- name: "EPEVER Battery Status"
address: 12570
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: '%'
scale: 1
precision: 1
scan_interval: 10
#Solar Panel
- name: "EPEVER 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
- name: " EPEVER 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
- name: " EPEVER Solar Panel Power"
address: 12546
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: W
scale: 0.01
precision: 1
scan_interval: 10
#Solar Load
- name: "EPEVER Load Current"
address: 12557
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: A
scale: 0.01
precision: 1
scan_interval: 10
- name: "EPEVER Load Voltage"
address: 12556
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: V
scale: 0.01
precision: 1
scan_interval: 10
- name: "EPEVER Load Power"
address: 12558
slave: 1
data_type: uint16
input_type: input
unit_of_measurement: W
scale: 0.01
precision: 1
scan_interval: 10
switches:
- name: EPEVER Load Switch
slave: 1
address: 2
write_type: coil
Thanks for your feedback in advance.
I am not sure why it happens but I get the wired value once in a while. The only solution is to restart HA
Unfortunately, this does not work in my case.
No matter how many times HA was restarted, the value becomes absolutely wrong.
A small advice in general: I often had disconnections or an unstable connection between the Tracer and HA. The problem is the original power output for the eBox-WiFI module. The output voltage is approx. 4.92V and should not be used in conjunction with the Elfin EW11. That voltage is too low.