es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo solicitar Ebox wifi con modbus.

Nunca he usado modbus antes.

Tengo un eBox-Wifi Epever conectado a un controlador de carga MPPT TRIRON para energía solar.

Pude hacer que se conectara a mi wifi y ahora tiene una IP accesible: 192.168.39.149.

Solo quiero extraer algunos datos de él, como el voltaje de la batería, etc.

En http://192.168.39.149:80, tengo una interfaz web para administración (lo cual no es lo que quiero).

Después de un nmap, veo que hay el puerto 8088 abierto (¿puedo usar modbus allí tal vez? no hay interfaz web en este puerto).

Instalé y utilicé modbus_cli de la siguiente manera: modbus -b 115200 -p 1 192.168.39.149:8088 3101, pero no puedo hacer que devuelva nada.

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

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

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

EDIT: Cambié la velocidad de baudios a 9600 y el puerto a 502 (¿que son los valores predeterminados para modbus?).
Imagen

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en modbus, modbus-tcp, pymodbus, pymodbustcp, puedo ayudarte a extraer datos de tu eBox-Wifi Epever conectado al controlador de carga MPPT TRIRON para energía solar.

    En primer lugar, es importante tener en cuenta que modbus es un protocolo utilizado para la comunicación entre dispositivos electrónicos a través de una red. En tu caso, es probable que el dispositivo eBox-Wifi esté utilizando modbus para comunicarse con el controlador de carga MPPT TRIRON, por lo que el puerto 8088 puede estar abierto para la comunicación modbus.

    Para extraer datos del dispositivo, puedes utilizar una biblioteca cliente de modbus como pymodbus o modbus-tcp en Python. Estas bibliotecas proporcionan una interfaz fácil de usar para leer y escribir registros modbus desde un dispositivo.

    Aquí están los pasos para extraer datos usando pymodbus:

    1. Instala la biblioteca pymodbus utilizando el comando pip:
      pip install pymodbus
      
    2. Conéctate al dispositivo utilizando la clase ModbusTcpClient en pymodbus:
      from pymodbus.client.sync import ModbusTcpClient
      
      client = ModbusTcpClient('192.168.39.149', port=8088)
      
    3. Lee un registro modbus utilizando la función read_holding_registers:
      result = client.read_holding_registers(address=3101, count=1)
      

      En este ejemplo, estamos leyendo un registro (dirección 3101) del dispositivo.

    4. Analiza el resultado y extrae los datos:

      if result.isError():
         print('Error al leer el registro')
      else:
         voltage = result.registers[0] / 100.0
         print(f'Voltaje de la batería: {voltage}V')
      

      En este ejemplo, estamos dividiendo el valor del registro por 100 para obtener el voltaje de la batería en voltios.

    Ten en cuenta que los registros modbus y sus significados pueden diferir para diferentes dispositivos, por lo que es posible que debas consultar la documentación del dispositivo para encontrar los registros apropiados para leer.

    ¡Buena suerte con tu proyecto!

Comments are closed.