Repository navigation
Conversation
proscar87
force-pushed
the
fix/oasismist-450s-wus-humidity-range
branch
from
September 23, 2026 19:14
87e8455 to
7068dab
Compare
configModule WFON_AHM_LUH-A451S-WUS_US only accepts a target humidity of
40-80 (the cloud API rejects 30 with "target humidity is out of range")
and rejects the HUMIDITY mist mode ("Mode value invaild!"), unlike the
WUSR/601S variants it was grouped with, which the maintainer confirmed
in the issue threads can go down to 30.
Splits the single HumidifierMap entry for
['LUH-O451S-WUS', 'LUH-O451S-WUSR', 'LUH-O601S-WUS', 'LUH-O601S-KUS']
into two: LUH-O451S-WUS keeps target_minmax=(40, 80) and drops the
HUMIDITY mode, the other three dev_types keep the previous (30, 80)
range and HUMIDITY mode, matching the only variant with confirmed
API-rejected behavior.
Fixes webdjoe#295, fixes webdjoe#296.
proscar87
force-pushed
the
fix/oasismist-450s-wus-humidity-range
branch
from
October 3, 2026 01:47
7068dab to
f905d4a
Compare
This branch has not been deployed
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.
Problem
The
HumidifierMapentry fordev_types=['LUH-O451S-WUS', 'LUH-O451S-WUSR', 'LUH-O601S-WUS', 'LUH-O601S-KUS']treats all four dev types identically:target_minmax=(30, 80)(the class default) and aHUMIDITYmist mode.Both #295 and #296 show this is wrong for the
LUH-O451S-WUSvariant specifically (configModuleWFON_AHM_LUH-A451S-WUS_US):"target humidity is out of range"— this device only accepts 40-80.humidityis rejected with"Mode value invaild!".@webdjoe confirmed in #296 that this is specific to that configModule, and that the WUSR variant (
WFON_AHM_LUH-A451S-WUSR_US) can go down to 30.Fix
Split the single
HumidifierMapentry into two:dev_types=['LUH-O451S-WUS']:target_minmax=(40, 80),HUMIDITYmode removed.dev_types=['LUH-O451S-WUSR', 'LUH-O601S-WUS', 'LUH-O601S-KUS']: unchanged (target_minmax=(30, 80),HUMIDITYmode kept) — no evidence these are affected.target_minmaxandmist_modesaren't just documentation —set_humidity()/set_humidity_mode()validate against them client-side before calling the API (vesynchumidifier.py), so this actually prevents the rejected calls rather than just describing them.Splitting the dev_types list also means
LUH-O451S-WUSRnow gets its own entry inhumidifier_modules, which the test suite auto-parametrizes from (HUMIDIFIERS = [m.setup_entry for m in humidifier_modules]) — added the corresponding fixtures (HUMIDIFIER_DETAILS/DETAILS_RESPONSES/METHOD_RESPONSESentries, recorded YAML) so it's exercised the same as every other device.Testing
Added 4 regression tests in
test_humidifiers.py:test_oasismist_450s_wus_rejects_humidity_below_40/test_oasismist_450s_wusr_still_allows_humidity_30test_oasismist_450s_wus_has_no_humidity_mode/test_oasismist_450s_wusr_still_has_humidity_modeThese are guards on the device map, not reproductions of the API errors: the tests never reach the cloud API, so they don't produce the
"target humidity is out of range"/"Mode value invaild!"messages from the issues. Withdevice_map.pyandcall_json_humidifiers.pyreverted todev, all 4 fail: the two WUS tests on their local assertions (assert (30, 80) == (40, 80), andHUMIDITYstill inmist_modes), the two WUSR tests withKeyError: 'LUH-O451S-WUSR'because the device-map entry doesn't exist yet. All 4 pass with the fix.Full suite (
pytest -v, Python 3.11, 3.12 and 3.13): 395 passed, 3 skipped;devgives 380 passed, 3 skipped.pylint src/pyvesync: 10.00/10.flake8 src/pyvesync: clean.pre-commit run --all-files: passes.ruff check src/pyvesync(ruff 0.16.10) andmypy src/pyvesync(2 errors invesyncthermostat.py) report exactly the same findings ondevand on this branch; none come from this change.Base branch: this PR was first opened against
masterby mistake and carried 4 commits fromdev. It now targetsdev, rebased onto it, and contains only the one commit for this fix (same tree as before).Not validated against real hardware (no OasisMist 450S on hand) — the fix is based directly on the live API traces both issues include and @webdjoe's own confirmation of the configModule-specific behavior, not guesswork about the device.
Fixes #295, fixes #296.