Skip to content

ValueError: filedescriptor out of range in select() #873

@gieljnssns

Description

@gieljnssns

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()

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions