Closed seesix closed 1 year ago
It might be a problem with the Raspbian distibution. Here is a similar case: https://www.raspberrypi.org/forums/viewtopic.php?t=218469
I just tried with a fresh install of Jessie and same error. My guess is, its the cable, I'm using the one supplied by Epever, have order a new one.
I have just tried again with a new FTDI cable and it returns this error.
####################################################
sudo ./info.py
Traceback (most recent call last):
File "./info.py", line 18, in
################################################
Any ideas on how to fix this would be gratefully received.
Thanks
Edit info.py and set correct arguments:
serialclient = ModbusClient(method='rtu', port='/dev/ttyXRUSB0', baudrate=115200, stopbits = 1, bytesize = 8, timeout=1)
Do you see the wanted the /dev/tty* device ?
thank you so much for the help.
in the end my device was ttyUSB1
hey kasbert
Modbus Error: [Input/Output] Modbus Error: [Invalid Message] Incomplete message received, expected at least 2 bytes (0 received) INFO:pyepsolartracer.registers:No value for register 'Charging equipment rated input voltage' Charging equipment rated input voltage = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment rated input current' Charging equipment rated input current = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment rated input power' Charging equipment rated input power = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment rated input power L' Charging equipment rated input power L = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment rated input power H' Charging equipment rated input power H = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment rated output voltage' Charging equipment rated output voltage = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment rated output current' Charging equipment rated output current = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment rated output power' Charging equipment rated output power = None Charging equipment rated output power L = 378.56W INFO:pyepsolartracer.registers:No value for register 'Charging equipment rated output power H' Charging equipment rated output power H = None INFO:pyepsolartracer.registers:No value for register 'Charging mode' Charging mode = None INFO:pyepsolartracer.registers:No value for register 'Rated output current of load' Rated output current of load = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment input voltage' Charging equipment input voltage = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment input current' Charging equipment input current = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment input power' Charging equipment input power = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment input power L' Charging equipment input power L = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment input power H' Charging equipment input power H = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment output voltage' Charging equipment output voltage = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment output current' Charging equipment output current = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment output power' Charging equipment output power = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment output power L' Charging equipment output power L = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment output power H' Charging equipment output power H = None INFO:pyepsolartracer.registers:No value for register 'Discharging equipment output voltage' Discharging equipment output voltage = None INFO:pyepsolartracer.registers:No value for register 'Discharging equipment output current' Discharging equipment output current = None INFO:pyepsolartracer.registers:No value for register 'Discharging equipment output power' Discharging equipment output power = None INFO:pyepsolartracer.registers:No value for register 'Discharging equipment output power L' Discharging equipment output power L = None INFO:pyepsolartracer.registers:No value for register 'Discharging equipment output power H' Discharging equipment output power H = None INFO:pyepsolartracer.registers:No value for register 'Battery Temperature' Battery Temperature = None INFO:pyepsolartracer.registers:No value for register 'Temperature inside equipment' Temperature inside equipment = None INFO:pyepsolartracer.registers:No value for register 'Power components temperature' Power components temperature = None INFO:pyepsolartracer.registers:No value for register 'Battery SOC' Battery SOC = None INFO:pyepsolartracer.registers:No value for register 'Remote battery temperature' Remote battery temperature = None INFO:pyepsolartracer.registers:No value for register "Battery's real rated power" Battery's real rated power = None INFO:pyepsolartracer.registers:No value for register 'Battery status' Battery status = None INFO:pyepsolartracer.registers:No value for register 'Charging equipment status' Charging equipment status = None INFO:pyepsolartracer.registers:No value for register 'Maximum input volt (PV) today' Maximum input volt (PV) today = None INFO:pyepsolartracer.registers:No value for register 'Minimum input volt (PV) today' Minimum input volt (PV) today = None INFO:pyepsolartracer.registers:No value for register 'Maximum battery volt today' Maximum battery volt today = None INFO:pyepsolartracer.registers:No value for register 'Minimum battery volt today' Minimum battery volt today = None INFO:pyepsolartracer.registers:No value for register 'Consumed energy today' Consumed energy today = None INFO:pyepsolartracer.registers:No value for register 'Consumed energy today L' Consumed energy today L = None INFO:pyepsolartracer.registers:No value for register 'Consumed energy today H' Consumed energy today H = None INFO:pyepsolartracer.registers:No value for register 'Consumed energy this month' Consumed energy this month = None INFO:pyepsolartracer.registers:No value for register 'Consumed energy this month L' Consumed energy this month L = None INFO:pyepsolartracer.registers:No value for register 'Consumed energy this month H' Consumed energy this month H = None INFO:pyepsolartracer.registers:No value for register 'Consumed energy this year' Consumed energy this year = None INFO:pyepsolartracer.registers:No value for register 'Consumed energy this year L' Consumed energy this year L = None INFO:pyepsolartracer.registers:No value for register 'Consumed energy this year H' Consumed energy this year H = None INFO:pyepsolartracer.registers:No value for register 'Total consumed energy' Total consumed energy = None INFO:pyepsolartracer.registers:No value for register 'Total consumed energy L' Total consumed energy L = None Total consumed energy H = 0.0kWh INFO:pyepsolartracer.registers:No value for register 'Generated energy today' Generated energy today = None INFO:pyepsolartracer.registers:No value for register 'Generated energy today L' Generated energy today L = None INFO:pyepsolartracer.registers:No value for register 'Generated energy today H' Generated energy today H = None INFO:pyepsolartracer.registers:No value for register 'Generated energy this month' Generated energy this month = None INFO:pyepsolartracer.registers:No value for register 'Generated energy this month L' Generated energy this month L = None INFO:pyepsolartracer.registers:No value for register 'Generated energy this month H' Generated energy this month H = None INFO:pyepsolartracer.registers:No value for register 'Generated energy this year' Generated energy this year = None INFO:pyepsolartracer.registers:No value for register 'Generated energy this year L' Generated energy this year L = None INFO:pyepsolartracer.registers:No value for register 'Generated energy this year H' Generated energy this year H = None INFO:pyepsolartracer.registers:No value for register 'Total generated energy' Total generated energy = None INFO:pyepsolartracer.registers:No value for register 'Total generated energy L' Total generated energy L = None INFO:pyepsolartracer.registers:No value for register 'Total Generated energy H' Total Generated energy H = None INFO:pyepsolartracer.registers:No value for register 'Carbon dioxide reduction' Carbon dioxide reduction = None INFO:pyepsolartracer.registers:No value for register 'Carbon dioxide reduction L' Carbon dioxide reduction L = None INFO:pyepsolartracer.registers:No value for register 'Carbon dioxide reduction H' Carbon dioxide reduction H = None INFO:pyepsolartracer.registers:No value for register 'Battery Current' Battery Current = None INFO:pyepsolartracer.registers:No value for register 'Battery Current L' Battery Current L = None INFO:pyepsolartracer.registers:No value for register 'Battery Current H' Battery Current H = None INFO:pyepsolartracer.registers:No value for register 'Battery Temp.' Battery Temp. = None INFO:pyepsolartracer.registers:No value for register 'Ambient Temp.' Ambient Temp. = None INFO:pyepsolartracer.registers:No value for register 'Battery Type' Battery Type = None INFO:pyepsolartracer.registers:No value for register 'Battery Capacity' Battery Capacity = None INFO:pyepsolartracer.registers:No value for register 'Temperature compensation coefficient' Temperature compensation coefficient = None INFO:pyepsolartracer.registers:No value for register 'High Volt.disconnect' High Volt.disconnect = None INFO:pyepsolartracer.registers:No value for register 'Charging limit voltage' Charging limit voltage = None INFO:pyepsolartracer.registers:No value for register 'Over voltage reconnect' Over voltage reconnect = None INFO:pyepsolartracer.registers:No value for register 'Equalization voltage' Equalization voltage = None INFO:pyepsolartracer.registers:No value for register 'Boost voltage' Boost voltage = None INFO:pyepsolartracer.registers:No value for register 'Float voltage' Float voltage = None INFO:pyepsolartracer.registers:No value for register 'Boost reconnect voltage' Boost reconnect voltage = None INFO:pyepsolartracer.registers:No value for register 'Low voltage reconnect' Low voltage reconnect = None INFO:pyepsolartracer.registers:No value for register 'Under voltage recover' Under voltage recover = None INFO:pyepsolartracer.registers:No value for register 'Under voltage warning' Under voltage warning = None INFO:pyepsolartracer.registers:No value for register 'Low voltage disconnect' Low voltage disconnect = None INFO:pyepsolartracer.registers:No value for register 'Discharging limit voltage' Discharging limit voltage = None Real time clock 1 = 11270 INFO:pyepsolartracer.registers:No value for register 'Real time clock 2' Real time clock 2 = None INFO:pyepsolartracer.registers:No value for register 'Real time clock 3' Real time clock 3 = None INFO:pyepsolartracer.registers:No value for register 'Equalization charging cycle' Equalization charging cycle = None INFO:pyepsolartracer.registers:No value for register 'Battery temperature warning upper limit' Battery temperature warning upper limit = None INFO:pyepsolartracer.registers:No value for register 'Battery temperature warning lower limit' Battery temperature warning lower limit = None INFO:pyepsolartracer.registers:No value for register 'Controller inner temperature upper limit' Controller inner temperature upper limit = None INFO:pyepsolartracer.registers:No value for register 'Controller inner temperature upper limit recover' Controller inner temperature upper limit recover = None INFO:pyepsolartracer.registers:No value for register 'Power component temperature upper limit' Power component temperature upper limit = None INFO:pyepsolartracer.registers:No value for register 'Power component temperature upper limit recover' Power component temperature upper limit recover = None INFO:pyepsolartracer.registers:No value for register 'Line Impedance' Line Impedance = None INFO:pyepsolartracer.registers:No value for register 'Night TimeThreshold Volt.(NTTV)' Night TimeThreshold Volt.(NTTV) = None INFO:pyepsolartracer.registers:No value for register 'Light signal startup (night) delay time' Light signal startup (night) delay time = None INFO:pyepsolartracer.registers:No value for register 'Day Time Threshold Volt.(DTTV)' Day Time Threshold Volt.(DTTV) = None Light signal turn off(day) delay time = 10min Load controling modes = 0 INFO:pyepsolartracer.registers:No value for register 'Working time length 1' Working time length 1 = None INFO:pyepsolartracer.registers:No value for register 'Working time length 2' Working time length 2 = None INFO:pyepsolartracer.registers:No value for register 'Turn on timing 1 sec' Turn on timing 1 sec = None INFO:pyepsolartracer.registers:No value for register 'Turn on timing 1 min' Turn on timing 1 min = None INFO:pyepsolartracer.registers:No value for register 'Turn on timing 1 hour' Turn on timing 1 hour = None INFO:pyepsolartracer.registers:No value for register 'Turn off timing 1 sec' Turn off timing 1 sec = None INFO:pyepsolartracer.registers:No value for register 'Turn off timing 1 min' Turn off timing 1 min = None INFO:pyepsolartracer.registers:No value for register 'Turn off timing 1 hour' Turn off timing 1 hour = None INFO:pyepsolartracer.registers:No value for register 'Turn on timing 2 sec' Turn on timing 2 sec = None INFO:pyepsolartracer.registers:No value for register 'Turn on timing 2 min' Turn on timing 2 min = None INFO:pyepsolartracer.registers:No value for register 'Turn on timing 2 hour' Turn on timing 2 hour = None INFO:pyepsolartracer.registers:No value for register 'Turn off timing 2 sec' Turn off timing 2 sec = None INFO:pyepsolartracer.registers:No value for register 'Turn off timing 2 min' Turn off timing 2 min = None INFO:pyepsolartracer.registers:No value for register 'Turn off timing 2 hour' Turn off timing 2 hour = None INFO:pyepsolartracer.registers:No value for register 'Length of night' Length of night = None INFO:pyepsolartracer.registers:No value for register 'Battery rated voltage code' Battery rated voltage code = None Load timing control selection = 0 INFO:pyepsolartracer.registers:No value for register 'Default Load On/Off in manual mode' Default Load On/Off in manual mode = None INFO:pyepsolartracer.registers:No value for register 'Equalize duration' Equalize duration = None INFO:pyepsolartracer.registers:No value for register 'Boost duration' Boost duration = None INFO:pyepsolartracer.registers:No value for register 'Discharging percentage' Discharging percentage = None INFO:pyepsolartracer.registers:No value for register 'Charging percentage' Charging percentage = None INFO:pyepsolartracer.registers:No value for register 'Management modes of battery charging and discharging' Management modes of battery charging and discharging = None INFO:pyepsolartracer.registers:No value for coil 'Manual control the load' Manual control the load = None INFO:pyepsolartracer.registers:No value for coil 'Enable load test mode' Enable load test mode = None INFO:pyepsolartracer.registers:No value for coil 'Force the load on/off' Force the load on/off = None INFO:pyepsolartracer.registers:No value for coil 'Over temperature inside the device' Over temperature inside the device = None INFO:pyepsolartracer.registers:No value for coil 'Day/Night' Day/Night = None
============================== note that it reads only one input from the register
Real time clock 1 = 11270
if i run the script again i'll get a different single value returned ie
Charging equipment rated output current = 60.0A
here is my info.py
=========================================
from pyepsolartracer.client import EPsolarTracerClient from pyepsolartracer.registers import registers,coils
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
import logging logging.basicConfig() log = logging.getLogger() log.setLevel(logging.INFO)
serialclient = ModbusClient(method='rtu', port='/dev/ttyUSB0', baudrate=115200, timeout=5, stopbits =1, bytesize =8, handshaking ='N', parity ='N', debug = True)
client = EPsolarTracerClient(serialclient = serialclient) client.connect()
response = client.read_device_info()
print str(response)
for reg in registers:
#print reg
value = client.read_input(reg.name)
print value
#if value.value is not None:
# print client.write_output(reg.name,value.value)
for reg in coils:
#print reg
value = client.read_input(reg.name)
print value
#print client.write_output(reg.name,value.value)
client.close()
===============================================
Any ideas what I'm doing wrong? Thanks again for the help
Closed as stale
Hi there, I am trying to run your code on a Pi Zero W with the latest version of Raspian Stretch
However, when I run this code
#################################
!/usr/bin/env python
from pymodbus.client.sync import ModbusSerialClient as ModbusClient client = ModbusClient(method = 'rtu', port = '/dev/ttyAMA0', baudrate = 115200) client.connect() while True: result = client.read_input_registers(0x03, 1, unit=1) print result client.close()
###############################
it returns this error
###############################
Traceback (most recent call last): File "./test.py", line 9, in
result = client.read_input_registers(0x03, 1, unit=1)
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/client/common.py", line 125, in read_input_registers
return self.execute(request)
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/client/sync.py", line 107, in execute
return self.transaction.execute(request)
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/transaction.py", line 136, in execute
full=full
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/transaction.py", line 202, in _transact
size = self._send(packet)
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/transaction.py", line 219, in _send
return self.client.framer.sendPacket(packet)
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/framer/rtu_framer.py", line 272, in sendPacket
size = self.client.send(message)
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/client/sync.py", line 76, in send
return self._send(request)
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/client/sync.py", line 491, in _send
waitingbytes = self._in_waiting()
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/client/sync.py", line 473, in _in_waiting
waitingbytes = getattr(self.socket, in_waiting)()
File "/home/pi/.local/lib/python2.7/site-packages/serial/serialutil.py", line 590, in inWaiting
return self.in_waiting
File "/home/pi/.local/lib/python2.7/site-packages/serial/serialposix.py", line 467, in in_waiting
s = fcntl.ioctl(self.fd, TIOCINQ, TIOCM_zero_str)
IOError: [Errno 25] Inappropriate ioctl for device
#############################
i'd be most grateful for any advise on how to solve this