Я пытаюсь использовать pymodbus lib для извлечения данных из моего контроллера солнечной зарядки Epever tracer серии BN, вот мой код pymodbus:
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
client = ModbusClient(method = 'rtu', port = '/dev/ttyUSB0', baudrate = 115200)
client.connect()
result = client.read_input_registers(0x3100,6,unit=1)
print("result = ")
print (result)
solarVoltage = float(result.registers[0] / 100.0)
solarCurrent = float(result.registers[1] / 100.0)
batteryVoltage = float(result.registers[4] / 100.0)
chargeCurrent = float(result.registers[5] / 100.0)
client.close()
, но я продолжал получать эту ошибку:
result =
Modbus Error: [Input/Output] Modbus Error: [Invalid Message] Incomplete message received, expected at least 2 bytes (0 received)
Traceback (most recent call last):
File "/home/pi/Documents/solar charge controler.py", line 9, in <module>
solarVoltage = float(result.registers[0] / 100.0)
AttributeError: 'ModbusIOException' object has no attribute 'registers'
Итак, я провел много исследований и обнаружил, что мне нужен какой-то драйвер, чтобы использовать мой USB для RS485, и я наткнулся на эту LINK
, но Я не понимаю ни одной из команд там, я только начал писать на терминале, я могу установить raspberrypi-kernel-headers, что бы это ни было, но когда я делаю sudo bundle, то sudo заставляет меня получить это на терминале :
pi@raspberrypi:~ $ sudo bundle
sudo: bundle: command not found
pi@raspberrypi:~ $ sudo make
make: *** No targets specified and no makefile found. Stop.
Так после всего, что может кто-то мне подсказать через правильные команды для записи на терминал для установки драйвера usb to rs485?
спасибо