nathanmarlor / foxess_modbus

FoxESS inverter integration. Connect directly to your FoxESS inverter (no cloud!) for real-time status and control.
MIT License
105 stars 14 forks source link

Incompatibility with 2024.1 core #493

Closed soniiic closed 6 months ago

soniiic commented 6 months ago

Version of the custom_component

1.8.0

Configuration

N/A

Describe the bug

I updated to 2024.1 today and the modbus component has stopped working

Debug log

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/loader.py", line 822, in get_component
    ComponentProtocol, importlib.import_module(self.pkg_path)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/config/custom_components/foxess_modbus/__init__.py", line 43, in <module>
    from .inverter_profiles import inverter_connection_type_profile_from_config
  File "/config/custom_components/foxess_modbus/inverter_profiles.py", line 25, in <module>
    from .entities.charge_periods import CHARGE_PERIODS
  File "/config/custom_components/foxess_modbus/entities/charge_periods.py", line 8, in <module>
    from .modbus_charge_period_config import ChargePeriodAddressSpec
  File "/config/custom_components/foxess_modbus/entities/modbus_charge_period_config.py", line 13, in <module>
    from .modbus_binary_sensor import ModbusBinarySensorDescription
  File "/config/custom_components/foxess_modbus/entities/modbus_binary_sensor.py", line 52, in <module>
    class ModbusBinarySensor(ModbusEntityMixin, BinarySensorEntity):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
2024-01-03 22:35:35.968 ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration 'foxess_modbus': Unable to import component: Exception importing custom_components.foxess_modbus
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/loader.py", line 822, in get_component
    ComponentProtocol, importlib.import_module(self.pkg_path)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/config/custom_components/foxess_modbus/__init__.py", line 43, in <module>
    from .inverter_profiles import inverter_connection_type_profile_from_config
  File "/config/custom_components/foxess_modbus/inverter_profiles.py", line 25, in <module>
    from .entities.charge_periods import CHARGE_PERIODS
  File "/config/custom_components/foxess_modbus/entities/charge_periods.py", line 8, in <module>
    from .modbus_charge_period_config import ChargePeriodAddressSpec
  File "/config/custom_components/foxess_modbus/entities/modbus_charge_period_config.py", line 13, in <module>
    from .modbus_binary_sensor import ModbusBinarySensorDescription
  File "/config/custom_components/foxess_modbus/entities/modbus_binary_sensor.py", line 52, in <module>
    class ModbusBinarySensor(ModbusEntityMixin, BinarySensorEntity):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 251, in _async_setup_component
    component = integration.get_component()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/loader.py", line 830, in get_component
    raise ImportError(f"Exception importing {self.pkg_path}") from err
ImportError: Exception importing custom_components.foxess_modbus
canton7 commented 6 months ago

Duplicate of #480