Link Eastron ESP-W11 Wifi with DCM230 to Home Assistant

Hello , I have n°1 Eastron ESP-W11 module (similar to Elfin W11) connected to n°2 DCM230 by RS485.
First DCM230 have address 001 and the second 002.
ESP-W11 have IP address 192.168.1.9

I can’t see the voltage and current values ​​of the two meters by Home Assistant

This is the PW11 configuration:

I created this configuration file by reading here and there on various posts:

modbus:
  - name: DCM230
    type: rtuovertcp
    host: 192.168.1.9
    port: 502
    timeout: 9
    sensors:
      - name: TENSIONE PV CASA #331A
        scan_interval: 5
        unit_of_measurement: V
        slave: 1
        address: 30001
        input_type: input
        scale: 0.01
        precision: 2
      - name: CORRENTE PV CASA #3100
        scan_interval: 5
        unit_of_measurement: A
        slave: 1
        address: 30007
        input_type: input
        scale: 0.01
        precision: 2
      - name: TENSIONE PV GARAGE #3101
        scan_interval: 5
        unit_of_measurement: V
        slave: 2
        address: 30001
        input_type: input
        scale: 0.01
        precision: 2
      - name: CORRENTE PV GARAGE #310C
        scan_interval: 5
        unit_of_measurement: A
        slave: 2
        address: 30007
        input_type: input
        scale: 0.01
        precision: 2

I also tried “tcp” instead of “rtuovertcp”.

Please… Can someone tell me what I’m doing wrong?

Does it need baud rate etc as part of the configuration? Just asking as RS485 is a serial protocol and it should be clear in the examples in the manual, and the UART clue in your screen shot…

Any issues with terminations, only at the ends?

I didn’t include them in the code because the examples I found online didn’t include it.
That communication information is on the other settings page of ESP-W11. (I’m copying it from a video because I’m out of the house now.)

Sorry but I don’t undesrtand…

Thanks a lot for your reply

RS485 relies on 120ohm termination resisters on each end, and nowhere in between, for correct operation. Some boards have a jumper to select it, and often by default it is in, most people only having two devices on their serial bus, everything working fine out of the box. Having three or more terminated devices on the same bus will cause problems. This should also be in the manual. Probably around the same section where it discusses addressing, which you seem to have configured for unique addresses. Are all the devices on your RS485 bus allocated unique addresses to enable them to be individually addressed to read and write on the common bus? Are they matched the software configurations and integration?

The RS485 bus is widely used in industry and is very robust. You have to have a correct understanding of the principles - no AI or YouBoob shortcuts - you have to read the manual.

OK, I understand what you meant, I didn’t include it because the manual only talks about adding the resistor beyond 300 meters of connection.
I only have 1 meter from the W11 gateway to the two meters.

Sorry if I answer you piecemeal but I have some limitations on the photo as it is my first post on the forum.

In your opinion I need this configuration , right?

I have this configuration without resistor

One 120ohm on the left and one on the right hand one across the wires where they connect to the unit is fine, and none for any others. It prevents signal corruption from spurious reflections. Very short distances can be just as bad as very long ones.

Matching your different units so they talk the same protocol, same speed, and correct addresses is your next challenge.

I find writing down your choices as you go through each manual makes it easier to plug in the values where needed in the respective configuration pages. Consistency is critical for success.

I don’t quite understand what you mean by “one on the right and one on the left” but I tried all the configurations and the result is always the same.

I have to find a solution because I’m going crazy on this project :sweat:

This is not software, or a HomeAssistant setting. It is part of RS485 bus wiring. I referred to your diagram which shows three devices daisy chained. This is part of your wiring to make sure the signals are consistent and error free. You need the resistors - only two of them, one on each end. Yes, it might work without them, but you may get intermittent or frequent transmission errors reported.
The two resistors you require are only a few cents each. Value 120ohms. Any wattage will do fine.

What are the configuration values you are using for each of the three devices?

What modbus parameters are you using?

What addons are you using?

What integration are you using?

Post your full yaml code. Properly formatted please.

Sorry for the delay in replying, but I’ve been away on business.
I know what the resistors are for, but I didn’t add them because the device manual didn’t call for them for such short lengths.

Now I’ve placed them as you suggested: one on the master and one on the last slave.

I don’t think the problem is in the communication but in the code since I don’t know exactly how to program the yaml code part (which is the part I posted at the beginning of the post).

I just got back now, I’ll do a couple of tests and then I’ll post the yaml code for you if you have any suggestions.

Thanks a lot

I added two more DCM230 devices to complete the installation.
The setup is now complete: I have a WP11 and four DCM230.

The slave addresses of four DCM230 are: 11,12,13, 14

These are the add-ons i installed:

This is a draft code to see if i can read some data from the 4 devices:

modbus:
  - name: DCM230
    type: tcp
    host: 192.168.1.9
    port: 502
    baudrate: 9600
    timeout: 9
    stopbits: 1
    bytesize: 8
    parity: N
    sensors:
      - name: TENSIONE PV CASA #331A
        scan_interval: 5
        unit_of_measurement: V
        slave: 11
        address: 30001
        input_type: input
        scale: 0.01
        precision: 2
      - name: CORRENTE PV CASA #3100
        scan_interval: 5
        unit_of_measurement: A
        slave: 11
        address: 30007
        input_type: input
        scale: 0.01
        precision: 2
      - name: TENSIONE PV GARAGE #3101
        scan_interval: 5
        unit_of_measurement: V
        slave: 13
        address: 30001
        input_type: input
        scale: 0.01
        precision: 2
      - name: CORRENTE PV GARAGE #310C
        scan_interval: 5
        unit_of_measurement: A
        slave: 13
        address: 30007
        input_type: input
        scale: 0.01
        precision: 2
      - name: CORRENTE PV CASA R #310D
        scan_interval: 5
        unit_of_measurement: V
        slave: 12
        address: 316385
        input_type: input
        scale: 0.01
        precision: 2
      - name: CORRENTE PV CASA R #310E
        scan_interval: 5
        unit_of_measurement: A
        slave: 12
        address: 316387
        input_type: input
        scale: 0.01
        precision: 2
      - name: CORRENTE PV GARAGE R #3110
        scan_interval: 5
        unit_of_measurement: V
        slave: 14
        address: 316385
        input_type: input
        scale: 0.01
        precision: 2
      - name: CORRENTE PV GARAGE R #3111
        scan_interval: 5
        unit_of_measurement: A
        slave: 14
        address: 316387
        input_type: input
        scale: 0.01
        precision: 2

I’m still not sure how to read the output, I tried to search in the devices as I showed you before but the values ​​are always zero