Search code examples
modbusmodbus-tcppymodbuspymodbustcp

How to request Ebox wifi with modbus


I've never used modbus before.

I have an eBox-Wifi Epever connected to an MPPT charge controller TRIRON for solar power.

I was able to make it connect to my wifi and now has an accessible IP : 192.168.39.149

I just want to extract some data from it, battery Voltage, etc...

On http://192.168.39.149:80, i have a web interface for administration. (Which is not what i want.)

After an nmap, I see that there is port 8088 open. (Can use modbus there maybe ? no web interface on this port.)

I installed and used modbus_cli like that modbus -b 115200 -p 1 192.168.39.149:8088 3101 but I can't make it return anything...

https://files.i4wifi.cz/inc/_doc/attach/StoItem/7068/MODBUS-Protocol-v25.pdf

http://www.solar-elektro.cz/data/dokumenty/1733_modbus_protocol.pdf

https://github.com/favalex/modbus-cli

EDIT : I changed for baud 9600 and port 502. (Which are the defaults for modbus ?) enter image description here


Solution

  • Try python modpoll tool with the following configuration, install modpoll via pip install modpoll if not installed.

    • Create a local config file, e.g. epever.csv, only added voltage/current/power values for testing.

      device,mydevice,1,,,
      poll,holding_register,12544,4,BE_LE,
      ref,PV_array_input_voltage,12544,uint16,r,V,0.01
      ref,PV_array_input_current,12545,uint16,r,A,0.01
      ref,PV_array_input_power,12546,uint32,r,W,0.01
      
    • poll local device,

      modpoll --tcp 192.168.39.149 --tcp-port 8088 --config epever.csv
      

    The configuration assumes you keep the device ID = 1 (default), and use BE_LE endian, please adjust endian setting according to the platform running on.