Skip to content

Conversation

@cdnninja
Copy link
Contributor

@cdnninja cdnninja commented Oct 5, 2025

Proposed change

The old set methods are being removed. The smart tower fan already has these removed so fails in the current builds releases. I learned this via discord from a user. This switches to the non deprecated methods.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:
  • Link to developer documentation pull request:
  • Link to frontend pull request:

Checklist

  • I understand the code I am submitting and can explain how it works.
  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.
  • Any generated code has been carefully reviewed for correctness and compliance with project standards.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.

To help with the load of incoming pull requests:

@home-assistant
Copy link

home-assistant bot commented Oct 5, 2025

Hey there @markperdue, @webdjoe, @TheGardenMonkey, @iprak, @SapuSeven, mind taking a look at this pull request as it has been labeled with an integration (vesync) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of vesync can trigger bot actions by commenting:

  • @home-assistant close Closes the pull request.
  • @home-assistant rename Awesome new title Renames the pull request.
  • @home-assistant reopen Reopen the pull request.
  • @home-assistant unassign vesync Removes the current integration label and assignees on the pull request, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the pull request.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the pull request.

@cdnninja
Copy link
Contributor Author

cdnninja commented Oct 5, 2025

Error that occurs without this patch

Logger: homeassistant.components.websocket_api.http.connection
Quelle: components/websocket_api/commands.py:264
Integration: Home Assistant WebSocket API (Dokumentation, Probleme)
Erstmals aufgetreten: 17:19:29 (5 Vorkommnisse)
Zuletzt protokolliert: 17:24:03

[546450296000] Unexpected exception
[546857048704] Unexpected exception
[546476616224] Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 264, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<7 lines>...
    )
    ^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2835, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2878, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 852, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
        hass, entity, func, data, call.context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 924, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/fan/init.py", line 267, in async_handle_set_preset_mode_service
    await self.async_set_preset_mode(preset_mode)
  File "/config/custom_components/vesync/fan.py", line 223, in async_set_preset_mode
    success = await self.device.turbo_mode()
                    ^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'VeSyncTowerFan' object has no attribute 'turbo_mode'. Did you mean: 'set_turbo_mode'?


@cdnninja
Copy link
Contributor Author

cdnninja commented Oct 5, 2025

Improved test coverage while I was at it. Reason I didn't add all modes is the device type used doesn't support normal sleep just advanced sleep. So it will fail for a different reason.

@cdnninja cdnninja changed the title vesync switch to new fan set modes vesync correct to fan set modes Oct 5, 2025
@cdnninja cdnninja changed the title vesync correct to fan set modes vesync correct fan set modes Oct 6, 2025
@zweckj zweckj added this to the 2025.10.2 milestone Oct 6, 2025
@joostlek joostlek merged commit c36341e into home-assistant:dev Oct 6, 2025
33 of 34 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Oct 7, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants