Skip to content

Recurring problem: Conversion errors in Automations setting Inovelli Blue switches' LED Effects #175050

Description

@VelosAbaris

The problem

Home Assistant Core updates are not trustworthy to have consistent Automation behavior with the simple setting of Inovelli switch LED effects (notifications).

After some Core updates, Automations calling for Inovelli switch LED effect changes fail due to a "conversion error" as an integer is expected but instead effect named strings (e.g. "Fast Falling", "Clear", etc.) are provided. This report is being written after upgrading from 2026.6.3 to 2026.6.4.

This is a recurring problem. See also: #159053, #149491, and #85464.

Nothing related to Inovelli or the way ZHA handles actions has changed in many, many months. The fact that this issue randomly appears and disappears with no code changes on ZHA's part leads me to believe there is a more fundamental problem here.

Originally posted by @puddly in #159053

And after that comment, issue #159053 was closed as stale with no solution investigated. Yet, here we are again.

What version of Home Assistant Core has the issue?

core-2026.6.4

What was the last working version of Home Assistant Core?

core-2026.6.3

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Automation - ZHA device - Inovelli Blue light switch effects in user interface (not YAML)

Link to integration documentation on our website

No response

Diagnostics information

No response

Example YAML snippet

parallel:
  - if:
      - condition: state
        entity_id: input_boolean.toggle_showermode_pribath
        state: "on"
    then:
      - type: issue_all_led_effect
        domain: zha
        device_id: [redacted Inovelli switch device id]
        effect_type: Fast_Falling
        level: 100
        color: 170
        duration: 255
    else:
      - sequence:
          - type: issue_all_led_effect
            domain: zha
            device_id: [redacted Inovelli switch device id]
            effect_type: Clear
            level: 100
            color: 170
            duration: 1
          - action: light.turn_on
            metadata: {}
            target:
              entity_id: light.switchibmbath_shower_light
            data:
              transition: 0
              brightness_pct: 100

Anything in the logs that might be useful for us?

Logger: homeassistant.components.automation.pribath_no_occupancy_lights
Source: components/automation/__init__.py:866
Integration: Automation (documentation, issues)
First occurred: June 26, 2026 at 9:28:38 PM (8 occurrences)
Last logged: 2:28:24 PM

While executing automation automation.pribath_no_occupancy_lights
Traceback (most recent call last):
  File "/usr/local/lib/python3.14/site-packages/zigpy/types/struct.py", line 57, in _convert_type
    return self.type(value)
           ~~~~~~~~~^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/zigpy/types/basic.py", line 130, in __new__
    n = int.__new__(cls, *args, **kwargs)
ValueError: invalid literal for int() with base 10: 'Clear'

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

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/automation/__init__.py", line 866, in async_trigger
    return await self.action_script.async_run(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        variables, trigger_context, started_action
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1892, in async_run
    return await asyncio.shield(create_eager_task(run.async_run()))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 465, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 532, in _async_step
    self._handle_exception(
    ~~~~~~~~~~~~~~~~~~~~~~^
        trace_element,
        ^^^^^^^^^^^^^^
    ...<2 lines>...
        self._log_exceptions or log_exceptions,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 569, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 530, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/trace.py", line 337, in async_wrapper
    await func(*args)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_step_parallel
    raise result
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 676, in async_run_with_trace
    await self._async_run_script(script, parallel=True)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 652, in _async_run_script
    result = await self._async_run_long_action(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<6 lines>...
    )
    ^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 640, in _async_run_long_action
    return await long_task
           ^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1892, in async_run
    return await asyncio.shield(create_eager_task(run.async_run()))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 465, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 532, in _async_step
    self._handle_exception(
    ~~~~~~~~~~~~~~~~~~~~~~^
        trace_element,
        ^^^^^^^^^^^^^^
    ...<2 lines>...
        self._log_exceptions or log_exceptions,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 569, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 530, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1044, in _async_step_device
    await device_action.async_call_action_from_config(
        self._hass, self._action, dict(self._variables), self._context
    )
  File "/usr/src/homeassistant/homeassistant/components/device_automation/action.py", line 70, in async_call_action_from_config
    await platform.async_call_action_from_config(hass, config, variables, context)
  File "/usr/src/homeassistant/homeassistant/components/zha/device_action.py", line 113, in async_call_action_from_config
    await handler(hass, config, context)
  File "/usr/src/homeassistant/homeassistant/components/zha/device_action.py", line 197, in _execute_inovelli_all_led_effect
    await cluster.led_effect(
    ...<4 lines>...
    )
  File "/usr/local/lib/python3.14/site-packages/zigpy/zcl/__init__.py", line 807, in request
    hdr, request = self._create_request(
                   ~~~~~~~~~~~~~~~~~~~~^
        general=general,
        ^^^^^^^^^^^^^^^^
    ...<11 lines>...
        kwargs=kwargs,
        ^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.14/site-packages/zigpy/zcl/__init__.py", line 759, in _create_request
    request = schema(*args, **kwargs)
  File "/usr/local/lib/python3.14/site-packages/zigpy/types/struct.py", line 143, in __new__
    setattr(instance, name, field._convert_type(value))
                            ~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/zigpy/types/struct.py", line 59, in _convert_type
    raise ValueError(
    ...<2 lines>...
    ) from e
ValueError: Failed to convert led_effect='Clear' from type <class 'str'> to <class 'zigpy.types.basic.uint8_t'>

Additional information

Provided YAML snippet is from that which is generated by selecting options in the Automations UI, not hand-coded. I have other UI-generated Automations for Inovelli switches that also (successfully) change the LED color but still fail with setting effect types. Of course, color is already saved as an integer so there is no conversion necessary.

Merely hoping updates will self-correct a recurring issue isn't a solution. Simple functionality like changing a light state should be reliable, consistent, and dependable in Home Assistant. Please look into a regression-tested, permanent fix.

Metadata

Metadata

Type

No type

Priority

None yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions