Migrate to pyvesync 3.4.2 and Python 3.14#77
Open
mxr wants to merge 5 commits into
Open
Conversation
- Upgrade pyvesync from 2.1.x to 3.4.2 (sync->async API, new device container model, state object per device) - Rebuild venv with Python 3.14 - Update homeassistant dev dep to 2026.6.4 - Update pre-commit hooks for Python 3.14 compatibility - All pyvesync calls are now awaited (login, update, turn_on/off, etc.) - Device state accessed via device.state.* instead of device.details/config dicts - Device routing uses manager.devices.air_purifiers/fans/humidifiers/air_fryers instead of manager.fans/kitchen (which split purifiers from humidifiers) - Remove VS_FAN_TYPES/VS_HUMIDIFIERS_TYPES/VS_AIRFRYER_TYPES from const - HA entity methods converted to async_turn_on/off, async_set_*, async_press
- pyupgrade: v3.19.1 -> v3.21.2, args --py313-plus -> --py314-plus - requirements_dev.txt, hacs.json: homeassistant -> 2025.11.0 (first HA release to declare Python 3.14 support) - Reorder config_flow.py: VeSyncOptionsFlowHandler before VeSyncFlowHandler to fix F821 forward reference now that pyupgrade removes annotation quotes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
--py314-plus, black 25.1.0, isort 5.13.2login,update,turn_on/off,set_*, etc.)device.state.*instead ofdevice.details[...]/device.config[...]dictsmanager.devicescontainer properties (.air_purifiers,.fans,.humidifiers,.air_fryers, etc.) instead ofmanager.fans/manager.kitchenhas_feature()rewritten to checkdevice.stateattributes for"details"/"config"keys and device capability lists for"_config_dict"keysVS_FAN_TYPES,VS_HUMIDIFIERS_TYPES,VS_AIRFRYER_TYPESfromconst.py(device type detection now handled by the typed device container)async_turn_on/off,async_set_percentage,async_set_preset_mode,async_set_native_value,async_press)device.supports_nightlightproperty anddevice.state.nightlight_*attributeshasattr(dev.state, "cook_set_temp")instead ofhasattr(dev, "fryer_status")air_quality->air_quality_level,air_quality_value->pm25