-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Description
Versions
- Python: 3.9
- OS: HAOS
- Pymodbus: 2.5.3 and 3.0.0dev3
- Modbus Hardware (if used): SolarEdge SE3000
Pymodbus Specific
- Server: tcp/rtu/ascii - sync/async
- Client: tcp/rtu/ascii - sync/async
Description
I'm using a custom component for Home Assistant and I'm alway having this error after ±25min
Original issue WillCodeForCats/solaredge-modbus-multi#24
Similar issue #721
Code and Logs
Logger: homeassistant
Source: custom_components/solaredge_modbus/__init__.py:187
Integration: SolarEdge Modbus Multi-Inverter ([documentation](https://github.com/WillCodeForCats/solaredge-modbus-multi), [issues](https://github.com/WillCodeForCats/solaredge-modbus-multi/issues))
First occurred: 12:51:25 (188 occurrences)
Last logged: 15:58:26
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/solaredge_modbus/__init__.py", line 156, in async_refresh_modbus_data
update_result = self.read_modbus_data()
File "/config/custom_components/solaredge_modbus/__init__.py", line 197, in read_modbus_data
self.read_modbus_data_inverters()
File "/config/custom_components/solaredge_modbus/__init__.py", line 207, in read_modbus_data_inverters
inverter_data = self.read_holding_registers(
File "/config/custom_components/solaredge_modbus/__init__.py", line 187, in read_holding_registers
return self._client.read_holding_registers(address, count, **kwargs)
File "/usr/local/lib/python3.9/site-packages/pymodbus/client/common.py", line 114, in read_holding_registers
return self.execute(request)
File "/usr/local/lib/python3.9/site-packages/pymodbus/client/sync.py", line 109, in execute
raise ConnectionException("Failed to connect[%s]" % (self.__str__()))
File "/usr/local/lib/python3.9/site-packages/pymodbus/transaction.py", line 174, in execute
response, last_exception = self._transact(
File "/usr/local/lib/python3.9/site-packages/pymodbus/transaction.py", line 294, in _transact
result = self._recv(response_length, full)
File "/usr/local/lib/python3.9/site-packages/pymodbus/transaction.py", line 326, in _recv
read_min = self.client.framer.recvPacket(min_size)
File "/usr/local/lib/python3.9/site-packages/pymodbus/framer/__init__.py", line 49, in recvPacket
return self.client.recv(size)
File "/usr/local/lib/python3.9/site-packages/pymodbus/client/sync.py", line 89, in recv
def recv(self, size):
File "/usr/local/lib/python3.9/site-packages/pymodbus/client/sync.py", line 293, in _recv
while recv_size > 0:
ValueError: filedescriptor out of range in select()