diff --git a/custom_components/midea_ac_lan/__pycache__/__init__.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/__init__.cpython-314.pyc deleted file mode 100644 index 6f517e6..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/__init__.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/binary_sensor.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/binary_sensor.cpython-314.pyc deleted file mode 100644 index 51bc082..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/binary_sensor.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/climate.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/climate.cpython-314.pyc deleted file mode 100644 index 20e686a..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/climate.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/config_flow.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/config_flow.cpython-314.pyc deleted file mode 100644 index 267ee2e..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/config_flow.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/const.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/const.cpython-314.pyc deleted file mode 100644 index 38fd659..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/const.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/diagnostics.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/diagnostics.cpython-314.pyc deleted file mode 100644 index 58eb81e..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/diagnostics.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/fan.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/fan.cpython-314.pyc deleted file mode 100644 index 09f0c56..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/fan.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/humidifier.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/humidifier.cpython-314.pyc deleted file mode 100644 index 48e43d3..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/humidifier.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/light.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/light.cpython-314.pyc deleted file mode 100644 index 0b02039..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/light.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/lock.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/lock.cpython-314.pyc deleted file mode 100644 index 00b2a53..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/lock.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/midea_devices.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/midea_devices.cpython-314.pyc deleted file mode 100644 index b712798..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/midea_devices.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/midea_entity.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/midea_entity.cpython-314.pyc deleted file mode 100644 index e129d81..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/midea_entity.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/number.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/number.cpython-314.pyc deleted file mode 100644 index d631bb3..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/number.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/select.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/select.cpython-314.pyc deleted file mode 100644 index 35c66e2..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/select.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/sensor.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/sensor.cpython-314.pyc deleted file mode 100644 index 2807dc9..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/sensor.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/switch.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/switch.cpython-314.pyc deleted file mode 100644 index 9070ef9..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/switch.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/__pycache__/water_heater.cpython-314.pyc b/custom_components/midea_ac_lan/__pycache__/water_heater.cpython-314.pyc deleted file mode 100644 index 9784758..0000000 Binary files a/custom_components/midea_ac_lan/__pycache__/water_heater.cpython-314.pyc and /dev/null differ diff --git a/custom_components/midea_ac_lan/climate.py b/custom_components/midea_ac_lan/climate.py index db11bc3..5f6e203 100644 --- a/custom_components/midea_ac_lan/climate.py +++ b/custom_components/midea_ac_lan/climate.py @@ -504,13 +504,23 @@ class MideaACClimate(MideaClimate): @property def fan_modes(self) -> list[str] | None: - """fan_modes restricted to the speeds the device reports (B5). + """fan_modes: B5 capabilities > default full set. - Falls back to the full set when no capability is reported. + Read dynamically so capabilities decoded after the first refresh are + reflected (they are not yet available when the entity is created). + + The B5 ``b5_wind_speed`` byte is a single capability profile (1-7), not + a bitmask: value 1 (``fan_custom``) means the fan is stepless/inverter + and accepts every speed, so all discrete modes are valid. Mapping + ``fan_custom`` to ``full`` alone collapsed the list to ``["full"]`` on + such units (issue #904); short-circuit to the full set instead. """ caps = getattr(self._device, "capabilities", {}) if not caps: return list(self._fan_speeds.keys()) + # stepless/inverter fan: expose every discrete speed, not just "full" + if caps.get("fan_custom"): + return list(self._fan_speeds.keys()) cap_by_fan = { FAN_SILENT: "fan_silent", FAN_LOW: "fan_low", diff --git a/custom_components/midea_ac_lan/manifest.json b/custom_components/midea_ac_lan/manifest.json index 5a373e7..8dccb04 100644 --- a/custom_components/midea_ac_lan/manifest.json +++ b/custom_components/midea_ac_lan/manifest.json @@ -9,6 +9,6 @@ "iot_class": "local_push", "issue_tracker": "https://github.com/wuwentao/midea_ac_lan/issues", "loggers": ["midealocal"], - "requirements": ["midea-local==6.11.0"], - "version": "0.7.0" + "requirements": ["midea-local==6.11.1"], + "version": "0.7.1" }