diff --git a/custom_components/localthings/registry/capabilities/dishwasher.py b/custom_components/localthings/registry/capabilities/dishwasher.py index f993f63..dff15b0 100644 --- a/custom_components/localthings/registry/capabilities/dishwasher.py +++ b/custom_components/localthings/registry/capabilities/dishwasher.py @@ -48,6 +48,18 @@ DISHWASHER_SETTINGS = Capability( # boolean-toggle contract washer's bubble-soak/pre-wash/intensive switches # use). Course display names live in translations under # entity.select.dishwasher_cycle (see laundry.cycle_select). +# +# '83'/'86' were transposed in that catalog until issue #226: both the +# original DW9000F-class fixture this table was built from and the issue +# #226 reporter's board report the identical DeviceType_0812 (a real +# per-board-generation id also seen on unrelated washer/dryer fixtures, so +# this is one shared course table, not a Table_02/Table_03-style generation +# split), and the original fixture's own live editCourseList +# ('EditCourseList_0E07908683848D808E8F') puts '86' and '83' back to back at +# positions 4-5 -- exactly the kind of adjacent pair a manual screenshot +# transcription slips on. The reporter's live confirmation (selecting +# 'Normal' ran the physical Express 60 program and vice versa) settles +# which way: '86' is Express 60, '83' is Normal. # --------------------------------------------------------------------------- CYCLE_OPTIONS = Capability( diff --git a/custom_components/localthings/translations/cs.json b/custom_components/localthings/translations/cs.json index bff44e0..f2094c1 100644 --- a/custom_components/localthings/translations/cs.json +++ b/custom_components/localthings/translations/cs.json @@ -278,9 +278,9 @@ "name": "Cyklus", "state": { "80": "Jemné", - "83": "Express 60", + "83": "Normální", "84": "Intenzivní", - "86": "Normální", + "86": "Express 60", "90": "Samočištění", "0e": "AI mytí", "07": "Předoplach", diff --git a/custom_components/localthings/translations/en.json b/custom_components/localthings/translations/en.json index 2ca13af..44ec3e7 100644 --- a/custom_components/localthings/translations/en.json +++ b/custom_components/localthings/translations/en.json @@ -278,9 +278,9 @@ "name": "Cycle", "state": { "80": "Delicate", - "83": "Express 60", + "83": "Normal", "84": "Heavy", - "86": "Normal", + "86": "Express 60", "90": "Self clean", "0e": "AI Wash", "07": "Pre blast", diff --git a/custom_components/localthings/translations/es.json b/custom_components/localthings/translations/es.json index 902b1d6..71b9e3a 100644 --- a/custom_components/localthings/translations/es.json +++ b/custom_components/localthings/translations/es.json @@ -392,9 +392,9 @@ "name": "Ciclo", "state": { "80": "Delicado", - "83": "Express 60", + "83": "Normal", "84": "Intenso", - "86": "Normal", + "86": "Express 60", "90": "Autolimpieza", "0e": "Lavado IA", "07": "Prelavado intenso", diff --git a/custom_components/localthings/translations/it.json b/custom_components/localthings/translations/it.json index c0a5beb..44383cf 100644 --- a/custom_components/localthings/translations/it.json +++ b/custom_components/localthings/translations/it.json @@ -278,9 +278,9 @@ "name": "Ciclo", "state": { "80": "Delicato", - "83": "Express 60", + "83": "Normale", "84": "Intenso", - "86": "Normale", + "86": "Express 60", "90": "Autopulizia", "0e": "AI Wash", "07": "Prelavaggio intenso", diff --git a/custom_components/localthings/translations/nl.json b/custom_components/localthings/translations/nl.json index 955bfc9..c8ea62f 100644 --- a/custom_components/localthings/translations/nl.json +++ b/custom_components/localthings/translations/nl.json @@ -278,9 +278,9 @@ "name": "Programma", "state": { "80": "Delicaat", - "83": "Express 60", + "83": "Normaal", "84": "Intensief", - "86": "Normaal", + "86": "Express 60", "90": "Zelfreiniging", "0e": "AI Wash", "07": "Voorspoelen", diff --git a/tests/test_dishwasher_capabilities.py b/tests/test_dishwasher_capabilities.py index 1e9d232..7ad5599 100644 --- a/tests/test_dishwasher_capabilities.py +++ b/tests/test_dishwasher_capabilities.py @@ -33,6 +33,17 @@ class TestCycleOptions: assert body == {"x.com.samsung.da.options": ["Course_90"]} +def test_normal_and_express_60_labels_are_not_transposed(): + """Issue #226: '83'/'86' were swapped in the shipped catalog -- '86' is + Express 60, '83' is Normal (see dishwasher.py's CYCLE_OPTIONS comment for + how this was confirmed).""" + from custom_components.localthings.catalog import _ENTITY_CATALOG + + state = _ENTITY_CATALOG["select"]["dishwasher_cycle"]["state"] + assert state["83"] == "Normal" + assert state["86"] == "Express 60" + + class TestDishwasherOptions: def test_storm_wash_read_and_write(self): desc = next(