feat: dishwasher cycle/settings entities, stale-state fixes, LED/sound controls
Dishwasher:
- Revert remote_control to BinarySensorDesc ("Smart Control", read-only)
- Add cycle SelectDesc on /course/vs/0 via options-array RMW (AI Wash,
Pre blast, Self clean, Normal, Express 60, Heavy, Pots and pans,
Delicate, Plastic, Baby Care)
- Add Storm Wash+ and Auto release dry SwitchDescs on /course/vs/0
- Add Sanitize SwitchDesc and Smart Dry SelectDesc on /dishwasher/vs/0
- Add Sound volume NumberDesc (0–15 step 5) on /settings/sound/volume/vs/0
- Add Door LED night brightness, night start/end time to DOOR_LED capability
- Add SOUND_VOLUME capability to laundry module
Stale-state fixes (firmware leaves values set after cycle ends):
- finish_time: suppress when machine state is not active
- progress: return 'Idle' when machine state is not active
- water filter: gate WATER_FILTER capability on filterStatus != 'notused'
Translations:
- Add ICESTATUS_RUN → "Making ice" to strings.json and en.json
Tests:
- Update dishwasher and refrigerator golden fixtures to reflect current entity set
- Remove dead test_project_extrapolates_remaining_time (on_observation removed)
This commit is contained in:
1 parent
800b113495
commit
db2148467b
11 files changed
+257
-72
No files matched your search
@@ -1,4 +1,3 @@
|
||||
import time
|
||||
from custom_components.localthings.ocf.registry.capabilities.operational import OPERATIONAL_STATE
|
||||
|
||||
|
||||
@@ -12,11 +11,3 @@ def test_machine_state_maps_samsung_to_ocf():
|
||||
def test_active_when_true_only_when_running():
|
||||
assert OPERATIONAL_STATE.active_when({'x.com.samsung.da.state': 'Run'}) is True
|
||||
assert OPERATIONAL_STATE.active_when({'x.com.samsung.da.state': 'Ready'}) is False
|
||||
|
||||
|
||||
def test_project_extrapolates_remaining_time():
|
||||
state = {}
|
||||
OPERATIONAL_STATE.on_observation(state, {'x.com.samsung.da.remainingTime': '1:00:00'})
|
||||
assert 'remaining_anchor' in state
|
||||
out = OPERATIONAL_STATE.project(state, {'machine_state': 'active', 'completion_minutes': 60})
|
||||
assert out['completion_minutes'] <= 60
|
||||
Reference in new issue
Block a user