Skip to content

Unable to read a SmarTest meter via MODBUSTCP #190

@andi6510

Description

@andi6510

What's the issue?

The communication with a Solaredge 3-Phase meter via modbus-tcp could not be established. The initial powermeter test fails because no data was received back from the meter.

Your setup

  • Installation method: Python
  • Storage system: Venus E Gen 2
  • Power meter source: Solaredge Inverter 7E09310A-C2 connected to external 3-phase meter via RS485

Configuration

[GENERAL]
DEVICE_TYPE = shellyemg3
SKIP_POWERMETER_TEST = False
DISABLE_SUM_PHASES = False
DISABLE_ABSOLUTE_VALUES = False
POLL_INTERVAL = 1
THROTTLE_INTERVAL = 0

[MODBUS]
HOST = 192.xxx.yyy.zzz
PORT = 502
UNIT_ID = 1
ADDRESS = 206
COUNT = 5
DATA_TYPE = INT16
BYTE_ORDER = BIG
WORD_ORDER = BIG
REGISTER_TYPE = HOLDING

Error messages or logs

# Paste any error messages here (if applicable)

Additional info

after enabling debugging, I found that the unit-ID in the request packet was always 0.
So I fixed the problem by changing one line in modbus.py, line 64:
old: result = read(self.address, self.count, unit=self.unit_id)
new: result = read(self.address, self.count, self.unit_id)
With that change the unit_id in the request packet follows the value configured in config.ini.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions