From c731ecefe595bd6231d10958443ab9d47e5cc5ab Mon Sep 17 00:00:00 2001 From: Marc Billow Date: Fri, 24 Jul 2026 14:02:15 +0000 Subject: [PATCH 01/15] feat: add debug options panel for arbitrary resource-href writes (#54) Power users can now pick a resource href from a live dropdown, view its current value, and POST a minimal patch straight to the device -- to pin down device-specific write behavior without waiting on a new release. Bypasses the remote-control block and all write_fn/validate_fn logic by design; the existing remote-control settings toggle moves behind the same options-flow menu. --- custom_components/localthings/config_flow.py | 130 ++++++++++++++- custom_components/localthings/coordinator.py | 55 ++++++ custom_components/localthings/strings.json | 36 ++++ .../localthings/translations/en.json | 36 ++++ tests/localthings/test_config_flow.py | 157 +++++++++++++++++- tests/test_coordinator_raw_write.py | 137 +++++++++++++++ 6 files changed, 545 insertions(+), 6 deletions(-) create mode 100644 tests/test_coordinator_raw_write.py diff --git a/custom_components/localthings/config_flow.py b/custom_components/localthings/config_flow.py index fe72327..48bdb87 100644 --- a/custom_components/localthings/config_flow.py +++ b/custom_components/localthings/config_flow.py @@ -2,6 +2,7 @@ from __future__ import annotations import datetime +import json import logging import re import selectors @@ -15,6 +16,10 @@ from homeassistant import config_entries from homeassistant.core import callback from homeassistant.data_entry_flow import FlowResult from homeassistant.helpers.selector import ( + ObjectSelector, + SelectSelector, + SelectSelectorConfig, + SelectSelectorMode, TextSelector, TextSelectorConfig, TextSelectorType, @@ -396,22 +401,44 @@ class LocalThingsConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): class LocalThingsOptionsFlow(config_entries.OptionsFlow): - """Per-device override of the remote-control-off write block (issue - #54). The block exists because most devices reject writes outright - while remote control is off and a clear error beats a silent + """Per-device options: the remote-control-off write-block override + (issue #54) plus a debug panel for writing an arbitrary body to an + arbitrary resource href, so a user can pin down device-specific write + behavior without waiting on a new release. + + The remote-control override exists because most devices reject writes + outright while remote control is off and a clear error beats a silent device-side rejection -- but not every model actually enforces that, so this lets a user who's confirmed their device accepts writes anyway turn the block off for just that device rather than it being - hardcoded on for everyone.""" + hardcoded on for everyone. The debug panel goes further: it bypasses + that block (and every write_fn/validate_fn) entirely, sending exactly + the body the user types to whatever href they pick. + """ + + def __init__(self) -> None: + self._debug_href: str = "" + self._debug_result: tuple[int, dict] | None = None + + def _coordinator(self): + return self.hass.data.get(DOMAIN, {}).get(self.config_entry.entry_id) async def async_step_init( self, user_input: dict[str, Any] | None = None + ) -> FlowResult: + return self.async_show_menu( + step_id="init", + menu_options=["settings", "debug_write"], + ) + + async def async_step_settings( + self, user_input: dict[str, Any] | None = None ) -> FlowResult: if user_input is not None: return self.async_create_entry(data=user_input) return self.async_show_form( - step_id="init", + step_id="settings", data_schema=vol.Schema({ vol.Required( CONF_BYPASS_REMOTE_CONTROL, @@ -421,3 +448,96 @@ class LocalThingsOptionsFlow(config_entries.OptionsFlow): ): bool, }), ) + + async def async_step_debug_write( + self, user_input: dict[str, Any] | None = None + ) -> FlowResult: + coord = self._coordinator() + if coord is None: + return self.async_abort(reason="not_loaded") + + if user_input is not None: + self._debug_href = user_input["href"] + return await self.async_step_debug_edit() + + hrefs = sorted(coord.last_resources.keys()) + return self.async_show_form( + step_id="debug_write", + data_schema=vol.Schema({ + vol.Required("href"): SelectSelector(SelectSelectorConfig( + options=hrefs, + custom_value=True, + mode=SelectSelectorMode.DROPDOWN, + )), + }), + ) + + def _show_debug_edit_form( + self, href: str, current: dict, errors: dict[str, str], payload, + ) -> FlowResult: + return self.async_show_form( + step_id="debug_edit", + data_schema=vol.Schema({ + vol.Required( + "payload", default=(payload if payload is not None else {}), + ): ObjectSelector(), + }), + errors=errors, + description_placeholders={ + "href": href, + "current_value": ( + json.dumps(current, indent=2, ensure_ascii=False) + if current else "(no cached value)" + ), + }, + ) + + async def async_step_debug_edit( + self, user_input: dict[str, Any] | None = None + ) -> FlowResult: + coord = self._coordinator() + if coord is None: + return self.async_abort(reason="not_loaded") + + href = self._debug_href + current = coord.resource(href) + + if user_input is not None: + payload = user_input.get("payload") or {} + if not isinstance(payload, dict) or not payload: + return self._show_debug_edit_form( + href, current, {"payload": "empty_payload"}, payload + ) + try: + code, new_rep = await coord.async_raw_write(href, payload) + except Exception: # noqa: BLE001 - surfaced to the user below + _LOGGER.exception("debug raw write failed for %s", href) + return self._show_debug_edit_form( + href, current, {"base": "write_failed"}, payload + ) + self._debug_result = (code, new_rep) + return await self.async_step_debug_result() + + return self._show_debug_edit_form(href, current, {}, None) + + async def async_step_debug_result( + self, user_input: dict[str, Any] | None = None + ) -> FlowResult: + code, new_rep = self._debug_result or (0, {}) + return self.async_show_menu( + step_id="debug_result", + menu_options=["debug_write", "finish"], + description_placeholders={ + "code": f"{code >> 5}.{code & 0x1f:02d} ({code:#04x})", + "new_value": ( + json.dumps(new_rep, indent=2, ensure_ascii=False) + if new_rep else "(no value returned)" + ), + }, + ) + + async def async_step_finish( + self, user_input: dict[str, Any] | None = None + ) -> FlowResult: + # Close the flow without altering saved options. + return self.async_create_entry(data=dict(self.config_entry.options)) diff --git a/custom_components/localthings/coordinator.py b/custom_components/localthings/coordinator.py index 94e8fc8..0e3d44a 100644 --- a/custom_components/localthings/coordinator.py +++ b/custom_components/localthings/coordinator.py @@ -630,3 +630,58 @@ class LocalThingsCoordinator(DataUpdateCoordinator[dict[str, Any]]): self._log.error("command failed for %s: %s", write_href, e) else: await self.async_request_refresh() + + # ------------------------------------------------------------------ + # Debug raw write (issue #54): a power-user escape hatch for the + # options-flow debug panel, letting a user POST an arbitrary partial + # body to an arbitrary href to pin down device-specific write behavior + # without waiting on a new release. Deliberately bypasses the + # remote-control block and every write_fn/validate_fn above -- that's + # the whole point, so use with care. + # ------------------------------------------------------------------ + + def _raw_write_blocking(self, path_segs: list[str], body: dict, href: str) -> tuple[int, dict]: + """Debug primitive: POST an arbitrary patch, then read the href + back for ground truth. Blocking -- runs in executor.""" + if self._session is None: + self._connect_session() + sess = self._session + if sess is None: + raise RuntimeError("no session") + code, _ = sess.post(path_segs, cbor2.dumps(body), timeout=self._POST_TIMEOUT_S) + self._log.warning("DEBUG raw write POST %s %r → code %#04x", href, body, code) + new_rep: dict = {} + try: + sess.pace() + rcode, payload = sess.get(path_segs, timeout=10.0) + if rcode == 0x45 and payload: + rep = cbor2.loads(payload) + if isinstance(rep, dict): + self._observe.apply(href, rep, source='poll') + new_rep = rep + except Exception as e: + self._log.debug("raw write follow-up read failed: %s", e) + return code, new_rep + + async def async_raw_write(self, href: str, body: dict) -> tuple[int, dict]: + """Debug-only arbitrary write (issue #54). Bypasses the + remote-control block and all write_fn/validate_fn logic; sends + `body` verbatim as a partial-rep PATCH to `href`. Returns + (coap_code, new_rep) where new_rep is the href's value read back + right after the write. Used by the options-flow debug panel to + help users pin down device-specific write behavior without a new + release.""" + if not isinstance(body, dict) or not body: + raise ServiceValidationError("Debug write payload must be a non-empty object.") + path_segs = [s for s in href.strip('/').split('/') if s] + if not path_segs: + raise ServiceValidationError("A resource href is required.") + norm_href = '/' + '/'.join(path_segs) + async with self._session_lock: + code, new_rep = await self.hass.async_add_executor_job( + self._raw_write_blocking, path_segs, body, norm_href + ) + # Hasten a full summary poll so entities on other resources catch + # up too -- a debug write can affect siblings, not just its href. + await self.async_request_refresh() + return code, new_rep diff --git a/custom_components/localthings/strings.json b/custom_components/localthings/strings.json index d375db1..de1ac17 100644 --- a/custom_components/localthings/strings.json +++ b/custom_components/localthings/strings.json @@ -250,11 +250,47 @@ "step": { "init": { "title": "Local Things Options", + "menu_options": { + "settings": "Remote control write settings", + "debug_write": "Debug: write to a resource" + } + }, + "settings": { + "title": "Remote control write settings", "description": "Some devices accept certain writes (e.g. default detergent/softener dosing on a washer) even while reporting remote control off. By default, LocalThings blocks every write with a clear error whenever a device reports remote control off, rather than letting the device silently reject it. Only enable this if you've confirmed writes actually work on this device with remote control off -- otherwise you'll trade that clear error for a silent failure.", "data": { "bypass_remote_control_lock": "Allow writes even when remote control is reported off" } + }, + "debug_write": { + "title": "Debug: write to a resource", + "description": "Power-user tool for pinning down device-specific write behavior. Pick the resource (href) you want to write to, or type a custom one that isn't listed. This bypasses the remote-control-off block and sends exactly the fields you provide -- it can misconfigure your appliance, so use it deliberately.", + "data": { + "href": "Resource href" + } + }, + "debug_edit": { + "title": "Debug write: {href}", + "description": "Current value of `{href}`:\n```\n{current_value}\n```\nEnter ONLY the field(s) you want to change below. What you enter is sent to the device as-is (a partial update); it is NOT merged with the fields shown above, so don't paste the whole value back. Mind the types: a numeric string like \"1\" must stay quoted -- a bare 1 is sent as an integer, which some devices reject.", + "data": { + "payload": "Payload to write" + } + }, + "debug_result": { + "title": "Debug write result", + "description": "The device returned CoAP code {code}. A 2.xx class means the write was accepted; 4.xx/5.xx means it was rejected. The resource now reads:\n```\n{new_value}\n```\nIf the value is unchanged, the device likely dropped the write. Pick what to do next:", + "menu_options": { + "debug_write": "Write another resource", + "finish": "Finish" + } } + }, + "error": { + "empty_payload": "Enter at least one field to write.", + "write_failed": "The write failed. Check the Home Assistant logs for details." + }, + "abort": { + "not_loaded": "This device isn't connected yet. Try again once it has loaded." } }, "issues": { diff --git a/custom_components/localthings/translations/en.json b/custom_components/localthings/translations/en.json index d375db1..de1ac17 100644 --- a/custom_components/localthings/translations/en.json +++ b/custom_components/localthings/translations/en.json @@ -250,11 +250,47 @@ "step": { "init": { "title": "Local Things Options", + "menu_options": { + "settings": "Remote control write settings", + "debug_write": "Debug: write to a resource" + } + }, + "settings": { + "title": "Remote control write settings", "description": "Some devices accept certain writes (e.g. default detergent/softener dosing on a washer) even while reporting remote control off. By default, LocalThings blocks every write with a clear error whenever a device reports remote control off, rather than letting the device silently reject it. Only enable this if you've confirmed writes actually work on this device with remote control off -- otherwise you'll trade that clear error for a silent failure.", "data": { "bypass_remote_control_lock": "Allow writes even when remote control is reported off" } + }, + "debug_write": { + "title": "Debug: write to a resource", + "description": "Power-user tool for pinning down device-specific write behavior. Pick the resource (href) you want to write to, or type a custom one that isn't listed. This bypasses the remote-control-off block and sends exactly the fields you provide -- it can misconfigure your appliance, so use it deliberately.", + "data": { + "href": "Resource href" + } + }, + "debug_edit": { + "title": "Debug write: {href}", + "description": "Current value of `{href}`:\n```\n{current_value}\n```\nEnter ONLY the field(s) you want to change below. What you enter is sent to the device as-is (a partial update); it is NOT merged with the fields shown above, so don't paste the whole value back. Mind the types: a numeric string like \"1\" must stay quoted -- a bare 1 is sent as an integer, which some devices reject.", + "data": { + "payload": "Payload to write" + } + }, + "debug_result": { + "title": "Debug write result", + "description": "The device returned CoAP code {code}. A 2.xx class means the write was accepted; 4.xx/5.xx means it was rejected. The resource now reads:\n```\n{new_value}\n```\nIf the value is unchanged, the device likely dropped the write. Pick what to do next:", + "menu_options": { + "debug_write": "Write another resource", + "finish": "Finish" + } } + }, + "error": { + "empty_payload": "Enter at least one field to write.", + "write_failed": "The write failed. Check the Home Assistant logs for details." + }, + "abort": { + "not_loaded": "This device isn't connected yet. Try again once it has loaded." } }, "issues": { diff --git a/tests/localthings/test_config_flow.py b/tests/localthings/test_config_flow.py index f21ee54..bc7de8b 100644 --- a/tests/localthings/test_config_flow.py +++ b/tests/localthings/test_config_flow.py @@ -279,6 +279,20 @@ def test_probe_marks_washer_as_recognized(monkeypatch): assert recognized is True +async def test_options_flow_init_shows_menu(hass: HomeAssistant) -> None: + """The options flow's entry point is now a menu (issue #54's debug + panel lives alongside the remote-control settings), not the settings + form directly.""" + entry = MockConfigEntry(domain=DOMAIN, data=ENTRY_DATA, unique_id=f'localthings_{MOCK_SERIAL}') + entry.add_to_hass(hass) + + result = await hass.config_entries.options.async_init(entry.entry_id) + + assert result['type'] == FlowResultType.MENU + assert result['step_id'] == 'init' + assert set(result['menu_options']) == {'settings', 'debug_write'} + + async def test_options_flow_default_is_off(hass: HomeAssistant) -> None: """The bypass defaults to False, so devices that never touch this option see no change in the remote-control write block.""" @@ -286,9 +300,12 @@ async def test_options_flow_default_is_off(hass: HomeAssistant) -> None: entry.add_to_hass(hass) result = await hass.config_entries.options.async_init(entry.entry_id) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'next_step_id': 'settings'} + ) assert result['type'] == FlowResultType.FORM - assert result['step_id'] == 'init' + assert result['step_id'] == 'settings' assert result['data_schema']({})[CONF_BYPASS_REMOTE_CONTROL] is False @@ -299,6 +316,9 @@ async def test_options_flow_can_enable_bypass(hass: HomeAssistant) -> None: entry.add_to_hass(hass) result = await hass.config_entries.options.async_init(entry.entry_id) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'next_step_id': 'settings'} + ) result = await hass.config_entries.options.async_configure( result['flow_id'], user_input={CONF_BYPASS_REMOTE_CONTROL: True} ) @@ -317,5 +337,140 @@ async def test_options_flow_reflects_previously_saved_value(hass: HomeAssistant) entry.add_to_hass(hass) result = await hass.config_entries.options.async_init(entry.entry_id) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'next_step_id': 'settings'} + ) assert result['data_schema']({})[CONF_BYPASS_REMOTE_CONTROL] is True + + +async def test_options_flow_debug_write_shows_hrefs_from_coordinator( + hass: HomeAssistant, mock_coordinator_session, +) -> None: + """The debug panel's href dropdown is populated from the live + coordinator's cached resources, not a static list.""" + entry = MockConfigEntry(domain=DOMAIN, data=ENTRY_DATA, unique_id=f'localthings_{MOCK_SERIAL}') + entry.add_to_hass(hass) + await hass.config_entries.async_setup(entry.entry_id) + await hass.async_block_till_done() + + result = await hass.config_entries.options.async_init(entry.entry_id) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'next_step_id': 'debug_write'} + ) + + assert result['type'] == FlowResultType.FORM + assert result['step_id'] == 'debug_write' + + +async def test_options_flow_debug_write_aborts_when_device_not_loaded( + hass: HomeAssistant, +) -> None: + """No coordinator in hass.data (device never finished loading) means + the debug panel has nothing to write to or read from.""" + entry = MockConfigEntry(domain=DOMAIN, data=ENTRY_DATA, unique_id=f'localthings_{MOCK_SERIAL}') + entry.add_to_hass(hass) + + result = await hass.config_entries.options.async_init(entry.entry_id) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'next_step_id': 'debug_write'} + ) + + assert result['type'] == FlowResultType.ABORT + assert result['reason'] == 'not_loaded' + + +async def test_options_flow_debug_edit_writes_and_shows_result( + hass: HomeAssistant, mock_coordinator_session, +) -> None: + """Picking an href, then submitting a payload, drives + coordinator.async_raw_write and lands on the result menu with the + device's response.""" + entry = MockConfigEntry(domain=DOMAIN, data=ENTRY_DATA, unique_id=f'localthings_{MOCK_SERIAL}') + entry.add_to_hass(hass) + await hass.config_entries.async_setup(entry.entry_id) + await hass.async_block_till_done() + + result = await hass.config_entries.options.async_init(entry.entry_id) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'next_step_id': 'debug_write'} + ) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'href': '/washer/vs/0'}, + ) + assert result['type'] == FlowResultType.FORM + assert result['step_id'] == 'debug_edit' + + with patch( + 'custom_components.localthings.coordinator.LocalThingsCoordinator.async_raw_write', + return_value=(0x44, {'a': 1}), + ): + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'payload': {'a': 1}}, + ) + + assert result['type'] == FlowResultType.MENU + assert result['step_id'] == 'debug_result' + assert result['description_placeholders']['code'] == '2.04 (0x44)' + + +async def test_options_flow_debug_edit_rejects_empty_payload( + hass: HomeAssistant, mock_coordinator_session, +) -> None: + entry = MockConfigEntry(domain=DOMAIN, data=ENTRY_DATA, unique_id=f'localthings_{MOCK_SERIAL}') + entry.add_to_hass(hass) + await hass.config_entries.async_setup(entry.entry_id) + await hass.async_block_till_done() + + result = await hass.config_entries.options.async_init(entry.entry_id) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'next_step_id': 'debug_write'} + ) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'href': '/washer/vs/0'}, + ) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'payload': {}}, + ) + + assert result['type'] == FlowResultType.FORM + assert result['step_id'] == 'debug_edit' + assert result['errors'] == {'payload': 'empty_payload'} + + +async def test_options_flow_finish_preserves_existing_options( + hass: HomeAssistant, mock_coordinator_session, +) -> None: + """Finishing from the debug-result menu must not clobber a previously + saved remote-control bypass setting.""" + entry = MockConfigEntry( + domain=DOMAIN, data=ENTRY_DATA, unique_id=f'localthings_{MOCK_SERIAL}', + options={CONF_BYPASS_REMOTE_CONTROL: True}, + ) + entry.add_to_hass(hass) + await hass.config_entries.async_setup(entry.entry_id) + await hass.async_block_till_done() + + result = await hass.config_entries.options.async_init(entry.entry_id) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'next_step_id': 'debug_write'} + ) + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'href': '/washer/vs/0'}, + ) + with patch( + 'custom_components.localthings.coordinator.LocalThingsCoordinator.async_raw_write', + return_value=(0x44, {'a': 1}), + ): + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'payload': {'a': 1}}, + ) + assert result['type'] == FlowResultType.MENU + assert result['step_id'] == 'debug_result' + + result = await hass.config_entries.options.async_configure( + result['flow_id'], user_input={'next_step_id': 'finish'} + ) + + assert result['type'] == FlowResultType.CREATE_ENTRY + assert entry.options[CONF_BYPASS_REMOTE_CONTROL] is True diff --git a/tests/test_coordinator_raw_write.py b/tests/test_coordinator_raw_write.py new file mode 100644 index 0000000..516e05e --- /dev/null +++ b/tests/test_coordinator_raw_write.py @@ -0,0 +1,137 @@ +"""Tests for LocalThingsCoordinator.async_raw_write -- the debug-only +arbitrary-href write primitive backing the options-flow debug panel +(issue #54). It deliberately bypasses the remote-control block and every +write_fn/validate_fn, so this only exercises the primitive itself: it +POSTs exactly the caller's body, reads the href back, and validates its +inputs. +""" +from __future__ import annotations + +from unittest.mock import AsyncMock + +import cbor2 +import pytest +from homeassistant.core import HomeAssistant +from homeassistant.exceptions import ServiceValidationError +from pytest_homeassistant_custom_component.common import MockConfigEntry + +from custom_components.localthings.const import ( + CONF_HOST, CONF_LEAF_CERT_PEM, CONF_LEAF_KEY_PEM, CONF_PORT, DOMAIN, +) +from custom_components.localthings.coordinator import LocalThingsCoordinator + +ENTRY_DATA = { + CONF_HOST: '10.0.0.199', + CONF_PORT: 49154, + CONF_LEAF_CERT_PEM: '-----BEGIN CERTIFICATE-----\nTEST-LEAF\n-----END CERTIFICATE-----', + CONF_LEAF_KEY_PEM: '-----BEGIN PRIVATE KEY-----\nTEST-LEAF-KEY\n-----END PRIVATE KEY-----', +} + + +class _FakeRawWriteSession: + """Stand-in for DtlsCoapSession: records every POST verbatim and + answers the follow-up GET with a canned representation -- no real + DTLS/network involved.""" + + def __init__(self, post_code: int = 0x44, get_rep: dict | None = None): + self.post_calls: list[tuple[list[str], bytes]] = [] + self.get_calls: list[list[str]] = [] + self._post_code = post_code + self._get_rep = {} if get_rep is None else get_rep + + def post(self, path_segs, payload, timeout=None): + self.post_calls.append((list(path_segs), payload)) + return self._post_code, b'' + + def get(self, path_segs, timeout=None): + self.get_calls.append(list(path_segs)) + return 0x45, cbor2.dumps(self._get_rep) + + def pace(self): + pass + + +@pytest.fixture +def coordinator(hass: HomeAssistant) -> LocalThingsCoordinator: + entry = MockConfigEntry( + domain=DOMAIN, data=ENTRY_DATA, unique_id='localthings_RAWWRITE-TEST', + ) + entry.add_to_hass(hass) + coord = LocalThingsCoordinator(hass, entry) + # async_raw_write kicks a full refresh after the write; a real refresh + # would try to poll a session that doesn't exist for this unit test, so + # replace it with a no-op the same way the reference test setup does. + coord.async_request_refresh = AsyncMock() + return coord + + +async def test_raw_write_splits_href_and_posts_exact_body(coordinator) -> None: + fake = _FakeRawWriteSession(post_code=0x44, get_rep={'x.field': 'after'}) + coordinator._session = fake + + body = {'x.com.samsung.da.field': 'value', 'n': 1} + code, new_rep = await coordinator.async_raw_write('/course/vs/0', body) + + assert len(fake.post_calls) == 1 + posted_path, posted_bytes = fake.post_calls[0] + assert posted_path == ['course', 'vs', '0'] + assert cbor2.loads(posted_bytes) == body + + assert code == 0x44 + assert new_rep == {'x.field': 'after'} + coordinator.async_request_refresh.assert_awaited_once() + + +async def test_raw_write_reads_href_back_for_ground_truth(coordinator) -> None: + fake = _FakeRawWriteSession(post_code=0x45, get_rep={'value': 'confirmed'}) + coordinator._session = fake + + code, new_rep = await coordinator.async_raw_write('/washer/vs/0', {'a': 1}) + + assert fake.get_calls == [['washer', 'vs', '0']] + assert code == 0x45 + assert new_rep == {'value': 'confirmed'} + + +async def test_raw_write_returns_coap_code_from_post_not_get(coordinator) -> None: + """The returned code reflects the write's own response, even though a + follow-up GET (which could carry a different code in principle) runs + right after it.""" + fake = _FakeRawWriteSession(post_code=0x80, get_rep={'value': 1}) + coordinator._session = fake + + code, _ = await coordinator.async_raw_write('/test/vs/0', {'a': 1}) + + assert code == 0x80 + + +async def test_raw_write_rejects_empty_dict(coordinator) -> None: + with pytest.raises(ServiceValidationError): + await coordinator.async_raw_write('/washer/vs/0', {}) + + +async def test_raw_write_rejects_non_dict_payload(coordinator) -> None: + with pytest.raises(ServiceValidationError): + await coordinator.async_raw_write('/washer/vs/0', ['not', 'a', 'dict']) # type: ignore[arg-type] + + +async def test_raw_write_rejects_empty_href(coordinator) -> None: + with pytest.raises(ServiceValidationError): + await coordinator.async_raw_write('', {'a': 1}) + + +async def test_raw_write_rejects_root_href(coordinator) -> None: + with pytest.raises(ServiceValidationError): + await coordinator.async_raw_write('/', {'a': 1}) + + +async def test_raw_write_validation_errors_do_not_touch_the_session(coordinator) -> None: + """A rejected call must fail before ever reaching the network -- no + session needs to be connected at all for validation to run.""" + assert coordinator._session is None + + with pytest.raises(ServiceValidationError): + await coordinator.async_raw_write('/washer/vs/0', {}) + + assert coordinator._session is None + coordinator.async_request_refresh.assert_not_awaited() From d0cfaeebc190fe5f13413f9d4c242c7af9bd2434 Mon Sep 17 00:00:00 2001 From: Hmmbob <33529490+hmmbob@users.noreply.github.com> Date: Fri, 24 Jul 2026 17:29:50 +0200 Subject: [PATCH 02/15] Add Dutch translations --- .../localthings/translations/nl.json | 302 ++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 custom_components/localthings/translations/nl.json diff --git a/custom_components/localthings/translations/nl.json b/custom_components/localthings/translations/nl.json new file mode 100644 index 0000000..abea1fc --- /dev/null +++ b/custom_components/localthings/translations/nl.json @@ -0,0 +1,302 @@ +{ + "entity": { + "select": { + "door_alert": { + "state": { + "1": "Alarm 1", + "2": "Alarm 2", + "3": "Alarm 3", + "4": "Alarm 4" + } + }, + "brightness_level": { + "state": { + "33": "Laag", + "66": "Gemiddeld", + "100": "Hoog" + } + }, + "range_hood_lamp_brightness": { + "state": { + "1": "Niveau 1", + "2": "Niveau 2" + } + }, + "ice_type": { + "state": { + "off": "Uit", + "whiskey_iceball_3": "3 ijsballen per dag", + "whiskey_iceball_6": "6 ijsballen per dag", + "whiskey_iceball_9": "9 ijsballen per dag" + } + }, + "beverage_zone_mode": { + "state": { + "sp_ttype_beer_drinks": "Dranken", + "sp_ttype_wine_dessert": "Wijn en dessert" + } + }, + "pantry_zone_mode": { + "state": { + "fdr_wine": "Wijn", + "fdr_deli": "Delicatessen", + "fdr_drinks": "Dranken" + } + }, + "flex_zone_mode": { + "state": { + "cv_ttype_rf9000a_freeze": "Vriezen", + "cv_ttype_rf9000a_softfreeze": "Zachtvriezen", + "cv_ttype_rf9000a_meat_fish": "Vlees/vis", + "cv_ttype_rf9000a_fruit_veggies": "Fruit en groenten", + "cv_ttype_rf9000a_beverage": "Dranken", + "cv_fdr_wine": "Wijn", + "cv_fdr_deli": "Delicatessen", + "cv_fdr_beverage": "Dranken", + "cv_fdr_meat": "Vlees", + "cv_fdr_soft_freezer": "Zachtvriezer" + } + }, + "dishwasher_cycle": { + "state": { + "80": "Delicaat", + "83": "Express 60", + "84": "Intensief", + "86": "Normaal", + "90": "Zelfreiniging", + "0e": "AI wassen", + "07": "Voorspoelen", + "8d": "Potten en pannen", + "8e": "Kunststof", + "8f": "Babyverzorging" + } + }, + "washer_cycle_table_02": { + "state": { + "20": "Hygiënisch stomen", + "21": "Bonte was", + "22": "Wol", + "23": "Outdoor", + "24": "Handdoeken", + "25": "Synthetisch", + "26": "Fijne was", + "27": "Spoelen+centrifugeren", + "28": "Afpompen/centrifugeren", + "29": "Trommelreiniging+", + "30": "Bewolkte dag", + "32": "Overhemden", + "33": "Beddengoed", + "36": "Wassen+drogen", + "37": "Air Wash", + "38": "Katoen drogen", + "39": "Synthetisch drogen", + "66": "Spijkergoed", + "96": "Minder microvezels", + "1c": "Eco 40-60", + "1d": "Super Speed", + "1b": "Katoen", + "1e": "Kort programma 15'", + "2f": "Sportkleding", + "2e": "Babykleding", + "2d": "Stille was", + "8f": "Intensief koud", + "1f": "Intensief koud" + } + }, + "dryer_cycle_table_03": { + "state": { + "16": "Katoen", + "18": "Synthetisch", + "19": "Fijne was", + "20": "Strijkdroog", + "23": "Snel drogen 35'", + "24": "Koude lucht", + "25": "Warme lucht", + "27": "Tijdprogramma", + "1a": "Wol", + "1b": "Beddengoed", + "1c": "Overhemden", + "1d": "Handdoeken", + "1e": "Outdoor", + "1f": "Gemengde was" + } + }, + "washer_dosing_quantity": { + "state": { + "00": "Geen", + "01": "Laag", + "02": "Gemiddeld", + "03": "Hoog" + } + }, + "washer_detergent_water_hardness": { + "state": { + "01": "Zacht", + "02": "Gemiddeld", + "03": "Hard" + } + }, + "washer_softener_concentration": { + "state": { + "01": "1x", + "02": "2x", + "03": "3x" + } + }, + "washer_dry_level": { + "state": { + "30": "30 min", + "60": "1 uur", + "90": "1 uur 30 min", + "120": "2 uur", + "180": "3 uur", + "240": "4 uur", + "none": "Uit", + "cupboard": "Kastdroog" + } + } + }, + "sensor": { + "ice_making_status": { + "state": { + "icestatus_stop": "Inactief", + "icestatus_run": "IJs maken" + } + }, + "connection_mode": { + "state": { + "observe": "Push (observeren)", + "poll": "Polling" + } + }, + "machine_state": { + "state": { + "idle": "Inactief", + "active": "Actief", + "pause": "Gepauzeerd" + } + }, + "air_filter_status": { + "state": { + "normal": "Normaal", + "wash": "Wassen", + "replace": "Vervangen" + } + } + }, + "climate": { + "airconditioner": { + "state_attributes": { + "fan_mode": { + "state": { + "auto": "Automatisch", + "low": "Laag", + "medium": "Gemiddeld", + "high": "Hoog", + "turbo": "Turbo" + } + }, + "swing_mode": { + "state": { + "off": "Vast", + "both": "Alle richtingen", + "vertical": "Omhoog en omlaag" + } + }, + "preset_mode": { + "state": { + "none": "Uit", + "sleep": "Slaap", + "quiet": "Stil", + "smart": "Slim", + "speed": "Snel" + } + } + } + } + } + }, + "config": { + "step": { + "user": { + "title": "Samsung-apparaat toevoegen", + "description": "Voer het IP-adres van je Samsung-apparaat en de AC14K_M-CA-inloggegevens in waarmee apparaatcertificaten worden aangemaakt. {reuse_note}", + "data": { + "host": "IP-adres", + "ca_cert_pem": "CA-certificaat (PEM)", + "ca_key_pem": "Privésleutel van CA (PEM)" + }, + "data_description": { + "host": "Het lokale IP-adres van je Samsung-apparaat (bijvoorbeeld 192.168.1.50).", + "ca_cert_pem": "De PEM-gecodeerde AC14K_M-CA-certificaatketen. Plak de volledige inhoud van je fullchain-PEM, inclusief alle blokken BEGIN CERTIFICATE en END CERTIFICATE.", + "ca_key_pem": "De PEM-gecodeerde AC14K_M-privésleutel. Plak de volledige inhoud, inclusief de kop- en voettekst BEGIN PRIVATE KEY en END PRIVATE KEY." + } + }, + "confirm_unknown_type": { + "title": "Apparaattype niet herkend", + "description": "Dit apparaat meldt oneUiVersion \"{one_ui_version}\", wat niet als apparaattype wordt herkend. Het apparaat wordt toch toegevoegd, maar alleen met algemene mogelijkheden (zoals voeding en alarmen, voor zover aanwezig), in plaats van alle mogelijkheden voor deze apparaatfamilie. Je kunt daarna helpen volledige ondersteuning toe te voegen door diagnostische gegevens voor dit apparaat te downloaden (Instellingen > Apparaten & diensten > dit apparaat > het menu > Diagnostische gegevens downloaden) en deze bij een nieuw issue te voegen. Kies Verzenden om het apparaat toch toe te voegen." + } + }, + "error": { + "cannot_connect": "Kan geen verbinding maken met het apparaat. Controleer of het IP-adres bereikbaar is en de CA-inloggegevens juist zijn.", + "invalid_ca": "Het CA-certificaat of de privésleutel kon niet worden geladen. Controleer of de PEM-inhoud juist is en of de sleutel bij het certificaat hoort.", + "unknown": "Onverwachte fout. Raadpleeg de Home Assistant-logboeken voor meer informatie." + }, + "abort": { + "already_configured": "Dit apparaat is al geconfigureerd." + } + }, + "options": { + "step": { + "init": { + "title": "LocalThings-opties", + "menu_options": { + "settings": "Schrijfinstellingen voor afstandsbediening", + "debug_write": "Foutopsporing: naar een resource schrijven" + } + }, + "settings": { + "title": "Schrijfinstellingen voor afstandsbediening", + "description": "Sommige apparaten accepteren bepaalde schrijfbewerkingen (bijvoorbeeld de standaarddosering van wasmiddel of wasverzachter op een wasmachine), ook als ze melden dat de afstandsbediening is uitgeschakeld. LocalThings blokkeert standaard elke schrijfbewerking met een duidelijke foutmelding wanneer een apparaat meldt dat de afstandsbediening is uitgeschakeld, in plaats van het apparaat de opdracht stilzwijgend te laten weigeren. Schakel deze optie alleen in als je hebt bevestigd dat schrijfbewerkingen op dit apparaat echt werken wanneer de afstandsbediening is uitgeschakeld. Anders verruil je de duidelijke foutmelding voor een stille mislukking.", + "data": { + "bypass_remote_control_lock": "Schrijfbewerkingen toestaan wanneer de afstandsbediening als uitgeschakeld wordt gemeld" + } + }, + "debug_write": { + "title": "Foutopsporing: naar een resource schrijven", + "description": "Geavanceerd hulpmiddel om apparaatspecifiek schrijfgedrag te onderzoeken. Kies de resource (href) waarnaar je wilt schrijven, of voer een aangepaste resource in die niet in de lijst staat. Hiermee wordt de blokkering bij een uitgeschakelde afstandsbediening omzeild en worden precies de opgegeven velden verzonden. Dit kan de configuratie van je apparaat verstoren, dus gebruik het bewust.", + "data": { + "href": "Href van resource" + } + }, + "debug_edit": { + "title": "Schrijfbewerking voor foutopsporing: {href}", + "description": "Huidige waarde van `{href}`:\n```\n{current_value}\n```\nVoer hieronder ALLEEN de velden in die je wilt wijzigen. Wat je invoert, wordt ongewijzigd naar het apparaat verzonden (als gedeeltelijke update). Het wordt NIET samengevoegd met de hierboven getoonde velden, dus plak niet de volledige waarde terug. Let op de typen: een numerieke tekenreeks zoals \"1\" moet tussen aanhalingstekens blijven staan. Een 1 zonder aanhalingstekens wordt als integer verzonden, wat sommige apparaten weigeren.", + "data": { + "payload": "Te schrijven payload" + } + }, + "debug_result": { + "title": "Resultaat van schrijfbewerking voor foutopsporing", + "description": "Het apparaat heeft CoAP-code {code} geretourneerd. Een code in de 2.xx-klasse betekent dat de schrijfbewerking is geaccepteerd; 4.xx/5.xx betekent dat deze is geweigerd. De resource heeft nu de volgende waarde:\n```\n{new_value}\n```\nAls de waarde ongewijzigd is, heeft het apparaat de schrijfbewerking waarschijnlijk genegeerd. Kies wat je hierna wilt doen:", + "menu_options": { + "debug_write": "Naar een andere resource schrijven", + "finish": "Voltooien" + } + } + }, + "error": { + "empty_payload": "Voer ten minste één veld in om te schrijven.", + "write_failed": "De schrijfbewerking is mislukt. Raadpleeg de Home Assistant-logboeken voor meer informatie." + }, + "abort": { + "not_loaded": "Dit apparaat is nog niet verbonden. Probeer het opnieuw zodra het is geladen." + } + }, + "issues": { + "device_gap": { + "title": "Onvolledige ondersteuning van mogelijkheden voor {device_name}", + "description": "Niet alle mogelijkheden van dit apparaat worden ondersteund. Het apparaattype is niet herkend of sommige beschikbare resources zijn nog niet gemodelleerd. Het apparaat blijft werken met de mogelijkheden die al worden ondersteund. Je kunt helpen de ondersteuning uit te breiden: ga naar Instellingen > Apparaten & diensten > {device_name} > het menu (rechtsboven) > Diagnostische gegevens downloaden en voeg het bestand daarna bij via de gekoppelde issue-template." + } + } +} From f9ebc8e286239153c3c5b7aa3f49735686daee67 Mon Sep 17 00:00:00 2001 From: Hmmbob <33529490+hmmbob@users.noreply.github.com> Date: Fri, 24 Jul 2026 18:08:29 +0200 Subject: [PATCH 03/15] Make LocalThings UI fully translatable --- custom_components/localthings/__init__.py | 8 +- custom_components/localthings/config_flow.py | 35 +- custom_components/localthings/coordinator.py | 42 +- custom_components/localthings/entity.py | 52 +- .../registry/capabilities/airconditioner.py | 2 +- .../registry/capabilities/common.py | 6 +- .../registry/capabilities/cooktop.py | 2 + .../registry/capabilities/fridge.py | 18 +- .../registry/capabilities/laundry.py | 29 +- .../registry/capabilities/range.py | 6 + .../registry/capabilities/range_hood.py | 6 + .../registry/capabilities/washer.py | 12 +- .../localthings/registry/entities.py | 26 +- custom_components/localthings/select.py | 77 +- custom_components/localthings/sensor.py | 1 - custom_components/localthings/strings.json | 898 ++++++++++++++---- .../localthings/translations/en.json | 898 ++++++++++++++---- .../localthings/translations/nl.json | 824 +++++++++++++--- 18 files changed, 2354 insertions(+), 588 deletions(-) diff --git a/custom_components/localthings/__init__.py b/custom_components/localthings/__init__.py index 1d35120..88a2ddb 100644 --- a/custom_components/localthings/__init__.py +++ b/custom_components/localthings/__init__.py @@ -5,7 +5,6 @@ import logging from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant -from homeassistant.exceptions import ConfigEntryNotReady from .const import DOMAIN, PLATFORMS from .coordinator import LocalThingsCoordinator @@ -16,10 +15,9 @@ _LOGGER = logging.getLogger(__name__) async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: hass.data.setdefault(DOMAIN, {}) coordinator = LocalThingsCoordinator(hass, entry) - try: - await coordinator.async_config_entry_first_refresh() - except Exception as err: - raise ConfigEntryNotReady(f"Cannot connect to device: {err}") from err + # DataUpdateCoordinator already raises ConfigEntryNotReady with the + # underlying update context; avoid replacing it with hardcoded UI text. + await coordinator.async_config_entry_first_refresh() hass.data[DOMAIN][entry.entry_id] = coordinator await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) return True diff --git a/custom_components/localthings/config_flow.py b/custom_components/localthings/config_flow.py index 48bdb87..f773f9d 100644 --- a/custom_components/localthings/config_flow.py +++ b/custom_components/localthings/config_flow.py @@ -316,7 +316,7 @@ class LocalThingsConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): def _create_entry(self, info: dict) -> FlowResult: return self.async_create_entry( - title=f"Samsung Appliance ({self._host})", + title=f"Samsung ({self._host})", data={ CONF_HOST: self._host, CONF_PORT: info["port"], @@ -368,22 +368,27 @@ class LocalThingsConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): if has_creds: schema = vol.Schema({vol.Required(CONF_HOST): _TEXT}) - reuse_note = "CA credentials will be reused from the existing device." + step_id = "user_reuse" else: schema = vol.Schema({ vol.Required(CONF_HOST): _TEXT, vol.Required(CONF_CA_CERT_PEM): _MULTILINE, vol.Required(CONF_CA_KEY_PEM): _MULTILINE, }) - reuse_note = "" + step_id = "user" return self.async_show_form( - step_id="user", + step_id=step_id, data_schema=schema, errors=errors, - description_placeholders={"reuse_note": reuse_note}, ) + async def async_step_user_reuse( + self, user_input: dict[str, Any] | None = None + ) -> FlowResult: + """Handle the localized host-only form for additional appliances.""" + return await self.async_step_user(user_input) + async def async_step_confirm_unknown_type( self, user_input: dict[str, Any] | None = None ) -> FlowResult: @@ -391,14 +396,28 @@ class LocalThingsConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): if user_input is not None: return self._create_entry(self._pending_info) + if not self._pending_info["one_ui_version"]: + return await self.async_step_confirm_unknown_type_no_version() + return self.async_show_form( step_id="confirm_unknown_type", data_schema=vol.Schema({}), description_placeholders={ - "one_ui_version": self._pending_info["one_ui_version"] or "(none reported)", + "one_ui_version": self._pending_info["one_ui_version"], }, ) + async def async_step_confirm_unknown_type_no_version( + self, user_input: dict[str, Any] | None = None + ) -> FlowResult: + """Confirm an unknown appliance that did not report oneUiVersion.""" + if user_input is not None: + return self._create_entry(self._pending_info) + return self.async_show_form( + step_id="confirm_unknown_type_no_version", + data_schema=vol.Schema({}), + ) + class LocalThingsOptionsFlow(config_entries.OptionsFlow): """Per-device options: the remote-control-off write-block override @@ -487,7 +506,7 @@ class LocalThingsOptionsFlow(config_entries.OptionsFlow): "href": href, "current_value": ( json.dumps(current, indent=2, ensure_ascii=False) - if current else "(no cached value)" + if current else "{}" ), }, ) @@ -531,7 +550,7 @@ class LocalThingsOptionsFlow(config_entries.OptionsFlow): "code": f"{code >> 5}.{code & 0x1f:02d} ({code:#04x})", "new_value": ( json.dumps(new_rep, indent=2, ensure_ascii=False) - if new_rep else "(no value returned)" + if new_rep else "{}" ), }, ) diff --git a/custom_components/localthings/coordinator.py b/custom_components/localthings/coordinator.py index 0e3d44a..7a63d04 100644 --- a/custom_components/localthings/coordinator.py +++ b/custom_components/localthings/coordinator.py @@ -24,6 +24,7 @@ from .registry.batch import parse_device0_batch from .registry.by_type import for_device, for_device_by_model, for_device_by_resources from .registry.capabilities.common import remote_control_enabled from .registry.discovery import discover, BoundEntity +from .registry.entities import ValidationIssue from .registry import CAPABILITIES from .registry.adapter import flatten from .registry.identity import read_identity, DeviceIdentity @@ -38,13 +39,6 @@ _LOGGER = logging.getLogger(__name__) _SEED_PATH = ['device', '0'] -_REMOTE_CONTROL_DISABLED_MESSAGE = ( - "Remote control is turned off on this device. Check your appliance's " - "manual for how to enable remote control before Home Assistant can " - "control it." -) - - class _NoOpDescriptor: """StateCache requires a descriptor with an on_observation hook. This integration doesn't use per-capability observation hooks, so this is a @@ -111,7 +105,7 @@ class LocalThingsCoordinator(DataUpdateCoordinator[dict[str, Any]]): self.device_serial = entry.data[CONF_HOST] # placeholder until first poll self.device_info = DeviceInfo( identifiers={(DOMAIN, entry.data[CONF_HOST])}, - name=f"Samsung Appliance ({entry.data[CONF_HOST]})", + name=f"Samsung ({entry.data[CONF_HOST]})", manufacturer="Samsung", ) self._session_lock = asyncio.Lock() @@ -324,10 +318,15 @@ class LocalThingsCoordinator(DataUpdateCoordinator[dict[str, Any]]): self.device_serial = serial ident = self._identity - device_type = reg.name.replace('_', ' ').title() if reg else 'Appliance' model_num = info.get('x.com.samsung.da.modelNum', '') model = model_num.split('|', 1)[0] if model_num else (ident.model if ident else '') - name = f"Samsung {device_type} ({model})" if model else f"Samsung {device_type}" + # DeviceInfo has no translation mechanism. Prefer the appliance's own + # OCF name, then proper-noun/model fallbacks without an English family + # label. Existing device/entity registry IDs remain keyed by serial. + name = ( + (ident.name if ident else '') + or (f"Samsung {model}" if model else f"Samsung ({self._entry.data[CONF_HOST]})") + ) mfr = (ident.manufacturer if ident else '') or 'Samsung' self.device_info = DeviceInfo( @@ -548,12 +547,21 @@ class LocalThingsCoordinator(DataUpdateCoordinator[dict[str, Any]]): resources = self._cache.snapshot() bypass_remote_control = self._entry.options.get(CONF_BYPASS_REMOTE_CONTROL, False) if not bypass_remote_control and not remote_control_enabled(resources): - raise ServiceValidationError(_REMOTE_CONTROL_DISABLED_MESSAGE) + raise ServiceValidationError( + translation_domain=DOMAIN, + translation_key="remote_control_disabled", + ) validate_fn = getattr(desc, 'validate_fn', None) if validate_fn is not None: error = validate_fn(payload, rep, resources) if error: - raise ServiceValidationError(error) + if not isinstance(error, ValidationIssue): + raise TypeError("validate_fn must return ValidationIssue or None") + raise ServiceValidationError( + translation_domain=DOMAIN, + translation_key=error.translation_key, + translation_placeholders=dict(error.translation_placeholders), + ) result = write_fn(payload, rep, href) if result is None: self._log.warning("write_fn rejected payload %r for %s", payload, href) @@ -672,10 +680,16 @@ class LocalThingsCoordinator(DataUpdateCoordinator[dict[str, Any]]): help users pin down device-specific write behavior without a new release.""" if not isinstance(body, dict) or not body: - raise ServiceValidationError("Debug write payload must be a non-empty object.") + raise ServiceValidationError( + translation_domain=DOMAIN, + translation_key="debug_payload_empty", + ) path_segs = [s for s in href.strip('/').split('/') if s] if not path_segs: - raise ServiceValidationError("A resource href is required.") + raise ServiceValidationError( + translation_domain=DOMAIN, + translation_key="resource_href_required", + ) norm_href = '/' + '/'.join(path_segs) async with self._session_lock: code, new_rep = await self.hass.async_add_executor_job( diff --git a/custom_components/localthings/entity.py b/custom_components/localthings/entity.py index aeac3b0..84501b4 100644 --- a/custom_components/localthings/entity.py +++ b/custom_components/localthings/entity.py @@ -47,6 +47,19 @@ def _derive_name(state_key: str) -> str: return _snake_to_title(name).strip() +def _instance_display_name(bound: BoundEntity, state_key: str) -> str: + """Return the stable vendor/href instance label used in a name placeholder.""" + if bound.instance_name: + return bound.instance_name + source = bound.key_override or state_key + suffix = f"_{bound.desc.key}" + if source.endswith(suffix): + source = source[:-len(suffix)] + elif bound.instance and source.endswith(bound.instance): + source = source[:-len(bound.instance)] + bound.instance.replace("_", " ") + return _derive_name(source) + + class LocalThingsEntity(CoordinatorEntity[LocalThingsCoordinator]): """Base class for all Local Things entities.""" @@ -57,15 +70,30 @@ class LocalThingsEntity(CoordinatorEntity[LocalThingsCoordinator]): self._bound = bound self._state_key = _key(bound) self._attr_unique_id = f"{DOMAIN}_{coordinator.device_serial}_{self._state_key}" - if bound.desc.name is not None: - self._attr_name = bound.desc.name - elif bound.instance_name: - # A device-given instance name (e.g. an ice maker's "Cubed - # Ice") takes the place of the href-derived instance label, - # keeping the same entity-specific suffix (issue #27). - self._attr_name = f"{bound.instance_name} {_derive_name(bound.desc.key)}".strip() - else: - self._attr_name = _derive_name(self._state_key) + if bound.desc.translation_placeholders is not None: + self._attr_translation_placeholders = dict( + bound.desc.translation_placeholders + ) + elif bound.desc.use_instance_name: + self._attr_translation_placeholders = { + "instance_name": _instance_display_name(bound, self._state_key) + } + + # Do not set _attr_name for translated entities: Home Assistant gives + # an explicitly-set name precedence over the translation catalog. The + # English descriptor name remains a fallback for descriptions without + # a translation key, while existing registry entity IDs stay intact via + # their unchanged unique IDs. + has_translation = ( + bound.desc.translation_key is not None or bound.desc.name is not None + ) + if not has_translation: + if bound.instance_name: + self._attr_name = ( + f"{bound.instance_name} {_derive_name(bound.desc.key)}".strip() + ) + else: + self._attr_name = _derive_name(self._state_key) self._attr_icon = bound.desc.icon raw_cat = bound.desc.entity_category self._attr_entity_category = EntityCategory(raw_cat) if raw_cat else None @@ -88,7 +116,11 @@ class LocalThingsEntity(CoordinatorEntity[LocalThingsCoordinator]): value arrives on a later poll. """ tk = self._bound.desc.translation_key - return tk(self.coordinator.last_resources) if callable(tk) else tk + if callable(tk): + return tk(self.coordinator.last_resources) + if tk is not None: + return tk + return self._bound.desc.key if self._bound.desc.name is not None else None @property def device_info(self) -> DeviceInfo: diff --git a/custom_components/localthings/registry/capabilities/airconditioner.py b/custom_components/localthings/registry/capabilities/airconditioner.py index 0137163..401f815 100644 --- a/custom_components/localthings/registry/capabilities/airconditioner.py +++ b/custom_components/localthings/registry/capabilities/airconditioner.py @@ -142,7 +142,7 @@ AIR_FILTER = Capability( SensorDesc(key='air_filter_status', field='x.com.samsung.da.filterStatus', name='Filter status', device_class='enum', options=('normal', 'wash', 'replace'), - translation_key='air_filter_status', + translation_key='filter_status', icon='mdi:air-filter', entity_category='diagnostic', value_fn=lambda v: v.lower() if isinstance(v, str) else v), ), diff --git a/custom_components/localthings/registry/capabilities/common.py b/custom_components/localthings/registry/capabilities/common.py index 41adade..bcf06f3 100644 --- a/custom_components/localthings/registry/capabilities/common.py +++ b/custom_components/localthings/registry/capabilities/common.py @@ -280,7 +280,11 @@ WATER_FILTER = Capability( name='Filter usage', unit='%', state_class='measurement', icon='mdi:filter'), SensorDesc(key='filter_status', field='x.com.samsung.da.filterStatus', - name='Filter status', icon='mdi:filter-check'), + name='Filter status', icon='mdi:filter-check', + device_class='enum', options=('normal', 'wash', 'replace'), + value_fn=lambda value: ( + value.lower() if isinstance(value, str) else value + )), ), ) diff --git a/custom_components/localthings/registry/capabilities/cooktop.py b/custom_components/localthings/registry/capabilities/cooktop.py index 386394c..a143786 100644 --- a/custom_components/localthings/registry/capabilities/cooktop.py +++ b/custom_components/localthings/registry/capabilities/cooktop.py @@ -93,6 +93,8 @@ COOKTOP_MODE = Capability( key=f'burner_{slot}_state', field='x.com.samsung.da.options', name=f'Burner {slot} state', + translation_key='burner_state', + translation_placeholders={'number': str(slot)}, icon='mdi:gas-burner', value_fn=lambda options, slot=slot: _option_value( options, f'OperationState{slot}' diff --git a/custom_components/localthings/registry/capabilities/fridge.py b/custom_components/localthings/registry/capabilities/fridge.py index 2f2589c..2a178c5 100644 --- a/custom_components/localthings/registry/capabilities/fridge.py +++ b/custom_components/localthings/registry/capabilities/fridge.py @@ -55,7 +55,8 @@ TEMP_CURRENT_GENERIC = Capability( poll_tier='warm', entities=( SensorDesc(key='temperature', field='temperature', - name=None, icon='mdi:thermometer', + name=None, translation_key='instance_temperature', + use_instance_name=True, icon='mdi:thermometer', device_class='temperature', unit_fn=_temp_unit, state_class='measurement'), ), @@ -68,7 +69,8 @@ TEMP_SETPOINT_GENERIC = Capability( poll_tier='warm', entities=( NumberDesc(key='setpoint', field='temperature', - name=None, device_class='temperature', unit_fn=_temp_unit, + name=None, translation_key='instance_setpoint', + use_instance_name=True, device_class='temperature', unit_fn=_temp_unit, native_min=-20.0, native_max=50.0, range_field='range', entity_category='config', write_fn=lambda p, rep, href=None: ( @@ -123,17 +125,18 @@ ICEMAKER_GENERIC = Capability( entities=( SensorDesc(key='making_status', field='x.com.samsung.da.iceMaker.iceMakingStatus', - name=None, icon='mdi:cube-outline', + name=None, use_instance_name=True, icon='mdi:cube-outline', device_class='enum', options=('icestatus_stop', 'icestatus_run'), translation_key='ice_making_status', value_fn=lambda v: v.lower() if isinstance(v, str) else v), SwitchDesc(key='enabled', field='x.com.samsung.da.iceMaker.state', - name=None, icon='mdi:cube-outline', + name=None, translation_key='instance_enabled', + use_instance_name=True, icon='mdi:cube-outline', value_fn=lambda v: v == 'On', write_fn=_icemaker_write('x.com.samsung.da.iceMaker.state')), SelectDesc(key='type', field='x.com.samsung.da.iceType.desired', - name=None, icon='mdi:cube-outline', + name=None, use_instance_name=True, icon='mdi:cube-outline', translation_key='ice_type', entity_category='config', options_field='x.com.samsung.da.iceType.supported', @@ -387,7 +390,7 @@ CABINET_LIGHT_ENHANCED = Capability( entities=( SelectDesc(key='day_brightness', field='level.brightness.daytime', name='Cabinet brightness', icon='mdi:brightness-5', - translation_key='brightness_level', + translation_key='day_brightness', entity_category='config', options=_NIGHT_BRIGHTNESS_OPTIONS, write_fn=lambda p, rep, href=None: ( @@ -575,7 +578,8 @@ DOOR_GENERIC = Capability( poll_tier='hot', entities=( BinarySensorDesc(key='open', field='openState', - name=None, device_class='door', + name=None, translation_key='instance_open', + use_instance_name=True, device_class='door', value_fn=lambda v: v == 'Open'), ), ) diff --git a/custom_components/localthings/registry/capabilities/laundry.py b/custom_components/localthings/registry/capabilities/laundry.py index 76fca4a..afec8e3 100644 --- a/custom_components/localthings/registry/capabilities/laundry.py +++ b/custom_components/localthings/registry/capabilities/laundry.py @@ -276,6 +276,12 @@ def _table_id(resources, table_href): return rep.get('x.com.samsung.da.st.courseTable') +_TRANSLATED_COURSE_TABLES = { + 'dryer_cycle': frozenset({'table_03'}), + 'washer_cycle': frozenset({'table_02'}), +} + + def cycle_select(*, translation_key, icon, table_href=None): """A 'Cycle' select over /course/vs/0, labelled from `translation_key`. @@ -287,23 +293,19 @@ def cycle_select(*, translation_key, icon, table_href=None): suffixes translation_key with the device's own course-table id, read from /st/washercourse/vs/0 or /st/dryercourse/vs/0's x.com.samsung.da.st.courseTable (e.g. 'washer_cycle' + 'Table_02' -> - 'washer_cycle_table_02'). No table id available at all -- the href - absent or empty -- gets no translation_key, i.e. the raw course code - displayed as-is. + 'washer_cycle_table_02'). An absent or unrecognized table id gets the + name-only ``cycle`` translation key while the raw course code remains + visible and writable. This matters because course codes are NOT guaranteed consistent across board generations sharing the same /course/vs/0 contract: every code in washer_cycle_table_02 was confirmed against Table_02-reporting devices (DA_WM_TP1/TP2 boards); FlexWash's older DA_WM_A51 board reports Table_00 instead, so the same hex code could mean a different course - there for all we've verified. Building the key from whatever table the - device actually reports, rather than gating a single hardcoded key on - an exact match, means a table we haven't built translations for yet - (like Table_00) just falls through Home Assistant's own missing- - translation handling to the same raw-code display -- exactly what - happens today for any individual code within a table's translations - that isn't populated yet -- and adding one later needs new strings.json - entries, not a code change here. + there for all we've verified. Only tables with a complete catalog are + assigned a state translation key. Unknown future tables deliberately use + the generic key, avoiding misleading translations and missing-translation + errors while keeping the exact vendor code for writes. Left at its default for dishwasher, which has no equivalent table-id resource in any dump seen and no evidence its course codes vary by @@ -314,7 +316,10 @@ def cycle_select(*, translation_key, icon, table_href=None): if table_href is not None: def key(resources): table = _table_id(resources, table_href) - return f'{translation_key}_{table.lower()}' if table else None + table_id = table.lower() if isinstance(table, str) else None + if table_id in _TRANSLATED_COURSE_TABLES.get(translation_key, ()): + return f'{translation_key}_{table_id}' + return 'cycle' return SelectDesc( key='cycle', name='Cycle', icon=icon, translation_key=key, diff --git a/custom_components/localthings/registry/capabilities/range.py b/custom_components/localthings/registry/capabilities/range.py index 7c1e195..3afe0c1 100644 --- a/custom_components/localthings/registry/capabilities/range.py +++ b/custom_components/localthings/registry/capabilities/range.py @@ -82,16 +82,22 @@ def _burner_entities(i): return ( SelectDesc(key=f'burner_{i}_power_level', field='burnerList', name=f'Burner {n} power level', icon='mdi:knob', + translation_key='range_burner_power_level', + translation_placeholders={'number': str(n)}, options=_power_level_options, exists_fn=exists, value_fn=_burner_field_fn(i, 'powerLevel'), write_fn=_burner_power_level_write(i)), SensorDesc(key=f'burner_{i}_state', field='burnerList', name=f'Burner {n} state', icon='mdi:stove', + translation_key='burner_state', + translation_placeholders={'number': str(n)}, exists_fn=exists, value_fn=_burner_field_fn(i, 'operationState')), BinarySensorDesc(key=f'burner_{i}_hot_surface', field='burnerList', name=f'Burner {n} hot surface', device_class='heat', + translation_key='burner_hot_surface', + translation_placeholders={'number': str(n)}, exists_fn=exists, value_fn=_burner_hot_surface_fn(i)), ) diff --git a/custom_components/localthings/registry/capabilities/range_hood.py b/custom_components/localthings/registry/capabilities/range_hood.py index 48e2873..e9e6869 100644 --- a/custom_components/localthings/registry/capabilities/range_hood.py +++ b/custom_components/localthings/registry/capabilities/range_hood.py @@ -166,6 +166,12 @@ HOOD_FILTER = Capability( name='Filter status', icon='mdi:air-filter', entity_category='diagnostic', + device_class='enum', + options=('normal', 'wash', 'replace'), + translation_key='filter_status', + value_fn=lambda value: ( + value.lower() if isinstance(value, str) else value + ), ), SensorDesc( key='hood_filter_capacity', diff --git a/custom_components/localthings/registry/capabilities/washer.py b/custom_components/localthings/registry/capabilities/washer.py index 8c21137..54ffaaa 100644 --- a/custom_components/localthings/registry/capabilities/washer.py +++ b/custom_components/localthings/registry/capabilities/washer.py @@ -16,7 +16,7 @@ array. from datetime import datetime, timezone from ..capability import Capability -from ..entities import BinarySensorDesc, SelectDesc, SensorDesc +from ..entities import BinarySensorDesc, SelectDesc, SensorDesc, ValidationIssue from .laundry import ( bool_option_exists, bool_option_switch, cycle_options, cycle_select, hex_pairs, option_value, replace_in_options, @@ -282,7 +282,7 @@ def _bool_option_switch(key, name, icon, prefix, availability_field): if len(pairs) != len(courses): return None if pairs[courses.index(current)] != 'F0': - return f"{name} isn't available on the selected cycle." + return ValidationIssue(f"{key}_unavailable_for_cycle") return None return bool_option_switch( @@ -306,7 +306,7 @@ WASHER_COURSE = Capability( exists_fn=lambda rep, resources: _drum_clean_last_cleaned(rep) is not None, rep_fn=_drum_clean_last_cleaned), SelectDesc(key='detergent_quantity', name='Detergent quantity', icon='mdi:cup-water', - translation_key='washer_dosing_quantity', + translation_key='detergent_quantity', entity_category='config', options=_level_options('DetergentLevelCtrl'), exists_fn=lambda rep, resources: bool( @@ -315,7 +315,7 @@ WASHER_COURSE = Capability( write_fn=_level_write('DetergentLevelCtrl')), SelectDesc(key='detergent_water_hardness', name='Detergent water hardness', icon='mdi:water-opacity', - translation_key='washer_detergent_water_hardness', + translation_key='detergent_water_hardness', entity_category='config', options=_level_options('DetergentLevel2Ctrl'), exists_fn=lambda rep, resources: bool( @@ -323,7 +323,7 @@ WASHER_COURSE = Capability( rep_fn=_dosing_level('DetergentLevel2Ctrl'), write_fn=_level_write('DetergentLevel2Ctrl')), SelectDesc(key='softener_quantity', name='Softener quantity', icon='mdi:flask-outline', - translation_key='washer_dosing_quantity', + translation_key='softener_quantity', entity_category='config', options=_level_options('SoftenerLevelCtrl'), exists_fn=lambda rep, resources: bool( @@ -332,7 +332,7 @@ WASHER_COURSE = Capability( write_fn=_level_write('SoftenerLevelCtrl')), SelectDesc(key='softener_concentration', name='Softener concentration', icon='mdi:flask-plus-outline', - translation_key='washer_softener_concentration', + translation_key='softener_concentration', entity_category='config', options=_level_options('SoftenerLevel2Ctrl'), exists_fn=lambda rep, resources: bool( diff --git a/custom_components/localthings/registry/entities.py b/custom_components/localthings/registry/entities.py index 5282500..1325e1d 100644 --- a/custom_components/localthings/registry/entities.py +++ b/custom_components/localthings/registry/entities.py @@ -9,14 +9,24 @@ where a description declares one. from __future__ import annotations from dataclasses import dataclass, field -from typing import Any, Callable, Optional +from typing import Any, Callable, Mapping, Optional WriteFn = Optional[Callable[[Any, dict], "tuple[list[str], dict] | None"]] -# (payload, rep, resources) -> a human-readable rejection message, or None to -# allow the write. resources is the coordinator's full href->rep snapshot, for -# the same cross-resource lookups exists_fn needs (e.g. reading a sibling -# href's live option list). -ValidateFn = Optional[Callable[[Any, dict, dict], "str | None"]] +# (payload, rep, resources) -> a translatable rejection, or None to allow the +# write. resources is the coordinator's full href->rep snapshot, for the same +# cross-resource lookups exists_fn needs (e.g. reading a sibling href's live +# option list). + + +@dataclass(frozen=True) +class ValidationIssue: + """A user-facing, translatable rejection from a descriptor validator.""" + + translation_key: str + translation_placeholders: Mapping[str, str] = field(default_factory=dict) + + +ValidateFn = Optional[Callable[[Any, dict, dict], "ValidationIssue | None"]] def _identity(v: Any) -> Any: @@ -34,6 +44,10 @@ class SamsungEntityDescription: # device) -- for a descriptor shared across board generations whose # state-code meaning isn't guaranteed consistent between them; see # laundry.cycle_select's table-id-gated resolver. + translation_placeholders: Optional[Mapping[str, str]] = None + # Dynamic resources such as fridge compartments and ice makers use a + # device-provided or href-derived instance label inside a translated name. + use_instance_name: bool = False icon: Optional[str] = None entity_category: Optional[str] = None # 'diagnostic' | 'config' | None enabled_default: bool = True diff --git a/custom_components/localthings/select.py b/custom_components/localthings/select.py index 2d84b9e..c85cc95 100644 --- a/custom_components/localthings/select.py +++ b/custom_components/localthings/select.py @@ -31,6 +31,79 @@ async def async_setup_entry( _CAMEL_BOUNDARY_RE = re.compile(r'(?<=[a-z0-9])(?=[A-Z])') +# Keep this synchronized with entity.select.*.state in strings.json. A select +# can have a translation key for its name without translating its dynamic +# Samsung options. Only known states are normalized for HA's lowercase lookup; +# unknown future vendor values retain a readable label and exact write value. +TRANSLATED_SELECT_STATES: dict[str, frozenset[str]] = { + 'beverage_zone_mode': frozenset({ + 'sp_ttype_beer_drinks', 'sp_ttype_wine_dessert', + }), + 'brightness_level': frozenset({'33', '66', '100'}), + 'day_brightness': frozenset({'33', '66', '100'}), + 'dishwasher_cycle': frozenset({ + '07', '0e', '80', '83', '84', '86', '8d', '8e', '8f', '90', + }), + 'door_alert': frozenset({'1', '2', '3', '4'}), + 'dryer_cycle_table_03': frozenset({ + '16', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', + '23', '24', '25', '27', + }), + 'finish_sound': frozenset({'off', 'on'}), + 'flex_zone_mode': frozenset({ + 'cv_fdr_beverage', 'cv_fdr_deli', 'cv_fdr_meat', + 'cv_fdr_soft_freezer', 'cv_fdr_wine', + 'cv_ttype_rf9000a_beverage', 'cv_ttype_rf9000a_freeze', + 'cv_ttype_rf9000a_fruit_veggies', + 'cv_ttype_rf9000a_meat_fish', 'cv_ttype_rf9000a_softfreeze', + }), + 'heated_dry': frozenset({'extra_high', 'high', 'low', 'off'}), + 'ice_type': frozenset({ + 'off', 'whiskey_iceball_3', 'whiskey_iceball_6', + 'whiskey_iceball_9', + }), + 'led_brightness': frozenset({'high', 'low'}), + 'led_night_brightness': frozenset({'high', 'low'}), + 'oven_mode': frozenset({ + 'air_fry', 'bake', 'broil', 'convection', 'convection_bake', + 'convection_broil', 'frozen_pizza_plus', 'no_operation', + 'plate_warm', 'slow_cook', + }), + 'pantry_zone_mode': frozenset({'fdr_deli', 'fdr_drinks', 'fdr_wine'}), + 'range_burner_power_level': frozenset({'0', 'boost', 'simmer'}), + 'sound_mode': frozenset({'mute', 'tone', 'voice'}), + 'spin_speed': frozenset({'high', 'low', 'medium', 'no_spin', 'rinse_hold'}), + 'buzzer_sound': frozenset({'off', 'on'}), + 'wash_temperature': frozenset({ + 'cold', 'cool', 'extra_hot', 'hot', 'none', 'warm', + }), + 'washer_cycle_table_02': frozenset({ + '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', + '25', '26', '27', '28', '29', '2d', '2e', '2f', '30', '32', + '33', '36', '37', '38', '39', '66', '8f', '96', + }), + 'detergent_quantity': frozenset({'00', '01', '02', '03'}), + 'softener_quantity': frozenset({'00', '01', '02', '03'}), + 'detergent_water_hardness': frozenset({'01', '02', '03'}), + 'softener_concentration': frozenset({'01', '02', '03'}), + 'washer_dry_level': frozenset({ + '30', '60', '90', '120', '180', '240', 'cupboard', 'none', + }), + 'range_hood_lamp_brightness': frozenset({'1', '2'}), +} + + +def _translation_state(value: str, translation_key: str) -> str | None: + """Return a known HA translation state, or None for a vendor fallback.""" + known = TRANSLATED_SELECT_STATES.get(translation_key) + if known is None: + return None + direct = value.lower().replace(' ', '_') + if direct in known: + return direct + snake = _CAMEL_BOUNDARY_RE.sub('_', value).lower().replace(' ', '_') + return snake if snake in known else None + def _display(value, translation_key: Optional[str]): """Turn a raw device option/state value into what's shown in the UI. @@ -56,8 +129,8 @@ def _display(value, translation_key: Optional[str]): """ if not isinstance(value, str): return value - if translation_key: - return value.lower() + if translation_key and (translated := _translation_state(value, translation_key)): + return translated if value.islower(): return value.replace('_', ' ').title() return _CAMEL_BOUNDARY_RE.sub(' ', value) diff --git a/custom_components/localthings/sensor.py b/custom_components/localthings/sensor.py index 75f575a..bb1ec74 100644 --- a/custom_components/localthings/sensor.py +++ b/custom_components/localthings/sensor.py @@ -61,7 +61,6 @@ class LocalThingsConnectionModeSensor(CoordinatorEntity[LocalThingsCoordinator], Disabled by default — it's for troubleshooting, not everyday use.""" _attr_has_entity_name = True - _attr_name = 'Connection mode' _attr_translation_key = 'connection_mode' _attr_entity_category = EntityCategory.DIAGNOSTIC _attr_entity_registry_enabled_default = False diff --git a/custom_components/localthings/strings.json b/custom_components/localthings/strings.json index de1ac17..412cec0 100644 --- a/custom_components/localthings/strings.json +++ b/custom_components/localthings/strings.json @@ -1,187 +1,88 @@ { "entity": { - "select": { - "door_alert": { - "state": { - "1": "Alarm 1", - "2": "Alarm 2", - "3": "Alarm 3", - "4": "Alarm 4" - } + "binary_sensor": { + "any_burner_active": { + "name": "Any burner active" }, - "brightness_level": { - "state": { - "33": "Low", - "66": "Medium", - "100": "High" - } + "automatic_operation": { + "name": "Automatic operation" }, - "range_hood_lamp_brightness": { - "state": { - "1": "Level 1", - "2": "Level 2" - } + "burner_hot_surface": { + "name": "Burner {number} hot surface" }, - "ice_type": { - "state": { - "off": "Off", - "whiskey_iceball_3": "3 Balls/Day", - "whiskey_iceball_6": "6 Balls/Day", - "whiskey_iceball_9": "9 Balls/Day" - } + "cloud_connected": { + "name": "Cloud connected" }, - "beverage_zone_mode": { - "state": { - "sp_ttype_beer_drinks": "Beverage", - "sp_ttype_wine_dessert": "Wine and Dessert" - } + "cooktop_safety_shutoff_enabled": { + "name": "Hot surface auto-shutoff enabled" }, - "pantry_zone_mode": { - "state": { - "fdr_wine": "Wine", - "fdr_deli": "Deli", - "fdr_drinks": "Drinks" - } + "current_limit_enabled": { + "name": "Current limit enabled" }, - "flex_zone_mode": { - "state": { - "cv_ttype_rf9000a_freeze": "Freeze", - "cv_ttype_rf9000a_softfreeze": "Soft Freeze", - "cv_ttype_rf9000a_meat_fish": "Meat/Fish", - "cv_ttype_rf9000a_fruit_veggies": "Fruit & Veggies", - "cv_ttype_rf9000a_beverage": "Beverage", - "cv_fdr_wine": "Wine", - "cv_fdr_deli": "Deli", - "cv_fdr_beverage": "Beverage", - "cv_fdr_meat": "Meat", - "cv_fdr_soft_freezer": "Soft Freezer" - } + "cycle_active": { + "name": "[%key:component::binary_sensor::entity_component::running::name%]" }, - "dishwasher_cycle": { - "state": { - "0e": "AI Wash", - "07": "Pre blast", - "90": "Self clean", - "86": "Normal", - "83": "Express 60", - "84": "Heavy", - "8d": "Pots and pans", - "80": "Delicate", - "8e": "Plastic", - "8f": "Baby Care" - } + "defrost_active": { + "name": "Defrost active" }, - "washer_cycle_table_02": { - "state": { - "1c": "Eco 40-60", - "1d": "Super Speed", - "21": "Colours", - "1b": "Cotton", - "1e": "15' Quick Wash", - "29": "Drum Clean+", - "24": "Towels", - "33": "Bedding", - "28": "Drain/Spin", - "26": "Delicates", - "27": "Rinse+Spin", - "22": "Wool", - "20": "Hygiene Steam", - "23": "Outdoor", - "25": "Synthetics", - "32": "Shirts", - "2f": "Activewear", - "2e": "Baby Care", - "30": "Cloudy Day", - "66": "Denim", - "2d": "Silent Wash", - "8f": "Intense Cold", - "96": "Less Microfiber", - "36": "Wash+Dry", - "37": "Air Wash", - "38": "Cotton Dry", - "39": "Synthetics Dry", - "1f": "Intense Cold" - } + "detergent_low": { + "name": "Detergent low" }, - "dryer_cycle_table_03": { - "state": { - "16": "Cotton", - "18": "Synthetics", - "19": "Delicates", - "1a": "Wool", - "1b": "Bedding", - "1c": "Shirts", - "1d": "Towels", - "1e": "Outdoor", - "1f": "Mixed Load", - "20": "Iron Dry", - "23": "Quick Dry 35", - "24": "Cool Air", - "25": "Warm Air", - "27": "Time Dry" - } + "device_active": { + "name": "Device active" }, - "washer_dosing_quantity": { - "state": { - "00": "None", - "01": "Low", - "02": "Medium", - "03": "High" - } + "door_open": { + "name": "[%key:component::binary_sensor::entity_component::door::name%]" }, - "washer_detergent_water_hardness": { - "state": { - "01": "Soft", - "02": "Medium", - "03": "Hard" - } + "firmware_update": { + "name": "Firmware update available" }, - "washer_softener_concentration": { - "state": { - "01": "1x", - "02": "2x", - "03": "3x" - } + "instance_open": { + "name": "{instance_name} open" }, - "washer_dry_level": { - "state": { - "none": "Off", - "cupboard": "Cupboard", - "30": "30 min", - "60": "1 hr", - "90": "1 hr 30", - "120": "2 hr", - "180": "3 hr", - "240": "4 hr" - } + "paired_hood_connected": { + "name": "Paired hood connected" + }, + "paired_hood_light": { + "name": "Paired hood light" + }, + "paired_hood_power": { + "name": "Paired hood power" + }, + "periodic_air_sensing": { + "name": "Periodic air sensing" + }, + "power_state": { + "name": "Power state" + }, + "rapid_freezing": { + "name": "Rapid freezing" + }, + "rapid_fridge": { + "name": "Rapid fridge" + }, + "remote_control": { + "name": "Smart Control" + }, + "softener_low": { + "name": "Softener low" } }, - "sensor": { - "ice_making_status": { - "state": { - "icestatus_stop": "Idle", - "icestatus_run": "Making ice" - } + "button": { + "diagnosis_start": { + "name": "Start diagnosis" }, - "connection_mode": { - "state": { - "observe": "Push (observe)", - "poll": "Polling" - } + "pause": { + "name": "[%key:common::action::pause%]" }, - "machine_state": { - "state": { - "idle": "Idle", - "active": "Active", - "pause": "Paused" - } + "selfcheck_start": { + "name": "Start self-check" }, - "air_filter_status": { - "state": { - "normal": "Normal", - "wash": "Wash", - "replace": "Replace" - } + "start": { + "name": "[%key:common::action::start%]" + }, + "stop": { + "name": "[%key:common::action::stop%]" } }, "climate": { @@ -189,24 +90,11 @@ "state_attributes": { "fan_mode": { "state": { - "auto": "Auto", - "low": "Low", - "medium": "Medium", - "high": "High", "turbo": "Turbo" } }, - "swing_mode": { - "state": { - "off": "Fixed", - "both": "All directions", - "vertical": "Up and down" - } - }, "preset_mode": { "state": { - "none": "Off", - "sleep": "Sleep", "quiet": "Quiet", "smart": "Smart", "speed": "Speed" @@ -214,17 +102,625 @@ } } } + }, + "number": { + "cook_time": { + "name": "Cook time" + }, + "delay_start_hours": { + "name": "Delay start" + }, + "instance_setpoint": { + "name": "{instance_name} setpoint" + }, + "oven_setpoint": { + "name": "Setpoint" + }, + "sound_volume": { + "name": "Sound volume" + } + }, + "select": { + "ai_energy_level": { + "name": "AI Energy Mode level" + }, + "beverage_zone_mode": { + "name": "Beverage zone mode", + "state": { + "sp_ttype_beer_drinks": "Beverage", + "sp_ttype_wine_dessert": "Wine and dessert" + } + }, + "brightness_level": { + "name": "Night brightness", + "state": { + "33": "[%key:common::state::low%]", + "66": "[%key:common::state::medium%]", + "100": "[%key:common::state::high%]" + } + }, + "day_brightness": { + "name": "Cabinet brightness", + "state": { + "33": "[%key:common::state::low%]", + "66": "[%key:common::state::medium%]", + "100": "[%key:common::state::high%]" + } + }, + "buzzer_sound": { + "name": "Buzzer sound", + "state": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "cycle": { + "name": "Cycle" + }, + "detergent_quantity": { + "name": "Detergent quantity", + "state": { + "00": "None", + "01": "[%key:common::state::low%]", + "02": "[%key:common::state::medium%]", + "03": "[%key:common::state::high%]" + } + }, + "detergent_water_hardness": { + "name": "Detergent water hardness", + "state": { + "01": "Soft", + "02": "[%key:common::state::medium%]", + "03": "Hard" + } + }, + "dishwasher_cycle": { + "name": "Cycle", + "state": { + "80": "Delicate", + "83": "Express 60", + "84": "Heavy", + "86": "Normal", + "90": "Self clean", + "0e": "AI Wash", + "07": "Pre blast", + "8d": "Pots and pans", + "8e": "Plastic", + "8f": "Baby Care" + } + }, + "door_alert": { + "name": "Door alarm", + "state": { + "1": "Alarm 1", + "2": "Alarm 2", + "3": "Alarm 3", + "4": "Alarm 4" + } + }, + "dryer_cycle_table_03": { + "name": "Cycle", + "state": { + "16": "Cotton", + "18": "Synthetics", + "19": "Delicates", + "20": "Iron dry", + "23": "Quick Dry 35", + "24": "Cool air", + "25": "Warm air", + "27": "Time dry", + "1a": "Wool", + "1b": "Bedding", + "1c": "Shirts", + "1d": "Towels", + "1e": "Outdoor", + "1f": "Mixed load" + } + }, + "finish_sound": { + "name": "Finish sound", + "state": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "flex_zone_mode": { + "name": "Flex zone mode", + "state": { + "cv_ttype_rf9000a_freeze": "Freeze", + "cv_ttype_rf9000a_softfreeze": "Soft freeze", + "cv_ttype_rf9000a_meat_fish": "Meat/Fish", + "cv_ttype_rf9000a_fruit_veggies": "Fruit & vegetables", + "cv_ttype_rf9000a_beverage": "Beverage", + "cv_fdr_wine": "Wine", + "cv_fdr_deli": "Deli", + "cv_fdr_beverage": "Beverage", + "cv_fdr_meat": "Meat", + "cv_fdr_soft_freezer": "Soft freezer" + } + }, + "heated_dry": { + "name": "Smart Dry", + "state": { + "off": "[%key:common::state::off%]", + "low": "[%key:common::state::low%]", + "high": "[%key:common::state::high%]", + "extra_high": "Extra high" + } + }, + "ice_type": { + "name": "{instance_name} type", + "state": { + "off": "[%key:common::state::off%]", + "whiskey_iceball_3": "3 balls/day", + "whiskey_iceball_6": "6 balls/day", + "whiskey_iceball_9": "9 balls/day" + } + }, + "led_brightness": { + "name": "Door LED brightness", + "state": { + "low": "[%key:common::state::low%]", + "high": "[%key:common::state::high%]" + } + }, + "led_night_brightness": { + "name": "Door LED night brightness", + "state": { + "low": "[%key:common::state::low%]", + "high": "[%key:common::state::high%]" + } + }, + "oven_mode": { + "name": "Cooking mode", + "state": { + "no_operation": "No operation", + "bake": "Bake", + "broil": "Broil", + "convection": "Convection", + "convection_bake": "Convection bake", + "convection_broil": "Convection broil", + "frozen_pizza_plus": "Frozen Pizza+", + "slow_cook": "Slow cook", + "plate_warm": "Plate warm", + "air_fry": "Air fry" + } + }, + "pantry_zone_mode": { + "name": "Pantry zone mode", + "state": { + "fdr_wine": "Wine", + "fdr_deli": "Deli", + "fdr_drinks": "Drinks" + } + }, + "range_burner_power_level": { + "name": "Burner {number} power level", + "state": { + "0": "[%key:common::state::off%]", + "boost": "Boost", + "simmer": "Simmer" + } + }, + "range_hood_lamp_brightness": { + "name": "Lamp brightness", + "state": { + "1": "Level 1", + "2": "Level 2" + } + }, + "rinse_cycles": { + "name": "Rinse cycles" + }, + "softener_concentration": { + "name": "Softener concentration", + "state": { + "01": "1x", + "02": "2x", + "03": "3x" + } + }, + "softener_quantity": { + "name": "Softener quantity", + "state": { + "00": "None", + "01": "[%key:common::state::low%]", + "02": "[%key:common::state::medium%]", + "03": "[%key:common::state::high%]" + } + }, + "sound_mode": { + "name": "Sound mode", + "state": { + "voice": "Voice", + "tone": "Tone", + "mute": "Mute" + } + }, + "spin_speed": { + "name": "Spin speed", + "state": { + "rinse_hold": "Rinse hold", + "no_spin": "No spin", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "high": "[%key:common::state::high%]" + } + }, + "wash_temperature": { + "name": "Wash temperature", + "state": { + "none": "None", + "cold": "Cold", + "cool": "Cool", + "warm": "Warm", + "hot": "Hot", + "extra_hot": "Extra hot" + } + }, + "washer_cycle_table_02": { + "name": "Cycle", + "state": { + "20": "Hygiene Steam", + "21": "Colours", + "22": "Wool", + "23": "Outdoor", + "24": "Towels", + "25": "Synthetics", + "26": "Delicates", + "27": "Rinse+Spin", + "28": "Drain/Spin", + "29": "Drum Clean+", + "30": "Cloudy Day", + "32": "Shirts", + "33": "Bedding", + "36": "Wash+Dry", + "37": "Air Wash", + "38": "Cotton Dry", + "39": "Synthetics Dry", + "66": "Denim", + "96": "Less Microfiber", + "1c": "Eco 40-60", + "1d": "Super Speed", + "1b": "Cotton", + "1e": "15' Quick Wash", + "2f": "Activewear", + "2e": "Baby Care", + "2d": "Silent Wash", + "8f": "Intense Cold", + "1f": "Intense Cold" + } + }, + "washer_dry_level": { + "name": "Dry level", + "state": { + "30": "30 min", + "60": "1 hr", + "90": "1 hr 30", + "120": "2 hr", + "180": "3 hr", + "240": "4 hr", + "none": "[%key:common::state::off%]", + "cupboard": "Cupboard" + } + } + }, + "sensor": { + "air_filter_usage": { + "name": "Filter usage" + }, + "air_sensing_state": { + "name": "Air sensing state" + }, + "alarm_code": { + "name": "Alarm code" + }, + "auto_ventilation_action": { + "name": "Auto ventilation action" + }, + "automatic_ventilation_state": { + "name": "Automatic ventilation state" + }, + "burner_state": { + "name": "Burner {number} state" + }, + "clean_level": { + "name": "Clean level" + }, + "connection_mode": { + "name": "Connection mode", + "state": { + "observe": "Push (observe)", + "poll": "Polling" + } + }, + "cooktop_state": { + "name": "Cooktop state" + }, + "current_limit_level": { + "name": "Current limit level" + }, + "current_temp_c": { + "name": "[%key:component::sensor::entity_component::temperature::name%]" + }, + "diagnosis": { + "name": "Diagnosis" + }, + "diagnosis_status": { + "name": "Diagnosis status" + }, + "drum_clean_cycles_remaining": { + "name": "Drum clean due in" + }, + "drum_clean_last_cleaned": { + "name": "Drum last cleaned" + }, + "dry_level": { + "name": "Dry level" + }, + "dry_time": { + "name": "Dry time" + }, + "dryer_type": { + "name": "Dryer type" + }, + "dust": { + "name": "Dust" + }, + "energy_kwh": { + "name": "[%key:component::sensor::entity_component::energy::name%]" + }, + "energy_last_month_kwh": { + "name": "Energy (last month)" + }, + "energy_saved_kwh": { + "name": "Energy saved" + }, + "energy_this_month_kwh": { + "name": "Energy (this month)" + }, + "fan_direction": { + "name": "Fan direction" + }, + "fan_speed_level": { + "name": "Fan speed level" + }, + "filter_progress": { + "name": "Filter progress" + }, + "fine_dust": { + "name": "Fine dust" + }, + "finish_time": { + "name": "Estimated finish" + }, + "freezer_temperature": { + "name": "Freezer temperature" + }, + "fridge_temperature": { + "name": "Fridge temperature" + }, + "hood_filter_capacity": { + "name": "Filter capacity" + }, + "hood_filter_usage": { + "name": "Filter usage" + }, + "instance_temperature": { + "name": "{instance_name} temperature" + }, + "job_beginning_status": { + "name": "Job beginning status" + }, + "last_air_sensing_level": { + "name": "Last air sensing level" + }, + "last_air_sensing_time": { + "name": "Last air sensing time" + }, + "main_timer_current": { + "name": "Timer current value" + }, + "main_timer_state": { + "name": "Timer state" + }, + "odor": { + "name": "Odor" + }, + "operating_mode": { + "name": "Operating mode" + }, + "operation_origin": { + "name": "Last operation source" + }, + "operation_time_minutes": { + "name": "Operation time" + }, + "oven_state": { + "name": "Cavity state" + }, + "paired_hood_fan_speed": { + "name": "Paired hood fan speed" + }, + "paired_hood_firmware": { + "name": "Paired hood firmware" + }, + "paired_hood_model": { + "name": "Paired hood model" + }, + "power_energy_kwh": { + "name": "Power energy" + }, + "power_watts": { + "name": "[%key:component::sensor::entity_component::power::name%]" + }, + "progress": { + "name": "Progress" + }, + "progress_percentage": { + "name": "Progress percent" + }, + "selfcheck_error": { + "name": "Self-check error" + }, + "selfcheck_result": { + "name": "Self-check result" + }, + "selfcheck_status": { + "name": "Self-check status" + }, + "super_fine_dust": { + "name": "Super fine dust" + }, + "water_liters": { + "name": "Water consumption" + }, + "machine_state": { + "name": "Machine state", + "state": { + "idle": "[%key:common::state::idle%]", + "active": "[%key:common::state::active%]", + "pause": "Paused" + } + }, + "filter_status": { + "name": "Filter status", + "state": { + "normal": "[%key:common::state::normal%]", + "wash": "Wash", + "replace": "Replace" + } + }, + "ice_making_status": { + "name": "{instance_name} making status", + "state": { + "icestatus_stop": "[%key:common::state::idle%]", + "icestatus_run": "Making ice" + } + } + }, + "switch": { + "ai_energy_level": { + "name": "AI Energy Mode" + }, + "air_purify": { + "name": "Air purification" + }, + "auto_clean": { + "name": "Auto clean" + }, + "auto_door_opener": { + "name": "Auto door opener" + }, + "auto_release_dry": { + "name": "Auto Release Dry" + }, + "autofill": { + "name": "Autofill pitcher" + }, + "bubble_soak": { + "name": "Bubble Soak" + }, + "cabinet_light_dim": { + "name": "Brighten gradually" + }, + "cabinet_light_switch": { + "name": "Cabinet light" + }, + "child_lock": { + "name": "Child lock" + }, + "defrost_delay": { + "name": "Defrost delay" + }, + "display_light": { + "name": "Display light" + }, + "fast_preheat": { + "name": "Fast preheat" + }, + "fridge_sound": { + "name": "Sound" + }, + "ice_maker_enabled": { + "name": "Ice maker" + }, + "ice_night_mode": { + "name": "Nighttime ice quiet mode" + }, + "instance_enabled": { + "name": "{instance_name} enabled" + }, + "intensive": { + "name": "Intensive" + }, + "lamp": { + "name": "Lamp" + }, + "led_night_light": { + "name": "Door LED night light" + }, + "mute_once": { + "name": "Mute once" + }, + "natural_steam": { + "name": "Natural steam" + }, + "power_switch": { + "name": "Power" + }, + "pre_wash": { + "name": "Pre-wash" + }, + "rapid_freezing": { + "name": "Rapid freezing" + }, + "rapid_fridge": { + "name": "Rapid fridge" + }, + "sabbath_mode": { + "name": "Sabbath mode" + }, + "sanitize": { + "name": "Sanitize" + }, + "sound": { + "name": "Sound" + }, + "storm_wash": { + "name": "Storm Wash+" + }, + "welcome_lighting": { + "name": "Welcome lighting" + }, + "wrinkle_prevent": { + "name": "Wrinkle prevent" + } + }, + "time": { + "led_night_end": { + "name": "Door LED night end" + }, + "led_night_start": { + "name": "Door LED night start" + }, + "night_end": { + "name": "Night light end" + }, + "night_start": { + "name": "Night light start" + } } }, "config": { "step": { "user": { - "title": "Add Samsung Appliance", - "description": "Enter the IP address of your Samsung appliance and the AC14K_M CA credentials used to mint device certificates. {reuse_note}", + "title": "Add Samsung appliance", + "description": "Enter the IP address of your Samsung appliance and the AC14K_M CA credentials used to mint device certificates.", "data": { - "host": "IP Address", - "ca_cert_pem": "CA Certificate (PEM)", - "ca_key_pem": "CA Private Key (PEM)" + "host": "IP address", + "ca_cert_pem": "CA certificate (PEM)", + "ca_key_pem": "CA private key (PEM)" }, "data_description": { "host": "Local IP address of your Samsung appliance (e.g. 192.168.1.50).", @@ -232,9 +728,23 @@ "ca_key_pem": "The PEM-encoded AC14K_M private key. Paste the full contents including the BEGIN/END PRIVATE KEY header and footer." } }, + "user_reuse": { + "title": "Add Samsung appliance", + "description": "Enter the IP address of your Samsung appliance. The CA credentials from an existing LocalThings appliance will be reused.", + "data": { + "host": "IP address" + }, + "data_description": { + "host": "Local IP address of your Samsung appliance (e.g. 192.168.1.50)." + } + }, "confirm_unknown_type": { "title": "Appliance type not recognized", "description": "This appliance reported oneUiVersion \"{one_ui_version}\", which isn't a recognized type. It'll still be added, but only with common capabilities (power, alarms, etc. where present) rather than the full set for its family. You can help add full support afterward by downloading diagnostics for this device (Settings > Devices & Services > this device > the menu > Download diagnostics) and filing them in a new issue. Submit to add it anyway." + }, + "confirm_unknown_type_no_version": { + "title": "Appliance type not recognized", + "description": "This appliance did not report a oneUiVersion and its type couldn't be recognized. It'll still be added, but only with common capabilities (power, alarms, etc. where present) rather than the full set for its family. You can help add full support afterward by downloading diagnostics for this device (Settings > Devices & Services > this device > the menu > Download diagnostics) and filing them in a new issue. Submit to add it anyway." } }, "error": { @@ -243,13 +753,13 @@ "unknown": "Unexpected error. Check the Home Assistant logs for details." }, "abort": { - "already_configured": "This device is already configured." + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "options": { "step": { "init": { - "title": "Local Things Options", + "title": "LocalThings options", "menu_options": { "settings": "Remote control write settings", "debug_write": "Debug: write to a resource" @@ -298,5 +808,25 @@ "title": "Incomplete capability coverage for {device_name}", "description": "This device is missing full capability coverage. Either its appliance type wasn't recognized, or some of the resources it exposes aren't modeled yet. It'll keep working with whatever is already supported. You can help expand support by going to Settings > Devices & Services > {device_name} > the menu (top right) > Download diagnostics, then filing it with the linked issue template." } + }, + "exceptions": { + "remote_control_disabled": { + "message": "Remote control is turned off on this device. Check your appliance's manual for how to enable remote control before Home Assistant can control it." + }, + "debug_payload_empty": { + "message": "Debug write payload must be a non-empty object." + }, + "resource_href_required": { + "message": "A resource href is required." + }, + "bubble_soak_unavailable_for_cycle": { + "message": "Bubble Soak isn't available on the selected cycle." + }, + "pre_wash_unavailable_for_cycle": { + "message": "Pre-wash isn't available on the selected cycle." + }, + "intensive_unavailable_for_cycle": { + "message": "Intensive isn't available on the selected cycle." + } } } diff --git a/custom_components/localthings/translations/en.json b/custom_components/localthings/translations/en.json index de1ac17..412cec0 100644 --- a/custom_components/localthings/translations/en.json +++ b/custom_components/localthings/translations/en.json @@ -1,187 +1,88 @@ { "entity": { - "select": { - "door_alert": { - "state": { - "1": "Alarm 1", - "2": "Alarm 2", - "3": "Alarm 3", - "4": "Alarm 4" - } + "binary_sensor": { + "any_burner_active": { + "name": "Any burner active" }, - "brightness_level": { - "state": { - "33": "Low", - "66": "Medium", - "100": "High" - } + "automatic_operation": { + "name": "Automatic operation" }, - "range_hood_lamp_brightness": { - "state": { - "1": "Level 1", - "2": "Level 2" - } + "burner_hot_surface": { + "name": "Burner {number} hot surface" }, - "ice_type": { - "state": { - "off": "Off", - "whiskey_iceball_3": "3 Balls/Day", - "whiskey_iceball_6": "6 Balls/Day", - "whiskey_iceball_9": "9 Balls/Day" - } + "cloud_connected": { + "name": "Cloud connected" }, - "beverage_zone_mode": { - "state": { - "sp_ttype_beer_drinks": "Beverage", - "sp_ttype_wine_dessert": "Wine and Dessert" - } + "cooktop_safety_shutoff_enabled": { + "name": "Hot surface auto-shutoff enabled" }, - "pantry_zone_mode": { - "state": { - "fdr_wine": "Wine", - "fdr_deli": "Deli", - "fdr_drinks": "Drinks" - } + "current_limit_enabled": { + "name": "Current limit enabled" }, - "flex_zone_mode": { - "state": { - "cv_ttype_rf9000a_freeze": "Freeze", - "cv_ttype_rf9000a_softfreeze": "Soft Freeze", - "cv_ttype_rf9000a_meat_fish": "Meat/Fish", - "cv_ttype_rf9000a_fruit_veggies": "Fruit & Veggies", - "cv_ttype_rf9000a_beverage": "Beverage", - "cv_fdr_wine": "Wine", - "cv_fdr_deli": "Deli", - "cv_fdr_beverage": "Beverage", - "cv_fdr_meat": "Meat", - "cv_fdr_soft_freezer": "Soft Freezer" - } + "cycle_active": { + "name": "[%key:component::binary_sensor::entity_component::running::name%]" }, - "dishwasher_cycle": { - "state": { - "0e": "AI Wash", - "07": "Pre blast", - "90": "Self clean", - "86": "Normal", - "83": "Express 60", - "84": "Heavy", - "8d": "Pots and pans", - "80": "Delicate", - "8e": "Plastic", - "8f": "Baby Care" - } + "defrost_active": { + "name": "Defrost active" }, - "washer_cycle_table_02": { - "state": { - "1c": "Eco 40-60", - "1d": "Super Speed", - "21": "Colours", - "1b": "Cotton", - "1e": "15' Quick Wash", - "29": "Drum Clean+", - "24": "Towels", - "33": "Bedding", - "28": "Drain/Spin", - "26": "Delicates", - "27": "Rinse+Spin", - "22": "Wool", - "20": "Hygiene Steam", - "23": "Outdoor", - "25": "Synthetics", - "32": "Shirts", - "2f": "Activewear", - "2e": "Baby Care", - "30": "Cloudy Day", - "66": "Denim", - "2d": "Silent Wash", - "8f": "Intense Cold", - "96": "Less Microfiber", - "36": "Wash+Dry", - "37": "Air Wash", - "38": "Cotton Dry", - "39": "Synthetics Dry", - "1f": "Intense Cold" - } + "detergent_low": { + "name": "Detergent low" }, - "dryer_cycle_table_03": { - "state": { - "16": "Cotton", - "18": "Synthetics", - "19": "Delicates", - "1a": "Wool", - "1b": "Bedding", - "1c": "Shirts", - "1d": "Towels", - "1e": "Outdoor", - "1f": "Mixed Load", - "20": "Iron Dry", - "23": "Quick Dry 35", - "24": "Cool Air", - "25": "Warm Air", - "27": "Time Dry" - } + "device_active": { + "name": "Device active" }, - "washer_dosing_quantity": { - "state": { - "00": "None", - "01": "Low", - "02": "Medium", - "03": "High" - } + "door_open": { + "name": "[%key:component::binary_sensor::entity_component::door::name%]" }, - "washer_detergent_water_hardness": { - "state": { - "01": "Soft", - "02": "Medium", - "03": "Hard" - } + "firmware_update": { + "name": "Firmware update available" }, - "washer_softener_concentration": { - "state": { - "01": "1x", - "02": "2x", - "03": "3x" - } + "instance_open": { + "name": "{instance_name} open" }, - "washer_dry_level": { - "state": { - "none": "Off", - "cupboard": "Cupboard", - "30": "30 min", - "60": "1 hr", - "90": "1 hr 30", - "120": "2 hr", - "180": "3 hr", - "240": "4 hr" - } + "paired_hood_connected": { + "name": "Paired hood connected" + }, + "paired_hood_light": { + "name": "Paired hood light" + }, + "paired_hood_power": { + "name": "Paired hood power" + }, + "periodic_air_sensing": { + "name": "Periodic air sensing" + }, + "power_state": { + "name": "Power state" + }, + "rapid_freezing": { + "name": "Rapid freezing" + }, + "rapid_fridge": { + "name": "Rapid fridge" + }, + "remote_control": { + "name": "Smart Control" + }, + "softener_low": { + "name": "Softener low" } }, - "sensor": { - "ice_making_status": { - "state": { - "icestatus_stop": "Idle", - "icestatus_run": "Making ice" - } + "button": { + "diagnosis_start": { + "name": "Start diagnosis" }, - "connection_mode": { - "state": { - "observe": "Push (observe)", - "poll": "Polling" - } + "pause": { + "name": "[%key:common::action::pause%]" }, - "machine_state": { - "state": { - "idle": "Idle", - "active": "Active", - "pause": "Paused" - } + "selfcheck_start": { + "name": "Start self-check" }, - "air_filter_status": { - "state": { - "normal": "Normal", - "wash": "Wash", - "replace": "Replace" - } + "start": { + "name": "[%key:common::action::start%]" + }, + "stop": { + "name": "[%key:common::action::stop%]" } }, "climate": { @@ -189,24 +90,11 @@ "state_attributes": { "fan_mode": { "state": { - "auto": "Auto", - "low": "Low", - "medium": "Medium", - "high": "High", "turbo": "Turbo" } }, - "swing_mode": { - "state": { - "off": "Fixed", - "both": "All directions", - "vertical": "Up and down" - } - }, "preset_mode": { "state": { - "none": "Off", - "sleep": "Sleep", "quiet": "Quiet", "smart": "Smart", "speed": "Speed" @@ -214,17 +102,625 @@ } } } + }, + "number": { + "cook_time": { + "name": "Cook time" + }, + "delay_start_hours": { + "name": "Delay start" + }, + "instance_setpoint": { + "name": "{instance_name} setpoint" + }, + "oven_setpoint": { + "name": "Setpoint" + }, + "sound_volume": { + "name": "Sound volume" + } + }, + "select": { + "ai_energy_level": { + "name": "AI Energy Mode level" + }, + "beverage_zone_mode": { + "name": "Beverage zone mode", + "state": { + "sp_ttype_beer_drinks": "Beverage", + "sp_ttype_wine_dessert": "Wine and dessert" + } + }, + "brightness_level": { + "name": "Night brightness", + "state": { + "33": "[%key:common::state::low%]", + "66": "[%key:common::state::medium%]", + "100": "[%key:common::state::high%]" + } + }, + "day_brightness": { + "name": "Cabinet brightness", + "state": { + "33": "[%key:common::state::low%]", + "66": "[%key:common::state::medium%]", + "100": "[%key:common::state::high%]" + } + }, + "buzzer_sound": { + "name": "Buzzer sound", + "state": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "cycle": { + "name": "Cycle" + }, + "detergent_quantity": { + "name": "Detergent quantity", + "state": { + "00": "None", + "01": "[%key:common::state::low%]", + "02": "[%key:common::state::medium%]", + "03": "[%key:common::state::high%]" + } + }, + "detergent_water_hardness": { + "name": "Detergent water hardness", + "state": { + "01": "Soft", + "02": "[%key:common::state::medium%]", + "03": "Hard" + } + }, + "dishwasher_cycle": { + "name": "Cycle", + "state": { + "80": "Delicate", + "83": "Express 60", + "84": "Heavy", + "86": "Normal", + "90": "Self clean", + "0e": "AI Wash", + "07": "Pre blast", + "8d": "Pots and pans", + "8e": "Plastic", + "8f": "Baby Care" + } + }, + "door_alert": { + "name": "Door alarm", + "state": { + "1": "Alarm 1", + "2": "Alarm 2", + "3": "Alarm 3", + "4": "Alarm 4" + } + }, + "dryer_cycle_table_03": { + "name": "Cycle", + "state": { + "16": "Cotton", + "18": "Synthetics", + "19": "Delicates", + "20": "Iron dry", + "23": "Quick Dry 35", + "24": "Cool air", + "25": "Warm air", + "27": "Time dry", + "1a": "Wool", + "1b": "Bedding", + "1c": "Shirts", + "1d": "Towels", + "1e": "Outdoor", + "1f": "Mixed load" + } + }, + "finish_sound": { + "name": "Finish sound", + "state": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "flex_zone_mode": { + "name": "Flex zone mode", + "state": { + "cv_ttype_rf9000a_freeze": "Freeze", + "cv_ttype_rf9000a_softfreeze": "Soft freeze", + "cv_ttype_rf9000a_meat_fish": "Meat/Fish", + "cv_ttype_rf9000a_fruit_veggies": "Fruit & vegetables", + "cv_ttype_rf9000a_beverage": "Beverage", + "cv_fdr_wine": "Wine", + "cv_fdr_deli": "Deli", + "cv_fdr_beverage": "Beverage", + "cv_fdr_meat": "Meat", + "cv_fdr_soft_freezer": "Soft freezer" + } + }, + "heated_dry": { + "name": "Smart Dry", + "state": { + "off": "[%key:common::state::off%]", + "low": "[%key:common::state::low%]", + "high": "[%key:common::state::high%]", + "extra_high": "Extra high" + } + }, + "ice_type": { + "name": "{instance_name} type", + "state": { + "off": "[%key:common::state::off%]", + "whiskey_iceball_3": "3 balls/day", + "whiskey_iceball_6": "6 balls/day", + "whiskey_iceball_9": "9 balls/day" + } + }, + "led_brightness": { + "name": "Door LED brightness", + "state": { + "low": "[%key:common::state::low%]", + "high": "[%key:common::state::high%]" + } + }, + "led_night_brightness": { + "name": "Door LED night brightness", + "state": { + "low": "[%key:common::state::low%]", + "high": "[%key:common::state::high%]" + } + }, + "oven_mode": { + "name": "Cooking mode", + "state": { + "no_operation": "No operation", + "bake": "Bake", + "broil": "Broil", + "convection": "Convection", + "convection_bake": "Convection bake", + "convection_broil": "Convection broil", + "frozen_pizza_plus": "Frozen Pizza+", + "slow_cook": "Slow cook", + "plate_warm": "Plate warm", + "air_fry": "Air fry" + } + }, + "pantry_zone_mode": { + "name": "Pantry zone mode", + "state": { + "fdr_wine": "Wine", + "fdr_deli": "Deli", + "fdr_drinks": "Drinks" + } + }, + "range_burner_power_level": { + "name": "Burner {number} power level", + "state": { + "0": "[%key:common::state::off%]", + "boost": "Boost", + "simmer": "Simmer" + } + }, + "range_hood_lamp_brightness": { + "name": "Lamp brightness", + "state": { + "1": "Level 1", + "2": "Level 2" + } + }, + "rinse_cycles": { + "name": "Rinse cycles" + }, + "softener_concentration": { + "name": "Softener concentration", + "state": { + "01": "1x", + "02": "2x", + "03": "3x" + } + }, + "softener_quantity": { + "name": "Softener quantity", + "state": { + "00": "None", + "01": "[%key:common::state::low%]", + "02": "[%key:common::state::medium%]", + "03": "[%key:common::state::high%]" + } + }, + "sound_mode": { + "name": "Sound mode", + "state": { + "voice": "Voice", + "tone": "Tone", + "mute": "Mute" + } + }, + "spin_speed": { + "name": "Spin speed", + "state": { + "rinse_hold": "Rinse hold", + "no_spin": "No spin", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "high": "[%key:common::state::high%]" + } + }, + "wash_temperature": { + "name": "Wash temperature", + "state": { + "none": "None", + "cold": "Cold", + "cool": "Cool", + "warm": "Warm", + "hot": "Hot", + "extra_hot": "Extra hot" + } + }, + "washer_cycle_table_02": { + "name": "Cycle", + "state": { + "20": "Hygiene Steam", + "21": "Colours", + "22": "Wool", + "23": "Outdoor", + "24": "Towels", + "25": "Synthetics", + "26": "Delicates", + "27": "Rinse+Spin", + "28": "Drain/Spin", + "29": "Drum Clean+", + "30": "Cloudy Day", + "32": "Shirts", + "33": "Bedding", + "36": "Wash+Dry", + "37": "Air Wash", + "38": "Cotton Dry", + "39": "Synthetics Dry", + "66": "Denim", + "96": "Less Microfiber", + "1c": "Eco 40-60", + "1d": "Super Speed", + "1b": "Cotton", + "1e": "15' Quick Wash", + "2f": "Activewear", + "2e": "Baby Care", + "2d": "Silent Wash", + "8f": "Intense Cold", + "1f": "Intense Cold" + } + }, + "washer_dry_level": { + "name": "Dry level", + "state": { + "30": "30 min", + "60": "1 hr", + "90": "1 hr 30", + "120": "2 hr", + "180": "3 hr", + "240": "4 hr", + "none": "[%key:common::state::off%]", + "cupboard": "Cupboard" + } + } + }, + "sensor": { + "air_filter_usage": { + "name": "Filter usage" + }, + "air_sensing_state": { + "name": "Air sensing state" + }, + "alarm_code": { + "name": "Alarm code" + }, + "auto_ventilation_action": { + "name": "Auto ventilation action" + }, + "automatic_ventilation_state": { + "name": "Automatic ventilation state" + }, + "burner_state": { + "name": "Burner {number} state" + }, + "clean_level": { + "name": "Clean level" + }, + "connection_mode": { + "name": "Connection mode", + "state": { + "observe": "Push (observe)", + "poll": "Polling" + } + }, + "cooktop_state": { + "name": "Cooktop state" + }, + "current_limit_level": { + "name": "Current limit level" + }, + "current_temp_c": { + "name": "[%key:component::sensor::entity_component::temperature::name%]" + }, + "diagnosis": { + "name": "Diagnosis" + }, + "diagnosis_status": { + "name": "Diagnosis status" + }, + "drum_clean_cycles_remaining": { + "name": "Drum clean due in" + }, + "drum_clean_last_cleaned": { + "name": "Drum last cleaned" + }, + "dry_level": { + "name": "Dry level" + }, + "dry_time": { + "name": "Dry time" + }, + "dryer_type": { + "name": "Dryer type" + }, + "dust": { + "name": "Dust" + }, + "energy_kwh": { + "name": "[%key:component::sensor::entity_component::energy::name%]" + }, + "energy_last_month_kwh": { + "name": "Energy (last month)" + }, + "energy_saved_kwh": { + "name": "Energy saved" + }, + "energy_this_month_kwh": { + "name": "Energy (this month)" + }, + "fan_direction": { + "name": "Fan direction" + }, + "fan_speed_level": { + "name": "Fan speed level" + }, + "filter_progress": { + "name": "Filter progress" + }, + "fine_dust": { + "name": "Fine dust" + }, + "finish_time": { + "name": "Estimated finish" + }, + "freezer_temperature": { + "name": "Freezer temperature" + }, + "fridge_temperature": { + "name": "Fridge temperature" + }, + "hood_filter_capacity": { + "name": "Filter capacity" + }, + "hood_filter_usage": { + "name": "Filter usage" + }, + "instance_temperature": { + "name": "{instance_name} temperature" + }, + "job_beginning_status": { + "name": "Job beginning status" + }, + "last_air_sensing_level": { + "name": "Last air sensing level" + }, + "last_air_sensing_time": { + "name": "Last air sensing time" + }, + "main_timer_current": { + "name": "Timer current value" + }, + "main_timer_state": { + "name": "Timer state" + }, + "odor": { + "name": "Odor" + }, + "operating_mode": { + "name": "Operating mode" + }, + "operation_origin": { + "name": "Last operation source" + }, + "operation_time_minutes": { + "name": "Operation time" + }, + "oven_state": { + "name": "Cavity state" + }, + "paired_hood_fan_speed": { + "name": "Paired hood fan speed" + }, + "paired_hood_firmware": { + "name": "Paired hood firmware" + }, + "paired_hood_model": { + "name": "Paired hood model" + }, + "power_energy_kwh": { + "name": "Power energy" + }, + "power_watts": { + "name": "[%key:component::sensor::entity_component::power::name%]" + }, + "progress": { + "name": "Progress" + }, + "progress_percentage": { + "name": "Progress percent" + }, + "selfcheck_error": { + "name": "Self-check error" + }, + "selfcheck_result": { + "name": "Self-check result" + }, + "selfcheck_status": { + "name": "Self-check status" + }, + "super_fine_dust": { + "name": "Super fine dust" + }, + "water_liters": { + "name": "Water consumption" + }, + "machine_state": { + "name": "Machine state", + "state": { + "idle": "[%key:common::state::idle%]", + "active": "[%key:common::state::active%]", + "pause": "Paused" + } + }, + "filter_status": { + "name": "Filter status", + "state": { + "normal": "[%key:common::state::normal%]", + "wash": "Wash", + "replace": "Replace" + } + }, + "ice_making_status": { + "name": "{instance_name} making status", + "state": { + "icestatus_stop": "[%key:common::state::idle%]", + "icestatus_run": "Making ice" + } + } + }, + "switch": { + "ai_energy_level": { + "name": "AI Energy Mode" + }, + "air_purify": { + "name": "Air purification" + }, + "auto_clean": { + "name": "Auto clean" + }, + "auto_door_opener": { + "name": "Auto door opener" + }, + "auto_release_dry": { + "name": "Auto Release Dry" + }, + "autofill": { + "name": "Autofill pitcher" + }, + "bubble_soak": { + "name": "Bubble Soak" + }, + "cabinet_light_dim": { + "name": "Brighten gradually" + }, + "cabinet_light_switch": { + "name": "Cabinet light" + }, + "child_lock": { + "name": "Child lock" + }, + "defrost_delay": { + "name": "Defrost delay" + }, + "display_light": { + "name": "Display light" + }, + "fast_preheat": { + "name": "Fast preheat" + }, + "fridge_sound": { + "name": "Sound" + }, + "ice_maker_enabled": { + "name": "Ice maker" + }, + "ice_night_mode": { + "name": "Nighttime ice quiet mode" + }, + "instance_enabled": { + "name": "{instance_name} enabled" + }, + "intensive": { + "name": "Intensive" + }, + "lamp": { + "name": "Lamp" + }, + "led_night_light": { + "name": "Door LED night light" + }, + "mute_once": { + "name": "Mute once" + }, + "natural_steam": { + "name": "Natural steam" + }, + "power_switch": { + "name": "Power" + }, + "pre_wash": { + "name": "Pre-wash" + }, + "rapid_freezing": { + "name": "Rapid freezing" + }, + "rapid_fridge": { + "name": "Rapid fridge" + }, + "sabbath_mode": { + "name": "Sabbath mode" + }, + "sanitize": { + "name": "Sanitize" + }, + "sound": { + "name": "Sound" + }, + "storm_wash": { + "name": "Storm Wash+" + }, + "welcome_lighting": { + "name": "Welcome lighting" + }, + "wrinkle_prevent": { + "name": "Wrinkle prevent" + } + }, + "time": { + "led_night_end": { + "name": "Door LED night end" + }, + "led_night_start": { + "name": "Door LED night start" + }, + "night_end": { + "name": "Night light end" + }, + "night_start": { + "name": "Night light start" + } } }, "config": { "step": { "user": { - "title": "Add Samsung Appliance", - "description": "Enter the IP address of your Samsung appliance and the AC14K_M CA credentials used to mint device certificates. {reuse_note}", + "title": "Add Samsung appliance", + "description": "Enter the IP address of your Samsung appliance and the AC14K_M CA credentials used to mint device certificates.", "data": { - "host": "IP Address", - "ca_cert_pem": "CA Certificate (PEM)", - "ca_key_pem": "CA Private Key (PEM)" + "host": "IP address", + "ca_cert_pem": "CA certificate (PEM)", + "ca_key_pem": "CA private key (PEM)" }, "data_description": { "host": "Local IP address of your Samsung appliance (e.g. 192.168.1.50).", @@ -232,9 +728,23 @@ "ca_key_pem": "The PEM-encoded AC14K_M private key. Paste the full contents including the BEGIN/END PRIVATE KEY header and footer." } }, + "user_reuse": { + "title": "Add Samsung appliance", + "description": "Enter the IP address of your Samsung appliance. The CA credentials from an existing LocalThings appliance will be reused.", + "data": { + "host": "IP address" + }, + "data_description": { + "host": "Local IP address of your Samsung appliance (e.g. 192.168.1.50)." + } + }, "confirm_unknown_type": { "title": "Appliance type not recognized", "description": "This appliance reported oneUiVersion \"{one_ui_version}\", which isn't a recognized type. It'll still be added, but only with common capabilities (power, alarms, etc. where present) rather than the full set for its family. You can help add full support afterward by downloading diagnostics for this device (Settings > Devices & Services > this device > the menu > Download diagnostics) and filing them in a new issue. Submit to add it anyway." + }, + "confirm_unknown_type_no_version": { + "title": "Appliance type not recognized", + "description": "This appliance did not report a oneUiVersion and its type couldn't be recognized. It'll still be added, but only with common capabilities (power, alarms, etc. where present) rather than the full set for its family. You can help add full support afterward by downloading diagnostics for this device (Settings > Devices & Services > this device > the menu > Download diagnostics) and filing them in a new issue. Submit to add it anyway." } }, "error": { @@ -243,13 +753,13 @@ "unknown": "Unexpected error. Check the Home Assistant logs for details." }, "abort": { - "already_configured": "This device is already configured." + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "options": { "step": { "init": { - "title": "Local Things Options", + "title": "LocalThings options", "menu_options": { "settings": "Remote control write settings", "debug_write": "Debug: write to a resource" @@ -298,5 +808,25 @@ "title": "Incomplete capability coverage for {device_name}", "description": "This device is missing full capability coverage. Either its appliance type wasn't recognized, or some of the resources it exposes aren't modeled yet. It'll keep working with whatever is already supported. You can help expand support by going to Settings > Devices & Services > {device_name} > the menu (top right) > Download diagnostics, then filing it with the linked issue template." } + }, + "exceptions": { + "remote_control_disabled": { + "message": "Remote control is turned off on this device. Check your appliance's manual for how to enable remote control before Home Assistant can control it." + }, + "debug_payload_empty": { + "message": "Debug write payload must be a non-empty object." + }, + "resource_href_required": { + "message": "A resource href is required." + }, + "bubble_soak_unavailable_for_cycle": { + "message": "Bubble Soak isn't available on the selected cycle." + }, + "pre_wash_unavailable_for_cycle": { + "message": "Pre-wash isn't available on the selected cycle." + }, + "intensive_unavailable_for_cycle": { + "message": "Intensive isn't available on the selected cycle." + } } } diff --git a/custom_components/localthings/translations/nl.json b/custom_components/localthings/translations/nl.json index abea1fc..05510d0 100644 --- a/custom_components/localthings/translations/nl.json +++ b/custom_components/localthings/translations/nl.json @@ -1,7 +1,196 @@ { "entity": { + "binary_sensor": { + "any_burner_active": { + "name": "Een brander actief" + }, + "automatic_operation": { + "name": "Automatische werking" + }, + "burner_hot_surface": { + "name": "Brander {number} heet oppervlak" + }, + "cloud_connected": { + "name": "Verbonden met cloud" + }, + "cooktop_safety_shutoff_enabled": { + "name": "Automatische uitschakeling heet oppervlak ingeschakeld" + }, + "current_limit_enabled": { + "name": "Stroombegrenzing ingeschakeld" + }, + "cycle_active": { + "name": "[%key:component::binary_sensor::entity_component::running::name%]" + }, + "defrost_active": { + "name": "Ontdooien actief" + }, + "detergent_low": { + "name": "Wasmiddel bijna op" + }, + "device_active": { + "name": "Apparaat actief" + }, + "door_open": { + "name": "[%key:component::binary_sensor::entity_component::door::name%]" + }, + "firmware_update": { + "name": "Firmware-update beschikbaar" + }, + "instance_open": { + "name": "{instance_name} open" + }, + "paired_hood_connected": { + "name": "Gekoppelde afzuigkap verbonden" + }, + "paired_hood_light": { + "name": "Verlichting gekoppelde afzuigkap" + }, + "paired_hood_power": { + "name": "Gekoppelde afzuigkap actief" + }, + "periodic_air_sensing": { + "name": "Periodieke luchtmeting" + }, + "power_state": { + "name": "Voedingsstatus" + }, + "rapid_freezing": { + "name": "Snelvriezen" + }, + "rapid_fridge": { + "name": "Snelkoelen" + }, + "remote_control": { + "name": "Smart Control" + }, + "softener_low": { + "name": "Wasverzachter bijna op" + } + }, + "button": { + "diagnosis_start": { + "name": "Diagnose starten" + }, + "pause": { + "name": "[%key:common::action::pause%]" + }, + "selfcheck_start": { + "name": "Zelfcontrole starten" + }, + "start": { + "name": "[%key:common::action::start%]" + }, + "stop": { + "name": "[%key:common::action::stop%]" + } + }, + "climate": { + "airconditioner": { + "state_attributes": { + "fan_mode": { + "state": { + "turbo": "Turbo" + } + }, + "preset_mode": { + "state": { + "quiet": "Stil", + "smart": "Slim", + "speed": "Snel" + } + } + } + } + }, + "number": { + "cook_time": { + "name": "Bereidingstijd" + }, + "delay_start_hours": { + "name": "Uitgestelde start" + }, + "instance_setpoint": { + "name": "Instelpunt {instance_name}" + }, + "oven_setpoint": { + "name": "Instelpunt" + }, + "sound_volume": { + "name": "Geluidsvolume" + } + }, "select": { + "ai_energy_level": { + "name": "Niveau AI Energy Mode" + }, + "beverage_zone_mode": { + "name": "Modus drankenzone", + "state": { + "sp_ttype_beer_drinks": "Dranken", + "sp_ttype_wine_dessert": "Wijn en dessert" + } + }, + "brightness_level": { + "name": "Nachthelderheid", + "state": { + "33": "[%key:common::state::low%]", + "66": "[%key:common::state::medium%]", + "100": "[%key:common::state::high%]" + } + }, + "day_brightness": { + "name": "Helderheid kast", + "state": { + "33": "[%key:common::state::low%]", + "66": "[%key:common::state::medium%]", + "100": "[%key:common::state::high%]" + } + }, + "buzzer_sound": { + "name": "Zoemergeluid", + "state": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "cycle": { + "name": "Programma" + }, + "detergent_quantity": { + "name": "Hoeveelheid wasmiddel", + "state": { + "00": "Geen", + "01": "[%key:common::state::low%]", + "02": "[%key:common::state::medium%]", + "03": "[%key:common::state::high%]" + } + }, + "detergent_water_hardness": { + "name": "Waterhardheid voor wasmiddel", + "state": { + "01": "Zacht", + "02": "[%key:common::state::medium%]", + "03": "Hard" + } + }, + "dishwasher_cycle": { + "name": "Programma", + "state": { + "80": "Delicaat", + "83": "Express 60", + "84": "Intensief", + "86": "Normaal", + "90": "Zelfreiniging", + "0e": "AI Wash", + "07": "Voorspoelen", + "8d": "Potten en pannen", + "8e": "Kunststof", + "8f": "Babyverzorging" + } + }, "door_alert": { + "name": "Deuralarm", "state": { "1": "Alarm 1", "2": "Alarm 2", @@ -9,101 +198,8 @@ "4": "Alarm 4" } }, - "brightness_level": { - "state": { - "33": "Laag", - "66": "Gemiddeld", - "100": "Hoog" - } - }, - "range_hood_lamp_brightness": { - "state": { - "1": "Niveau 1", - "2": "Niveau 2" - } - }, - "ice_type": { - "state": { - "off": "Uit", - "whiskey_iceball_3": "3 ijsballen per dag", - "whiskey_iceball_6": "6 ijsballen per dag", - "whiskey_iceball_9": "9 ijsballen per dag" - } - }, - "beverage_zone_mode": { - "state": { - "sp_ttype_beer_drinks": "Dranken", - "sp_ttype_wine_dessert": "Wijn en dessert" - } - }, - "pantry_zone_mode": { - "state": { - "fdr_wine": "Wijn", - "fdr_deli": "Delicatessen", - "fdr_drinks": "Dranken" - } - }, - "flex_zone_mode": { - "state": { - "cv_ttype_rf9000a_freeze": "Vriezen", - "cv_ttype_rf9000a_softfreeze": "Zachtvriezen", - "cv_ttype_rf9000a_meat_fish": "Vlees/vis", - "cv_ttype_rf9000a_fruit_veggies": "Fruit en groenten", - "cv_ttype_rf9000a_beverage": "Dranken", - "cv_fdr_wine": "Wijn", - "cv_fdr_deli": "Delicatessen", - "cv_fdr_beverage": "Dranken", - "cv_fdr_meat": "Vlees", - "cv_fdr_soft_freezer": "Zachtvriezer" - } - }, - "dishwasher_cycle": { - "state": { - "80": "Delicaat", - "83": "Express 60", - "84": "Intensief", - "86": "Normaal", - "90": "Zelfreiniging", - "0e": "AI wassen", - "07": "Voorspoelen", - "8d": "Potten en pannen", - "8e": "Kunststof", - "8f": "Babyverzorging" - } - }, - "washer_cycle_table_02": { - "state": { - "20": "Hygiënisch stomen", - "21": "Bonte was", - "22": "Wol", - "23": "Outdoor", - "24": "Handdoeken", - "25": "Synthetisch", - "26": "Fijne was", - "27": "Spoelen+centrifugeren", - "28": "Afpompen/centrifugeren", - "29": "Trommelreiniging+", - "30": "Bewolkte dag", - "32": "Overhemden", - "33": "Beddengoed", - "36": "Wassen+drogen", - "37": "Air Wash", - "38": "Katoen drogen", - "39": "Synthetisch drogen", - "66": "Spijkergoed", - "96": "Minder microvezels", - "1c": "Eco 40-60", - "1d": "Super Speed", - "1b": "Katoen", - "1e": "Kort programma 15'", - "2f": "Sportkleding", - "2e": "Babykleding", - "2d": "Stille was", - "8f": "Intensief koud", - "1f": "Intensief koud" - } - }, "dryer_cycle_table_03": { + "name": "Programma", "state": { "16": "Katoen", "18": "Synthetisch", @@ -121,29 +217,182 @@ "1f": "Gemengde was" } }, - "washer_dosing_quantity": { + "finish_sound": { + "name": "Eindgeluid", "state": { - "00": "Geen", - "01": "Laag", - "02": "Gemiddeld", - "03": "Hoog" + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" } }, - "washer_detergent_water_hardness": { + "flex_zone_mode": { + "name": "Modus FlexZone", "state": { - "01": "Zacht", - "02": "Gemiddeld", - "03": "Hard" + "cv_ttype_rf9000a_freeze": "Vriezen", + "cv_ttype_rf9000a_softfreeze": "Zachtvriezen", + "cv_ttype_rf9000a_meat_fish": "Vlees/vis", + "cv_ttype_rf9000a_fruit_veggies": "Fruit en groenten", + "cv_ttype_rf9000a_beverage": "Dranken", + "cv_fdr_wine": "Wijn", + "cv_fdr_deli": "Delicatessen", + "cv_fdr_beverage": "Dranken", + "cv_fdr_meat": "Vlees", + "cv_fdr_soft_freezer": "Zachtvriezer" } }, - "washer_softener_concentration": { + "heated_dry": { + "name": "Smart Dry", + "state": { + "off": "[%key:common::state::off%]", + "low": "[%key:common::state::low%]", + "high": "[%key:common::state::high%]", + "extra_high": "Extra hoog" + } + }, + "ice_type": { + "name": "Type {instance_name}", + "state": { + "off": "[%key:common::state::off%]", + "whiskey_iceball_3": "3 ijsballen per dag", + "whiskey_iceball_6": "6 ijsballen per dag", + "whiskey_iceball_9": "9 ijsballen per dag" + } + }, + "led_brightness": { + "name": "Helderheid deur-LED", + "state": { + "low": "[%key:common::state::low%]", + "high": "[%key:common::state::high%]" + } + }, + "led_night_brightness": { + "name": "Nachtelijke helderheid deur-LED", + "state": { + "low": "[%key:common::state::low%]", + "high": "[%key:common::state::high%]" + } + }, + "oven_mode": { + "name": "Bereidingsmodus", + "state": { + "no_operation": "Niet actief", + "bake": "Bakken", + "broil": "Grillen", + "convection": "Hetelucht", + "convection_bake": "Bakken met hetelucht", + "convection_broil": "Grillen met hetelucht", + "frozen_pizza_plus": "Frozen Pizza+", + "slow_cook": "Langzaam garen", + "plate_warm": "Borden warmhouden", + "air_fry": "Airfryen" + } + }, + "pantry_zone_mode": { + "name": "Modus voorraadzone", + "state": { + "fdr_wine": "Wijn", + "fdr_deli": "Delicatessen", + "fdr_drinks": "Dranken" + } + }, + "range_burner_power_level": { + "name": "Vermogensniveau brander {number}", + "state": { + "0": "[%key:common::state::off%]", + "boost": "Boost", + "simmer": "Sudderen" + } + }, + "range_hood_lamp_brightness": { + "name": "Helderheid lamp", + "state": { + "1": "Niveau 1", + "2": "Niveau 2" + } + }, + "rinse_cycles": { + "name": "Spoelcycli" + }, + "softener_concentration": { + "name": "Concentratie wasverzachter", "state": { "01": "1x", "02": "2x", "03": "3x" } }, + "softener_quantity": { + "name": "Hoeveelheid wasverzachter", + "state": { + "00": "Geen", + "01": "[%key:common::state::low%]", + "02": "[%key:common::state::medium%]", + "03": "[%key:common::state::high%]" + } + }, + "sound_mode": { + "name": "Geluidsmodus", + "state": { + "voice": "Spraak", + "tone": "Toon", + "mute": "Dempen" + } + }, + "spin_speed": { + "name": "Centrifugesnelheid", + "state": { + "rinse_hold": "Spoelstop", + "no_spin": "Niet centrifugeren", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "high": "[%key:common::state::high%]" + } + }, + "wash_temperature": { + "name": "Wastemperatuur", + "state": { + "none": "Geen", + "cold": "Koud", + "cool": "Koel", + "warm": "Warm", + "hot": "Heet", + "extra_hot": "Extra heet" + } + }, + "washer_cycle_table_02": { + "name": "Programma", + "state": { + "20": "Hygiënisch stomen", + "21": "Bonte was", + "22": "Wol", + "23": "Outdoor", + "24": "Handdoeken", + "25": "Synthetisch", + "26": "Fijne was", + "27": "Spoelen+centrifugeren", + "28": "Afpompen/centrifugeren", + "29": "Drum Clean+", + "30": "Bewolkte dag", + "32": "Overhemden", + "33": "Beddengoed", + "36": "Wassen+drogen", + "37": "Air Wash", + "38": "Katoen drogen", + "39": "Synthetisch drogen", + "66": "Spijkergoed", + "96": "Minder microvezels", + "1c": "Eco 40-60", + "1d": "Super Speed", + "1b": "Katoen", + "1e": "15' Quick Wash", + "2f": "Sportkleding", + "2e": "Babyverzorging", + "2d": "Stille was", + "8f": "Intensief koud", + "1f": "Intensief koud" + } + }, "washer_dry_level": { + "name": "Droogniveau", "state": { "30": "30 min", "60": "1 uur", @@ -151,68 +400,315 @@ "120": "2 uur", "180": "3 uur", "240": "4 uur", - "none": "Uit", + "none": "[%key:common::state::off%]", "cupboard": "Kastdroog" } } }, "sensor": { - "ice_making_status": { - "state": { - "icestatus_stop": "Inactief", - "icestatus_run": "IJs maken" - } + "air_filter_usage": { + "name": "Filterverbruik" + }, + "air_sensing_state": { + "name": "Status luchtmeting" + }, + "alarm_code": { + "name": "Alarmcode" + }, + "auto_ventilation_action": { + "name": "Actie automatische ventilatie" + }, + "automatic_ventilation_state": { + "name": "Status automatische ventilatie" + }, + "burner_state": { + "name": "Status brander {number}" + }, + "clean_level": { + "name": "Reinigingsniveau" }, "connection_mode": { + "name": "Verbindingsmodus", "state": { "observe": "Push (observeren)", "poll": "Polling" } }, + "cooktop_state": { + "name": "Status kookplaat" + }, + "current_limit_level": { + "name": "Niveau stroombegrenzing" + }, + "current_temp_c": { + "name": "[%key:component::sensor::entity_component::temperature::name%]" + }, + "diagnosis": { + "name": "Diagnose" + }, + "diagnosis_status": { + "name": "Diagnosestatus" + }, + "drum_clean_cycles_remaining": { + "name": "Trommelreiniging over" + }, + "drum_clean_last_cleaned": { + "name": "Trommel laatst gereinigd" + }, + "dry_level": { + "name": "Droogniveau" + }, + "dry_time": { + "name": "Droogtijd" + }, + "dryer_type": { + "name": "Type droger" + }, + "dust": { + "name": "Stof" + }, + "energy_kwh": { + "name": "[%key:component::sensor::entity_component::energy::name%]" + }, + "energy_last_month_kwh": { + "name": "Energie (vorige maand)" + }, + "energy_saved_kwh": { + "name": "Bespaarde energie" + }, + "energy_this_month_kwh": { + "name": "Energie (deze maand)" + }, + "fan_direction": { + "name": "Ventilatorrichting" + }, + "fan_speed_level": { + "name": "Ventilatorniveau" + }, + "filter_progress": { + "name": "Filterverbruik" + }, + "fine_dust": { + "name": "Fijnstof" + }, + "finish_time": { + "name": "Geschatte eindtijd" + }, + "freezer_temperature": { + "name": "Vriezertemperatuur" + }, + "fridge_temperature": { + "name": "Koelkasttemperatuur" + }, + "hood_filter_capacity": { + "name": "Filtercapaciteit" + }, + "hood_filter_usage": { + "name": "Filterverbruik" + }, + "instance_temperature": { + "name": "Temperatuur {instance_name}" + }, + "job_beginning_status": { + "name": "Status programmastart" + }, + "last_air_sensing_level": { + "name": "Laatste luchtmeetniveau" + }, + "last_air_sensing_time": { + "name": "Tijdstip laatste luchtmeting" + }, + "main_timer_current": { + "name": "Huidige timerwaarde" + }, + "main_timer_state": { + "name": "Timerstatus" + }, + "odor": { + "name": "Geur" + }, + "operating_mode": { + "name": "Werkingsmodus" + }, + "operation_origin": { + "name": "Bron laatste bediening" + }, + "operation_time_minutes": { + "name": "Werkingsduur" + }, + "oven_state": { + "name": "Status ovenruimte" + }, + "paired_hood_fan_speed": { + "name": "Ventilatorsnelheid gekoppelde afzuigkap" + }, + "paired_hood_firmware": { + "name": "Firmware gekoppelde afzuigkap" + }, + "paired_hood_model": { + "name": "Model gekoppelde afzuigkap" + }, + "power_energy_kwh": { + "name": "Energieverbruik" + }, + "power_watts": { + "name": "[%key:component::sensor::entity_component::power::name%]" + }, + "progress": { + "name": "Voortgang" + }, + "progress_percentage": { + "name": "Voortgangspercentage" + }, + "selfcheck_error": { + "name": "Fout zelfcontrole" + }, + "selfcheck_result": { + "name": "Resultaat zelfcontrole" + }, + "selfcheck_status": { + "name": "Status zelfcontrole" + }, + "super_fine_dust": { + "name": "Ultrafijnstof" + }, + "water_liters": { + "name": "Waterverbruik" + }, "machine_state": { + "name": "Machinestatus", "state": { - "idle": "Inactief", - "active": "Actief", + "idle": "[%key:common::state::idle%]", + "active": "[%key:common::state::active%]", "pause": "Gepauzeerd" } }, - "air_filter_status": { + "filter_status": { + "name": "Filterstatus", "state": { - "normal": "Normaal", - "wash": "Wassen", + "normal": "[%key:common::state::normal%]", + "wash": "Reinigen", "replace": "Vervangen" } + }, + "ice_making_status": { + "name": "{instance_name} ijsmaakstatus", + "state": { + "icestatus_stop": "[%key:common::state::idle%]", + "icestatus_run": "IJs maken" + } } }, - "climate": { - "airconditioner": { - "state_attributes": { - "fan_mode": { - "state": { - "auto": "Automatisch", - "low": "Laag", - "medium": "Gemiddeld", - "high": "Hoog", - "turbo": "Turbo" - } - }, - "swing_mode": { - "state": { - "off": "Vast", - "both": "Alle richtingen", - "vertical": "Omhoog en omlaag" - } - }, - "preset_mode": { - "state": { - "none": "Uit", - "sleep": "Slaap", - "quiet": "Stil", - "smart": "Slim", - "speed": "Snel" - } - } - } + "switch": { + "ai_energy_level": { + "name": "AI Energy Mode" + }, + "air_purify": { + "name": "Luchtzuivering" + }, + "auto_clean": { + "name": "Automatisch reinigen" + }, + "auto_door_opener": { + "name": "Automatische deuropener" + }, + "auto_release_dry": { + "name": "Auto Release Dry" + }, + "autofill": { + "name": "Automatisch gevulde waterkan" + }, + "bubble_soak": { + "name": "Bubble Soak" + }, + "cabinet_light_dim": { + "name": "Geleidelijk feller" + }, + "cabinet_light_switch": { + "name": "Kastverlichting" + }, + "child_lock": { + "name": "Kinderslot" + }, + "defrost_delay": { + "name": "Ontdooien uitstellen" + }, + "display_light": { + "name": "Displayverlichting" + }, + "fast_preheat": { + "name": "Snel voorverwarmen" + }, + "fridge_sound": { + "name": "Geluid" + }, + "ice_maker_enabled": { + "name": "IJsmaker" + }, + "ice_night_mode": { + "name": "Stille nachtmodus ijsmaker" + }, + "instance_enabled": { + "name": "{instance_name} ingeschakeld" + }, + "intensive": { + "name": "Intensive" + }, + "lamp": { + "name": "Lamp" + }, + "led_night_light": { + "name": "Nachtverlichting deur-LED" + }, + "mute_once": { + "name": "Eenmalig dempen" + }, + "natural_steam": { + "name": "Natuurlijke stoom" + }, + "power_switch": { + "name": "Voeding" + }, + "pre_wash": { + "name": "Voorwas" + }, + "rapid_freezing": { + "name": "Snelvriezen" + }, + "rapid_fridge": { + "name": "Snelkoelen" + }, + "sabbath_mode": { + "name": "Sabbatmodus" + }, + "sanitize": { + "name": "Hygiëne" + }, + "sound": { + "name": "Geluid" + }, + "storm_wash": { + "name": "Storm Wash+" + }, + "welcome_lighting": { + "name": "Welkomstverlichting" + }, + "wrinkle_prevent": { + "name": "Kreukpreventie" + } + }, + "time": { + "led_night_end": { + "name": "Einde nachtverlichting deur-LED" + }, + "led_night_start": { + "name": "Start nachtverlichting deur-LED" + }, + "night_end": { + "name": "Einde nachtverlichting" + }, + "night_start": { + "name": "Start nachtverlichting" } } }, @@ -220,7 +716,7 @@ "step": { "user": { "title": "Samsung-apparaat toevoegen", - "description": "Voer het IP-adres van je Samsung-apparaat en de AC14K_M-CA-inloggegevens in waarmee apparaatcertificaten worden aangemaakt. {reuse_note}", + "description": "Voer het IP-adres van je Samsung-apparaat en de AC14K_M-CA-inloggegevens in waarmee apparaatcertificaten worden aangemaakt.", "data": { "host": "IP-adres", "ca_cert_pem": "CA-certificaat (PEM)", @@ -232,9 +728,23 @@ "ca_key_pem": "De PEM-gecodeerde AC14K_M-privésleutel. Plak de volledige inhoud, inclusief de kop- en voettekst BEGIN PRIVATE KEY en END PRIVATE KEY." } }, + "user_reuse": { + "title": "Samsung-apparaat toevoegen", + "description": "Voer het IP-adres van je Samsung-apparaat in. De CA-inloggegevens van een bestaand LocalThings-apparaat worden hergebruikt.", + "data": { + "host": "IP-adres" + }, + "data_description": { + "host": "Het lokale IP-adres van je Samsung-apparaat (bijvoorbeeld 192.168.1.50)." + } + }, "confirm_unknown_type": { "title": "Apparaattype niet herkend", "description": "Dit apparaat meldt oneUiVersion \"{one_ui_version}\", wat niet als apparaattype wordt herkend. Het apparaat wordt toch toegevoegd, maar alleen met algemene mogelijkheden (zoals voeding en alarmen, voor zover aanwezig), in plaats van alle mogelijkheden voor deze apparaatfamilie. Je kunt daarna helpen volledige ondersteuning toe te voegen door diagnostische gegevens voor dit apparaat te downloaden (Instellingen > Apparaten & diensten > dit apparaat > het menu > Diagnostische gegevens downloaden) en deze bij een nieuw issue te voegen. Kies Verzenden om het apparaat toch toe te voegen." + }, + "confirm_unknown_type_no_version": { + "title": "Apparaattype niet herkend", + "description": "Dit apparaat meldt geen oneUiVersion en het apparaattype kon niet worden herkend. Het apparaat wordt toch toegevoegd, maar alleen met algemene mogelijkheden (zoals voeding en alarmen, voor zover aanwezig), in plaats van alle mogelijkheden voor deze apparaatfamilie. Je kunt daarna helpen volledige ondersteuning toe te voegen door diagnostische gegevens voor dit apparaat te downloaden (Instellingen > Apparaten & diensten > dit apparaat > het menu > Diagnostische gegevens downloaden) en deze bij een nieuw issue te voegen. Kies Verzenden om het apparaat toch toe te voegen." } }, "error": { @@ -243,7 +753,7 @@ "unknown": "Onverwachte fout. Raadpleeg de Home Assistant-logboeken voor meer informatie." }, "abort": { - "already_configured": "Dit apparaat is al geconfigureerd." + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "options": { @@ -259,7 +769,7 @@ "title": "Schrijfinstellingen voor afstandsbediening", "description": "Sommige apparaten accepteren bepaalde schrijfbewerkingen (bijvoorbeeld de standaarddosering van wasmiddel of wasverzachter op een wasmachine), ook als ze melden dat de afstandsbediening is uitgeschakeld. LocalThings blokkeert standaard elke schrijfbewerking met een duidelijke foutmelding wanneer een apparaat meldt dat de afstandsbediening is uitgeschakeld, in plaats van het apparaat de opdracht stilzwijgend te laten weigeren. Schakel deze optie alleen in als je hebt bevestigd dat schrijfbewerkingen op dit apparaat echt werken wanneer de afstandsbediening is uitgeschakeld. Anders verruil je de duidelijke foutmelding voor een stille mislukking.", "data": { - "bypass_remote_control_lock": "Schrijfbewerkingen toestaan wanneer de afstandsbediening als uitgeschakeld wordt gemeld" + "bypass_remote_control_lock": "Schrijfbewerkingen toestaan wanneer afstandsbediening als uitgeschakeld wordt gemeld" } }, "debug_write": { @@ -298,5 +808,25 @@ "title": "Onvolledige ondersteuning van mogelijkheden voor {device_name}", "description": "Niet alle mogelijkheden van dit apparaat worden ondersteund. Het apparaattype is niet herkend of sommige beschikbare resources zijn nog niet gemodelleerd. Het apparaat blijft werken met de mogelijkheden die al worden ondersteund. Je kunt helpen de ondersteuning uit te breiden: ga naar Instellingen > Apparaten & diensten > {device_name} > het menu (rechtsboven) > Diagnostische gegevens downloaden en voeg het bestand daarna bij via de gekoppelde issue-template." } + }, + "exceptions": { + "remote_control_disabled": { + "message": "Afstandsbediening is uitgeschakeld op dit apparaat. Raadpleeg de handleiding van je apparaat om afstandsbediening in te schakelen voordat Home Assistant het kan bedienen." + }, + "debug_payload_empty": { + "message": "De payload voor de schrijfbewerking voor foutopsporing moet een niet-leeg object zijn." + }, + "resource_href_required": { + "message": "Een resource-href is vereist." + }, + "bubble_soak_unavailable_for_cycle": { + "message": "Bubble Soak is niet beschikbaar voor het geselecteerde programma." + }, + "pre_wash_unavailable_for_cycle": { + "message": "Voorwas is niet beschikbaar voor het geselecteerde programma." + }, + "intensive_unavailable_for_cycle": { + "message": "Intensief is niet beschikbaar voor het geselecteerde programma." + } } } From b85af10ae1573fbe08fdb88c878433ed8cddd218 Mon Sep 17 00:00:00 2001 From: Hmmbob <33529490+hmmbob@users.noreply.github.com> Date: Fri, 24 Jul 2026 18:08:29 +0200 Subject: [PATCH 04/15] Test translation coverage and dynamic fallbacks --- tests/localthings/test_config_flow.py | 34 +++++++ tests/localthings/test_coordinator.py | 8 +- tests/test_dryer_capabilities.py | 2 +- tests/test_entity_naming.py | 41 +++++---- tests/test_laundry_capabilities.py | 25 ++--- tests/test_select_display.py | 9 ++ tests/test_select_options.py | 26 ++++++ tests/test_translations.py | 127 ++++++++++++++++++++++++++ tests/test_washer_capabilities.py | 29 +++--- 9 files changed, 252 insertions(+), 49 deletions(-) create mode 100644 tests/test_translations.py diff --git a/tests/localthings/test_config_flow.py b/tests/localthings/test_config_flow.py index bc7de8b..0f4fee5 100644 --- a/tests/localthings/test_config_flow.py +++ b/tests/localthings/test_config_flow.py @@ -38,6 +38,7 @@ async def test_form_second_device_reuses_creds(hass: HomeAssistant) -> None: DOMAIN, context={'source': 'user'} ) assert result['type'] == FlowResultType.FORM + assert result['step_id'] == 'user_reuse' assert CONF_CA_CERT_PEM not in result['data_schema'].schema assert CONF_CA_KEY_PEM not in result['data_schema'].schema @@ -219,6 +220,39 @@ async def test_unknown_type_shows_confirmation_step( assert result['data'][CONF_HOST] == MOCK_HOST +async def test_unknown_type_without_version_uses_localized_step( + hass: HomeAssistant, +) -> None: + """No English placeholder sentinel leaks into a translated description.""" + probe_result = { + 'port': MOCK_PORT, + 'serial': MOCK_SERIAL, + 'leaf_cert_pem': 'leaf cert', + 'leaf_key_pem': 'leaf key', + 'one_ui_version': '', + 'device_type_recognized': False, + } + with patch( + 'custom_components.localthings.config_flow._probe_and_validate', + return_value=probe_result, + ): + result = await hass.config_entries.flow.async_init( + DOMAIN, context={'source': 'user'} + ) + result = await hass.config_entries.flow.async_configure( + result['flow_id'], + { + CONF_HOST: MOCK_HOST, + CONF_CA_CERT_PEM: MOCK_CA_CERT_PEM, + CONF_CA_KEY_PEM: MOCK_CA_KEY_PEM, + }, + ) + + assert result['type'] == FlowResultType.FORM + assert result['step_id'] == 'confirm_unknown_type_no_version' + assert not result.get('description_placeholders') + + async def test_duplicate_device_aborted(hass: HomeAssistant, mock_probe) -> None: """Second add of same serial: flow aborts. diff --git a/tests/localthings/test_coordinator.py b/tests/localthings/test_coordinator.py index cd137e3..0a1b420 100644 --- a/tests/localthings/test_coordinator.py +++ b/tests/localthings/test_coordinator.py @@ -914,9 +914,12 @@ async def test_send_command_blocked_when_remote_control_disabled( with patch.object(fake, 'subscribe'): fake.post = _post - with pytest.raises(ServiceValidationError, match="Remote control is turned off"): + with pytest.raises(ServiceValidationError) as exc_info: await coordinator.async_send_command(bound, 5) + assert exc_info.value.translation_domain == DOMAIN + assert exc_info.value.translation_key == 'remote_control_disabled' + assert posted is False @@ -977,8 +980,9 @@ async def test_send_command_remote_control_check_precedes_validate_fn( desc = SwitchDesc(key='test', field='value', write_fn=_write_fn, validate_fn=_validate_fn) bound = BoundEntity(href='/test/vs/0', capability=coordinator.bound[0].capability, desc=desc) - with pytest.raises(ServiceValidationError, match="Remote control is turned off"): + with pytest.raises(ServiceValidationError) as exc_info: await coordinator.async_send_command(bound, 'On') + assert exc_info.value.translation_key == 'remote_control_disabled' async def test_send_command_bypasses_remote_control_when_option_enabled( diff --git a/tests/test_dryer_capabilities.py b/tests/test_dryer_capabilities.py index a6885cc..f2e25a9 100644 --- a/tests/test_dryer_capabilities.py +++ b/tests/test_dryer_capabilities.py @@ -69,7 +69,7 @@ def test_course_bound_to_shared_course_vs_0(): assert callable(desc.translation_key) table_03 = {'/st/dryercourse/vs/0': {'x.com.samsung.da.st.courseTable': 'Table_03'}} assert desc.translation_key(table_03) == 'dryer_cycle_table_03' - assert desc.translation_key({}) is None + assert desc.translation_key({}) == 'cycle' assert desc.options is laundry.cycle_options rep = {'x.com.samsung.da.options': ['Course_16', 'GMT_02']} assert desc.rep_fn(rep) == '16' diff --git a/tests/test_entity_naming.py b/tests/test_entity_naming.py index 1b9bacf..44b73d4 100644 --- a/tests/test_entity_naming.py +++ b/tests/test_entity_naming.py @@ -1,7 +1,4 @@ -"""Tests for LocalThingsEntity's display-name derivation -(custom_components/localthings/entity.py) -- the explicit-name, -device-given-instance-name, and href-derived fallbacks. -""" +"""Tests for translated entity naming and dynamic instance placeholders.""" from custom_components.localthings.entity import LocalThingsEntity from custom_components.localthings.registry.capability import Capability from custom_components.localthings.registry.discovery import BoundEntity @@ -23,23 +20,35 @@ def _make_entity(desc, href='/x/vs/0', key_override=None, instance='', instance_ return LocalThingsEntity(_FakeCoordinator(), bound) -def test_explicit_name_wins_over_everything(): - desc = BinarySensorDesc(key='enabled', name='Explicit Name') +def test_explicit_fallback_name_uses_translation_instead_of_attr_name(): + """An _attr_name would take precedence over HA's translation catalog.""" + desc = BinarySensorDesc(key='enabled', name='Explicit name') entity = _make_entity(desc, instance_name='Cubed Ice') - assert entity._attr_name == 'Explicit Name' + assert entity.translation_key == 'enabled' + assert not hasattr(entity, '_attr_name') -def test_instance_name_prefixes_the_derived_suffix(): - """Issue #27: an ice maker's device-given name ("Cubed Ice") replaces - the href-derived instance label ("Icemaker One") as the name prefix, - keeping the same entity-specific suffix.""" - desc = BinarySensorDesc(key='enabled') +def test_device_instance_name_becomes_translation_placeholder(): + desc = BinarySensorDesc( + key='enabled', translation_key='instance_enabled', use_instance_name=True + ) entity = _make_entity(desc, key_override='icemaker_one_enabled', instance_name='Cubed Ice') - assert entity._attr_name == 'Cubed Ice Enabled' + assert entity.translation_key == 'instance_enabled' + assert entity.translation_placeholders == {'instance_name': 'Cubed Ice'} + assert not hasattr(entity, '_attr_name') -def test_no_instance_name_falls_back_to_derived_state_key(): - desc = BinarySensorDesc(key='enabled') +def test_href_instance_name_becomes_translation_placeholder(): + desc = BinarySensorDesc( + key='enabled', translation_key='instance_enabled', use_instance_name=True + ) entity = _make_entity(desc, key_override='icemaker_one_enabled') - assert entity._attr_name == 'Icemaker One Enabled' + assert entity.translation_placeholders == {'instance_name': 'Icemaker One'} + + +def test_untranslated_vendor_entity_keeps_readable_fallback_name(): + desc = BinarySensorDesc(key='vendor_feature') + entity = _make_entity(desc, key_override='vendor_feature_1') + assert entity.translation_key is None + assert entity._attr_name == 'Vendor Feature 1' diff --git a/tests/test_laundry_capabilities.py b/tests/test_laundry_capabilities.py index a9ea555..c123410 100644 --- a/tests/test_laundry_capabilities.py +++ b/tests/test_laundry_capabilities.py @@ -173,11 +173,9 @@ class TestCycleSelectTableGating: codes aren't guaranteed consistent across board generations sharing the same /course/vs/0 contract; FlexWash's older board reports a different course table than every device the shipped translations - were confirmed against). The resolved key is built from whatever table - the device actually reports -- a table with no strings.json entries - yet just falls through Home Assistant's own missing-translation - handling to raw-code display, the same as any individual untranslated - code within an existing table.""" + were confirmed against). The resolved key is built from a reported + table id. Devices without one use the generic translated Cycle entity + name while preserving raw option codes as a safe fallback.""" def _desc(self): return laundry.cycle_select( @@ -198,20 +196,17 @@ class TestCycleSelectTableGating: assert callable(desc.translation_key) assert desc.translation_key(resources) == 'washer_cycle_table_02' - def test_resolved_key_reflects_an_unbuilt_table_too(self): - """No gating against a hardcoded 'known good' table -- a table we - haven't shipped translations for yet still gets a key built for - it, just one strings.json has nothing under (raw-code display).""" + def test_untranslated_table_uses_generic_cycle_key(self): + """An unknown table does not claim another board's state labels.""" desc = self._desc() resources = {'/st/washercourse/vs/0': {'x.com.samsung.da.st.courseTable': 'Table_00'}} - assert desc.translation_key(resources) == 'washer_cycle_table_00' + assert desc.translation_key(resources) == 'cycle' - def test_resolves_to_none_when_table_id_is_unknown(self): - """No href, or an empty rep, gets no translation_key at all -- - there's nothing to build a key from.""" + def test_resolves_to_generic_cycle_when_table_id_is_unknown(self): + """An absent table id still gets a translated generic entity name.""" desc = self._desc() - assert desc.translation_key({}) is None - assert desc.translation_key({'/st/washercourse/vs/0': {}}) is None + assert desc.translation_key({}) == 'cycle' + assert desc.translation_key({'/st/washercourse/vs/0': {}}) == 'cycle' class TestBuzzerSound: diff --git a/tests/test_select_display.py b/tests/test_select_display.py index bfc03df..3476c9a 100644 --- a/tests/test_select_display.py +++ b/tests/test_select_display.py @@ -34,5 +34,14 @@ def test_display_lowercases_for_translation_key_lookup(): assert _display('Whiskey_IceBall_3', _TRANSLATED) == 'whiskey_iceball_3' +def test_unknown_translated_vendor_value_keeps_readable_fallback(): + """A firmware-added value must remain readable instead of being mangled.""" + assert _display('FutureVendorMode', _TRANSLATED) == 'Future Vendor Mode' + + +def test_known_camel_case_state_uses_snake_case_translation_key(): + assert _display('ExtraHigh', 'heated_dry') == 'extra_high' + + def test_display_passes_through_non_string_values(): assert _display(None, _UNTRANSLATED) is None diff --git a/tests/test_select_options.py b/tests/test_select_options.py index 293cc41..6a64719 100644 --- a/tests/test_select_options.py +++ b/tests/test_select_options.py @@ -74,3 +74,29 @@ def test_callable_translation_key_reresolves_live_not_once_at_construction(): resources['key'] = 'washer_cycle_table_02' assert entity.translation_key == 'washer_cycle_table_02' + + +async def test_unknown_vendor_option_round_trips_to_exact_raw_value(): + """Readable fallback labels must still write the exact Samsung token.""" + class _WritableCoordinator(_FakeCoordinator): + data = {'mode': 'FutureVendorMode'} + + def __init__(self, last_resources): + super().__init__(last_resources) + self.writes = [] + + async def async_send_command(self, bound, value): + self.writes.append(value) + + desc = SelectDesc( + key='mode', name='Mode', translation_key='door_alert', + options=('Known', 'FutureVendorMode'), write_fn=lambda *args: None, + ) + capability = Capability(href='/x/vs/0', entities=(desc,)) + bound = BoundEntity(href='/x/vs/0', capability=capability, desc=desc) + coordinator = _WritableCoordinator({}) + entity = LocalThingsSelect(coordinator, bound) + + assert entity.options[-1] == 'Future Vendor Mode' + await entity.async_select_option('Future Vendor Mode') + assert coordinator.writes == ['FutureVendorMode'] diff --git a/tests/test_translations.py b/tests/test_translations.py new file mode 100644 index 0000000..ab94b81 --- /dev/null +++ b/tests/test_translations.py @@ -0,0 +1,127 @@ +"""Translation architecture and catalog synchronization tests.""" + +from __future__ import annotations + +import importlib +import json +from pathlib import Path +from string import Formatter + +from custom_components.localthings.registry.capability import Capability +from custom_components.localthings.registry.entities import PLATFORM_OF +from custom_components.localthings.select import TRANSLATED_SELECT_STATES + + +INTEGRATION = ( + Path(__file__).parents[1] / "custom_components" / "localthings" +) + + +def _load(name: str) -> dict: + return json.loads((INTEGRATION / name).read_text(encoding="utf-8")) + + +def _topology(value): + if isinstance(value, dict): + return {key: _topology(child) for key, child in value.items()} + if isinstance(value, list): + return [_topology(child) for child in value] + return None + + +def _placeholders(value: str) -> set[str]: + return { + field_name + for _, field_name, _, _ in Formatter().parse(value) + if field_name is not None + } + + +def _walk_strings(value, path=()): + if isinstance(value, dict): + for key, child in value.items(): + yield from _walk_strings(child, (*path, key)) + elif isinstance(value, list): + for index, child in enumerate(value): + yield from _walk_strings(child, (*path, str(index))) + elif isinstance(value, str): + yield path, value + + +def _all_descriptions(): + capabilities_dir = INTEGRATION / "registry" / "capabilities" + seen: set[int] = set() + for module_path in capabilities_dir.glob("*.py"): + if module_path.stem == "__init__": + continue + module = importlib.import_module( + f"custom_components.localthings.registry.capabilities.{module_path.stem}" + ) + + def visit(value): + if isinstance(value, Capability): + if id(value) in seen: + return + seen.add(id(value)) + yield from value.entities + elif isinstance(value, (tuple, list, set)): + for child in value: + yield from visit(child) + + for value in vars(module).values(): + yield from visit(value) + + +def test_source_and_english_translation_are_identical(): + assert _load("strings.json") == _load("translations/en.json") + + +def test_english_and_dutch_catalog_topology_and_placeholders_match(): + english = _load("translations/en.json") + dutch = _load("translations/nl.json") + assert _topology(english) == _topology(dutch) + + dutch_strings = dict(_walk_strings(dutch)) + for path, value in _walk_strings(english): + assert _placeholders(value) == _placeholders(dutch_strings[path]), path + + +def test_every_translatable_descriptor_has_an_entity_catalog_entry(): + entity_strings = _load("strings.json")["entity"] + missing = [] + for desc in _all_descriptions(): + translation_key = desc.translation_key + if callable(translation_key): + # Runtime table resolvers use the generic name-only fallback plus + # the static tables currently documented by this integration. + continue + if translation_key is None and desc.name is not None: + translation_key = desc.key + if translation_key is None: + continue # Main fan entity: device name + HA fan translations. + platform = PLATFORM_OF[type(desc)] + if translation_key not in entity_strings.get(platform, {}): + missing.append((platform, desc.key, translation_key)) + assert missing == [] + + select_strings = entity_strings["select"] + for key in ("cycle", "washer_cycle_table_02", "dryer_cycle_table_03"): + assert key in select_strings + + +def test_select_state_normalization_is_synchronized_with_catalog(): + select_strings = _load("strings.json")["entity"]["select"] + translated = { + key: frozenset(value["state"]) + for key, value in select_strings.items() + if "state" in value + } + assert TRANSLATED_SELECT_STATES == translated + + +def test_all_entity_state_translation_keys_are_lowercase(): + entity_strings = _load("strings.json")["entity"] + for platform in entity_strings.values(): + for translation in platform.values(): + for state_key in translation.get("state", {}): + assert state_key == state_key.lower() diff --git a/tests/test_washer_capabilities.py b/tests/test_washer_capabilities.py index 8e2005f..f467072 100644 --- a/tests/test_washer_capabilities.py +++ b/tests/test_washer_capabilities.py @@ -64,16 +64,15 @@ class TestWasherCourse: """Table-scoped (issue: course codes aren't guaranteed consistent across board generations sharing /course/vs/0 -- FlexWash's older board reports Table_00, not the Table_02 every washer_cycle_table_02 - name was confirmed against) -- see laundry.cycle_select. The key is - built from whatever table the device reports, not gated against a - hardcoded 'known good' value.""" + name was confirmed against) -- see laundry.cycle_select. Only a + verified table gets table-specific state translations.""" desc = next(e for e in washer.WASHER_COURSE.entities if e.key == 'cycle') assert callable(desc.translation_key) table_02 = {'/st/washercourse/vs/0': {'x.com.samsung.da.st.courseTable': 'Table_02'}} assert desc.translation_key(table_02) == 'washer_cycle_table_02' table_00 = {'/st/washercourse/vs/0': {'x.com.samsung.da.st.courseTable': 'Table_00'}} - assert desc.translation_key(table_00) == 'washer_cycle_table_00' - assert desc.translation_key({}) is None + assert desc.translation_key(table_00) == 'cycle' + assert desc.translation_key({}) == 'cycle' def test_reads_raw_course_code_from_options_array(self): """rep_fn returns the raw device code; display names come from @@ -206,14 +205,11 @@ class TestDetergentSoftenerDosing: assert self._desc('detergent_quantity').rep_fn(rep) == '7' def test_translation_keys(self): - """detergent_quantity and softener_quantity share one translation_key - (same 00-03 -> None/Low/Medium/High vocabulary on both dispensers, - same shape as fridge.py's shared 'brightness_level' key); hardness - and concentration each have their own since their labels differ.""" - assert self._desc('detergent_quantity').translation_key == 'washer_dosing_quantity' - assert self._desc('softener_quantity').translation_key == 'washer_dosing_quantity' - assert self._desc('detergent_water_hardness').translation_key == 'washer_detergent_water_hardness' - assert self._desc('softener_concentration').translation_key == 'washer_softener_concentration' + """Each entity gets its own translated name and state vocabulary.""" + assert self._desc('detergent_quantity').translation_key == 'detergent_quantity' + assert self._desc('softener_quantity').translation_key == 'softener_quantity' + assert self._desc('detergent_water_hardness').translation_key == 'detergent_water_hardness' + assert self._desc('softener_concentration').translation_key == 'softener_concentration' def test_quantity_and_hardness_options_decode_supported_list(self): assert self._desc('detergent_quantity').options(_DOSING_RESOURCES) == ['00', '01', '02', '03'] @@ -359,8 +355,11 @@ class TestWashOptionToggleValidation: def test_rejected_on_an_unsupported_course(self): rep = {'x.com.samsung.da.options': ['Course_1C', _BUBBLE_SOAK_SET]} - msg = self._desc('bubble_soak').validate_fn('On', rep, _EDIT_COURSE_RESOURCES) - assert msg == "Bubble soak isn't available on the selected cycle." + issue = self._desc('bubble_soak').validate_fn( + 'On', rep, _EDIT_COURSE_RESOURCES + ) + assert issue.translation_key == 'bubble_soak_unavailable_for_cycle' + assert issue.translation_placeholders == {} def test_pre_wash_and_intensive_use_their_own_availableset_field(self): rep = {'x.com.samsung.da.options': ['Course_30', _PRE_WASH_AVAILABLE_SET]} From da49825e2e3750e225af0d754ebbc758ba9b7372 Mon Sep 17 00:00:00 2001 From: Hmmbob <33529490+hmmbob@users.noreply.github.com> Date: Fri, 24 Jul 2026 18:12:01 +0200 Subject: [PATCH 05/15] Harden unknown vendor value fallbacks --- custom_components/localthings/entity.py | 6 +++++- custom_components/localthings/select.py | 10 ++++++++-- custom_components/localthings/strings.json | 3 +++ custom_components/localthings/translations/en.json | 3 +++ custom_components/localthings/translations/nl.json | 3 +++ tests/test_select_display.py | 2 +- tests/test_select_options.py | 2 +- 7 files changed, 24 insertions(+), 5 deletions(-) diff --git a/custom_components/localthings/entity.py b/custom_components/localthings/entity.py index 84501b4..634f631 100644 --- a/custom_components/localthings/entity.py +++ b/custom_components/localthings/entity.py @@ -43,7 +43,11 @@ def _derive_name(state_key: str) -> str: Strips a trailing instance number of 0 (singleton), promotes any other instance number with a space: "door_cooler_open1" → "Door Cooler Open 1". """ - name = re.sub(r'(\d+)$', lambda m: f' {m.group()}' if int(m.group()) > 0 else '', state_key) + name = re.sub( + r'_?(\d+)$', + lambda match: f' {match.group(1)}' if int(match.group(1)) > 0 else '', + state_key, + ) return _snake_to_title(name).strip() diff --git a/custom_components/localthings/select.py b/custom_components/localthings/select.py index c85cc95..2b0c62b 100644 --- a/custom_components/localthings/select.py +++ b/custom_components/localthings/select.py @@ -129,8 +129,14 @@ def _display(value, translation_key: Optional[str]): """ if not isinstance(value, str): return value - if translation_key and (translated := _translation_state(value, translation_key)): - return translated + if translation_key: + if translated := _translation_state(value, translation_key): + return translated + if translation_key not in TRANSLATED_SELECT_STATES: + # The entity name is translated, but this select deliberately has + # no static state catalog (for example an unknown course table). + # Keep its opaque device value untouched. + return value if value.islower(): return value.replace('_', ' ').title() return _CAMEL_BOUNDARY_RE.sub(' ', value) diff --git a/custom_components/localthings/strings.json b/custom_components/localthings/strings.json index 412cec0..c3860aa 100644 --- a/custom_components/localthings/strings.json +++ b/custom_components/localthings/strings.json @@ -488,6 +488,9 @@ "filter_progress": { "name": "Filter progress" }, + "filter_usage": { + "name": "Filter usage" + }, "fine_dust": { "name": "Fine dust" }, diff --git a/custom_components/localthings/translations/en.json b/custom_components/localthings/translations/en.json index 412cec0..c3860aa 100644 --- a/custom_components/localthings/translations/en.json +++ b/custom_components/localthings/translations/en.json @@ -488,6 +488,9 @@ "filter_progress": { "name": "Filter progress" }, + "filter_usage": { + "name": "Filter usage" + }, "fine_dust": { "name": "Fine dust" }, diff --git a/custom_components/localthings/translations/nl.json b/custom_components/localthings/translations/nl.json index 05510d0..4998fdd 100644 --- a/custom_components/localthings/translations/nl.json +++ b/custom_components/localthings/translations/nl.json @@ -488,6 +488,9 @@ "filter_progress": { "name": "Filterverbruik" }, + "filter_usage": { + "name": "Filtergebruik" + }, "fine_dust": { "name": "Fijnstof" }, diff --git a/tests/test_select_display.py b/tests/test_select_display.py index 3476c9a..a3e5ee3 100644 --- a/tests/test_select_display.py +++ b/tests/test_select_display.py @@ -2,7 +2,7 @@ from custom_components.localthings.select import _display _UNTRANSLATED = None -_TRANSLATED = 'door_alert' +_TRANSLATED = 'ice_type' def test_display_titlecases_a_fully_lowercase_device_native_token(): diff --git a/tests/test_select_options.py b/tests/test_select_options.py index 6a64719..b318a95 100644 --- a/tests/test_select_options.py +++ b/tests/test_select_options.py @@ -49,7 +49,7 @@ def test_callable_options_receives_full_resource_snapshot(): '/other/vs/0': {'codes': ['1C', '1D']}, } entity = _make_select(desc, '/x/vs/0', resources) - assert entity.options == ['1c', '1d'] + assert entity.options == ['1C', '1D'] assert calls == [resources] From 82acc05d389f2f6799397b45548b81ad7b56a4a4 Mon Sep 17 00:00:00 2001 From: Hmmbob <33529490+hmmbob@users.noreply.github.com> Date: Fri, 24 Jul 2026 18:40:44 +0200 Subject: [PATCH 06/15] Limit changes to translation support --- custom_components/localthings/__init__.py | 8 +++++--- custom_components/localthings/config_flow.py | 2 +- custom_components/localthings/coordinator.py | 17 ++++------------- custom_components/localthings/entity.py | 6 +----- .../localthings/registry/capabilities/washer.py | 4 ++-- .../localthings/registry/entities.py | 16 +++------------- tests/test_entity_naming.py | 7 ------- tests/test_washer_capabilities.py | 5 ++--- 8 files changed, 18 insertions(+), 47 deletions(-) diff --git a/custom_components/localthings/__init__.py b/custom_components/localthings/__init__.py index 88a2ddb..1d35120 100644 --- a/custom_components/localthings/__init__.py +++ b/custom_components/localthings/__init__.py @@ -5,6 +5,7 @@ import logging from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant +from homeassistant.exceptions import ConfigEntryNotReady from .const import DOMAIN, PLATFORMS from .coordinator import LocalThingsCoordinator @@ -15,9 +16,10 @@ _LOGGER = logging.getLogger(__name__) async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: hass.data.setdefault(DOMAIN, {}) coordinator = LocalThingsCoordinator(hass, entry) - # DataUpdateCoordinator already raises ConfigEntryNotReady with the - # underlying update context; avoid replacing it with hardcoded UI text. - await coordinator.async_config_entry_first_refresh() + try: + await coordinator.async_config_entry_first_refresh() + except Exception as err: + raise ConfigEntryNotReady(f"Cannot connect to device: {err}") from err hass.data[DOMAIN][entry.entry_id] = coordinator await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) return True diff --git a/custom_components/localthings/config_flow.py b/custom_components/localthings/config_flow.py index f773f9d..664f170 100644 --- a/custom_components/localthings/config_flow.py +++ b/custom_components/localthings/config_flow.py @@ -316,7 +316,7 @@ class LocalThingsConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): def _create_entry(self, info: dict) -> FlowResult: return self.async_create_entry( - title=f"Samsung ({self._host})", + title=f"Samsung Appliance ({self._host})", data={ CONF_HOST: self._host, CONF_PORT: info["port"], diff --git a/custom_components/localthings/coordinator.py b/custom_components/localthings/coordinator.py index 7a63d04..c00dcb1 100644 --- a/custom_components/localthings/coordinator.py +++ b/custom_components/localthings/coordinator.py @@ -24,7 +24,6 @@ from .registry.batch import parse_device0_batch from .registry.by_type import for_device, for_device_by_model, for_device_by_resources from .registry.capabilities.common import remote_control_enabled from .registry.discovery import discover, BoundEntity -from .registry.entities import ValidationIssue from .registry import CAPABILITIES from .registry.adapter import flatten from .registry.identity import read_identity, DeviceIdentity @@ -105,7 +104,7 @@ class LocalThingsCoordinator(DataUpdateCoordinator[dict[str, Any]]): self.device_serial = entry.data[CONF_HOST] # placeholder until first poll self.device_info = DeviceInfo( identifiers={(DOMAIN, entry.data[CONF_HOST])}, - name=f"Samsung ({entry.data[CONF_HOST]})", + name=f"Samsung Appliance ({entry.data[CONF_HOST]})", manufacturer="Samsung", ) self._session_lock = asyncio.Lock() @@ -318,15 +317,10 @@ class LocalThingsCoordinator(DataUpdateCoordinator[dict[str, Any]]): self.device_serial = serial ident = self._identity + device_type = reg.name.replace('_', ' ').title() if reg else 'Appliance' model_num = info.get('x.com.samsung.da.modelNum', '') model = model_num.split('|', 1)[0] if model_num else (ident.model if ident else '') - # DeviceInfo has no translation mechanism. Prefer the appliance's own - # OCF name, then proper-noun/model fallbacks without an English family - # label. Existing device/entity registry IDs remain keyed by serial. - name = ( - (ident.name if ident else '') - or (f"Samsung {model}" if model else f"Samsung ({self._entry.data[CONF_HOST]})") - ) + name = f"Samsung {device_type} ({model})" if model else f"Samsung {device_type}" mfr = (ident.manufacturer if ident else '') or 'Samsung' self.device_info = DeviceInfo( @@ -555,12 +549,9 @@ class LocalThingsCoordinator(DataUpdateCoordinator[dict[str, Any]]): if validate_fn is not None: error = validate_fn(payload, rep, resources) if error: - if not isinstance(error, ValidationIssue): - raise TypeError("validate_fn must return ValidationIssue or None") raise ServiceValidationError( translation_domain=DOMAIN, - translation_key=error.translation_key, - translation_placeholders=dict(error.translation_placeholders), + translation_key=error, ) result = write_fn(payload, rep, href) if result is None: diff --git a/custom_components/localthings/entity.py b/custom_components/localthings/entity.py index 634f631..84501b4 100644 --- a/custom_components/localthings/entity.py +++ b/custom_components/localthings/entity.py @@ -43,11 +43,7 @@ def _derive_name(state_key: str) -> str: Strips a trailing instance number of 0 (singleton), promotes any other instance number with a space: "door_cooler_open1" → "Door Cooler Open 1". """ - name = re.sub( - r'_?(\d+)$', - lambda match: f' {match.group(1)}' if int(match.group(1)) > 0 else '', - state_key, - ) + name = re.sub(r'(\d+)$', lambda m: f' {m.group()}' if int(m.group()) > 0 else '', state_key) return _snake_to_title(name).strip() diff --git a/custom_components/localthings/registry/capabilities/washer.py b/custom_components/localthings/registry/capabilities/washer.py index 54ffaaa..006a5e1 100644 --- a/custom_components/localthings/registry/capabilities/washer.py +++ b/custom_components/localthings/registry/capabilities/washer.py @@ -16,7 +16,7 @@ array. from datetime import datetime, timezone from ..capability import Capability -from ..entities import BinarySensorDesc, SelectDesc, SensorDesc, ValidationIssue +from ..entities import BinarySensorDesc, SelectDesc, SensorDesc from .laundry import ( bool_option_exists, bool_option_switch, cycle_options, cycle_select, hex_pairs, option_value, replace_in_options, @@ -282,7 +282,7 @@ def _bool_option_switch(key, name, icon, prefix, availability_field): if len(pairs) != len(courses): return None if pairs[courses.index(current)] != 'F0': - return ValidationIssue(f"{key}_unavailable_for_cycle") + return f"{key}_unavailable_for_cycle" return None return bool_option_switch( diff --git a/custom_components/localthings/registry/entities.py b/custom_components/localthings/registry/entities.py index 1325e1d..19a7ec8 100644 --- a/custom_components/localthings/registry/entities.py +++ b/custom_components/localthings/registry/entities.py @@ -8,25 +8,15 @@ where a description declares one. """ from __future__ import annotations -from dataclasses import dataclass, field +from dataclasses import dataclass from typing import Any, Callable, Mapping, Optional WriteFn = Optional[Callable[[Any, dict], "tuple[list[str], dict] | None"]] -# (payload, rep, resources) -> a translatable rejection, or None to allow the +# (payload, rep, resources) -> a translation key, or None to allow the # write. resources is the coordinator's full href->rep snapshot, for the same # cross-resource lookups exists_fn needs (e.g. reading a sibling href's live # option list). - - -@dataclass(frozen=True) -class ValidationIssue: - """A user-facing, translatable rejection from a descriptor validator.""" - - translation_key: str - translation_placeholders: Mapping[str, str] = field(default_factory=dict) - - -ValidateFn = Optional[Callable[[Any, dict, dict], "ValidationIssue | None"]] +ValidateFn = Optional[Callable[[Any, dict, dict], "str | None"]] def _identity(v: Any) -> Any: diff --git a/tests/test_entity_naming.py b/tests/test_entity_naming.py index 44b73d4..fa1aa5e 100644 --- a/tests/test_entity_naming.py +++ b/tests/test_entity_naming.py @@ -45,10 +45,3 @@ def test_href_instance_name_becomes_translation_placeholder(): ) entity = _make_entity(desc, key_override='icemaker_one_enabled') assert entity.translation_placeholders == {'instance_name': 'Icemaker One'} - - -def test_untranslated_vendor_entity_keeps_readable_fallback_name(): - desc = BinarySensorDesc(key='vendor_feature') - entity = _make_entity(desc, key_override='vendor_feature_1') - assert entity.translation_key is None - assert entity._attr_name == 'Vendor Feature 1' diff --git a/tests/test_washer_capabilities.py b/tests/test_washer_capabilities.py index f467072..b8655ce 100644 --- a/tests/test_washer_capabilities.py +++ b/tests/test_washer_capabilities.py @@ -355,11 +355,10 @@ class TestWashOptionToggleValidation: def test_rejected_on_an_unsupported_course(self): rep = {'x.com.samsung.da.options': ['Course_1C', _BUBBLE_SOAK_SET]} - issue = self._desc('bubble_soak').validate_fn( + translation_key = self._desc('bubble_soak').validate_fn( 'On', rep, _EDIT_COURSE_RESOURCES ) - assert issue.translation_key == 'bubble_soak_unavailable_for_cycle' - assert issue.translation_placeholders == {} + assert translation_key == 'bubble_soak_unavailable_for_cycle' def test_pre_wash_and_intensive_use_their_own_availableset_field(self): rep = {'x.com.samsung.da.options': ['Course_30', _PRE_WASH_AVAILABLE_SET]} From 9cf1e46bf677832d31374eefde41ed7e93905978 Mon Sep 17 00:00:00 2001 From: Rob Martin Date: Fri, 24 Jul 2026 12:11:53 -0600 Subject: [PATCH 07/15] fix(fridge): stop switch turn-off silently sending 'On' Six fridge SwitchDesc write_fns built their payload with `'On' if p else 'Off'`. The switch platform passes the literal string 'Off' on turn-off, which is truthy, so the guard always produced 'On' -- turning these switches off silently re-sent On and they could never be turned off: - ICEMAKER_NIGHTTIME (ice.night.status) - STATUS_LOCK helper (devicecontrol + device.sound) - DEFROST_DELAY (delayDefrost) - WELCOME_LIGHTING (status) - CABINET_LIGHT dim (light.dimming.status) - ICEMAKER_STATUS_FALLBACK (iceMaker) Compare `p == 'On'` instead, matching the pattern the other capability files already use. Adds a regression test asserting every affected write_fn sends 'Off' on 'Off' and 'On' on 'On'. --- .../registry/capabilities/fridge.py | 12 +++---- tests/test_fridge_capabilities.py | 36 +++++++++++++++++++ 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/custom_components/localthings/registry/capabilities/fridge.py b/custom_components/localthings/registry/capabilities/fridge.py index 2f2589c..accde1c 100644 --- a/custom_components/localthings/registry/capabilities/fridge.py +++ b/custom_components/localthings/registry/capabilities/fridge.py @@ -92,7 +92,7 @@ ICEMAKER_NIGHTTIME = Capability( value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( ['icemaker', 'nighttime', 'vs', '0'], - {'ice.night.status': 'On' if p else 'Off'})), + {'ice.night.status': 'On' if p == 'On' else 'Off'})), ), ) @@ -168,7 +168,7 @@ DOOR_ALERT = Capability( def _status_lock_write(field): return lambda p, rep, href=None: ( ['status', 'lock', 'vs', '0'], - {field: 'On' if p else 'Off'} + {field: 'On' if p == 'On' else 'Off'} ) @@ -212,7 +212,7 @@ DEFROST_DELAY = Capability( value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( ['defrost', 'delay', 'vs', '0'], - {'x.com.samsung.da.delayDefrost': 'On' if p else 'Off'})), + {'x.com.samsung.da.delayDefrost': 'On' if p == 'On' else 'Off'})), ), ) @@ -300,7 +300,7 @@ WELCOME_LIGHTING = Capability( value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( ['proximity', 'vs', '0'], - {'status': 'On' if p else 'Off'})), + {'status': 'On' if p == 'On' else 'Off'})), ), ) @@ -440,7 +440,7 @@ CABINET_LIGHT = Capability( value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( ['cabinet', 'light', 'total', 'vs', '0'], - {'light.dimming.status': 'On' if p else 'Off'})), + {'light.dimming.status': 'On' if p == 'On' else 'Off'})), ), ) @@ -669,7 +669,7 @@ ICEMAKER_STATUS_FALLBACK = Capability( value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( ['icemaker', 'status', 'vs', '0'], - {'x.com.samsung.da.iceMaker': 'On' if p else 'Off'})), + {'x.com.samsung.da.iceMaker': 'On' if p == 'On' else 'Off'})), ), ) diff --git a/tests/test_fridge_capabilities.py b/tests/test_fridge_capabilities.py index 11dc501..d35f5d4 100644 --- a/tests/test_fridge_capabilities.py +++ b/tests/test_fridge_capabilities.py @@ -258,3 +258,39 @@ class TestRefrigeratorAiEnergyLevelFixtureCoverage: assert unbound == [] state = flatten(bound, resources) assert state['ai_energy_level'] == '1' + + +class TestSwitchOffIsNotInverted: + """Regression: several fridge SwitchDesc write_fns used ``'On' if p else 'Off'``. + + The switch platform passes the literal string ``'Off'`` on turn-off (and + ``'On'`` on turn-on). ``'Off'`` is a non-empty, truthy string, so + ``'On' if p else 'Off'`` always evaluated to ``'On'`` — turning the switch + OFF silently re-sent ``On`` and the switch could never be turned off. The + guard must compare ``p == 'On'`` (as the other capability files already do). + """ + + # (switch descriptor, payload key it writes) + CASES = [ + (fridge.ICEMAKER_NIGHTTIME.entities[0], 'ice.night.status'), + (fridge.STATUS_LOCK.entities[0], 'x.com.samsung.da.ado.devicecontrol'), + (fridge.STATUS_LOCK.entities[1], 'x.com.samsung.da.device.sound'), + (fridge.DEFROST_DELAY.entities[0], 'x.com.samsung.da.delayDefrost'), + (fridge.WELCOME_LIGHTING.entities[0], 'status'), + (fridge.CABINET_LIGHT.entities[1], 'light.dimming.status'), + (fridge.ICEMAKER_STATUS_FALLBACK.entities[0], 'x.com.samsung.da.iceMaker'), + ] + + def test_turning_off_sends_off(self): + for desc, key in self.CASES: + _segs, payload = desc.write_fn('Off', {}) + assert payload[key] == 'Off', ( + f"{desc.key}: OFF must send 'Off', got {payload[key]!r} (inverted)" + ) + + def test_turning_on_sends_on(self): + for desc, key in self.CASES: + _segs, payload = desc.write_fn('On', {}) + assert payload[key] == 'On', ( + f"{desc.key}: ON must send 'On', got {payload[key]!r}" + ) From 5d86dbe7e83c5bf8c005240dd999f642c1ab697f Mon Sep 17 00:00:00 2001 From: Hmmbob <33529490+hmmbob@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:13:07 +0200 Subject: [PATCH 08/15] Resolve runtime translation references --- .../localthings/translations/en.json | 86 +++++++++---------- .../localthings/translations/nl.json | 86 +++++++++---------- tests/test_translations.py | 22 ++++- 3 files changed, 106 insertions(+), 88 deletions(-) diff --git a/custom_components/localthings/translations/en.json b/custom_components/localthings/translations/en.json index c3860aa..b6a8dd2 100644 --- a/custom_components/localthings/translations/en.json +++ b/custom_components/localthings/translations/en.json @@ -20,7 +20,7 @@ "name": "Current limit enabled" }, "cycle_active": { - "name": "[%key:component::binary_sensor::entity_component::running::name%]" + "name": "Running" }, "defrost_active": { "name": "Defrost active" @@ -32,7 +32,7 @@ "name": "Device active" }, "door_open": { - "name": "[%key:component::binary_sensor::entity_component::door::name%]" + "name": "Door" }, "firmware_update": { "name": "Firmware update available" @@ -73,16 +73,16 @@ "name": "Start diagnosis" }, "pause": { - "name": "[%key:common::action::pause%]" + "name": "Pause" }, "selfcheck_start": { "name": "Start self-check" }, "start": { - "name": "[%key:common::action::start%]" + "name": "Start" }, "stop": { - "name": "[%key:common::action::stop%]" + "name": "Stop" } }, "climate": { @@ -134,24 +134,24 @@ "brightness_level": { "name": "Night brightness", "state": { - "33": "[%key:common::state::low%]", - "66": "[%key:common::state::medium%]", - "100": "[%key:common::state::high%]" + "33": "Low", + "66": "Medium", + "100": "High" } }, "day_brightness": { "name": "Cabinet brightness", "state": { - "33": "[%key:common::state::low%]", - "66": "[%key:common::state::medium%]", - "100": "[%key:common::state::high%]" + "33": "Low", + "66": "Medium", + "100": "High" } }, "buzzer_sound": { "name": "Buzzer sound", "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" + "off": "Off", + "on": "On" } }, "cycle": { @@ -161,16 +161,16 @@ "name": "Detergent quantity", "state": { "00": "None", - "01": "[%key:common::state::low%]", - "02": "[%key:common::state::medium%]", - "03": "[%key:common::state::high%]" + "01": "Low", + "02": "Medium", + "03": "High" } }, "detergent_water_hardness": { "name": "Detergent water hardness", "state": { "01": "Soft", - "02": "[%key:common::state::medium%]", + "02": "Medium", "03": "Hard" } }, @@ -220,8 +220,8 @@ "finish_sound": { "name": "Finish sound", "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" + "off": "Off", + "on": "On" } }, "flex_zone_mode": { @@ -242,16 +242,16 @@ "heated_dry": { "name": "Smart Dry", "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]", + "off": "Off", + "low": "Low", + "high": "High", "extra_high": "Extra high" } }, "ice_type": { "name": "{instance_name} type", "state": { - "off": "[%key:common::state::off%]", + "off": "Off", "whiskey_iceball_3": "3 balls/day", "whiskey_iceball_6": "6 balls/day", "whiskey_iceball_9": "9 balls/day" @@ -260,15 +260,15 @@ "led_brightness": { "name": "Door LED brightness", "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" + "low": "Low", + "high": "High" } }, "led_night_brightness": { "name": "Door LED night brightness", "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" + "low": "Low", + "high": "High" } }, "oven_mode": { @@ -297,7 +297,7 @@ "range_burner_power_level": { "name": "Burner {number} power level", "state": { - "0": "[%key:common::state::off%]", + "0": "Off", "boost": "Boost", "simmer": "Simmer" } @@ -324,9 +324,9 @@ "name": "Softener quantity", "state": { "00": "None", - "01": "[%key:common::state::low%]", - "02": "[%key:common::state::medium%]", - "03": "[%key:common::state::high%]" + "01": "Low", + "02": "Medium", + "03": "High" } }, "sound_mode": { @@ -342,9 +342,9 @@ "state": { "rinse_hold": "Rinse hold", "no_spin": "No spin", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" + "low": "Low", + "medium": "Medium", + "high": "High" } }, "wash_temperature": { @@ -400,7 +400,7 @@ "120": "2 hr", "180": "3 hr", "240": "4 hr", - "none": "[%key:common::state::off%]", + "none": "Off", "cupboard": "Cupboard" } } @@ -441,7 +441,7 @@ "name": "Current limit level" }, "current_temp_c": { - "name": "[%key:component::sensor::entity_component::temperature::name%]" + "name": "Temperature" }, "diagnosis": { "name": "Diagnosis" @@ -468,7 +468,7 @@ "name": "Dust" }, "energy_kwh": { - "name": "[%key:component::sensor::entity_component::energy::name%]" + "name": "Energy" }, "energy_last_month_kwh": { "name": "Energy (last month)" @@ -555,7 +555,7 @@ "name": "Power energy" }, "power_watts": { - "name": "[%key:component::sensor::entity_component::power::name%]" + "name": "Power" }, "progress": { "name": "Progress" @@ -581,15 +581,15 @@ "machine_state": { "name": "Machine state", "state": { - "idle": "[%key:common::state::idle%]", - "active": "[%key:common::state::active%]", + "idle": "Idle", + "active": "Active", "pause": "Paused" } }, "filter_status": { "name": "Filter status", "state": { - "normal": "[%key:common::state::normal%]", + "normal": "Normal", "wash": "Wash", "replace": "Replace" } @@ -597,7 +597,7 @@ "ice_making_status": { "name": "{instance_name} making status", "state": { - "icestatus_stop": "[%key:common::state::idle%]", + "icestatus_stop": "Idle", "icestatus_run": "Making ice" } } @@ -756,7 +756,7 @@ "unknown": "Unexpected error. Check the Home Assistant logs for details." }, "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "already_configured": "Device is already configured" } }, "options": { diff --git a/custom_components/localthings/translations/nl.json b/custom_components/localthings/translations/nl.json index 4998fdd..e9957e1 100644 --- a/custom_components/localthings/translations/nl.json +++ b/custom_components/localthings/translations/nl.json @@ -20,7 +20,7 @@ "name": "Stroombegrenzing ingeschakeld" }, "cycle_active": { - "name": "[%key:component::binary_sensor::entity_component::running::name%]" + "name": "Actief" }, "defrost_active": { "name": "Ontdooien actief" @@ -32,7 +32,7 @@ "name": "Apparaat actief" }, "door_open": { - "name": "[%key:component::binary_sensor::entity_component::door::name%]" + "name": "Deur" }, "firmware_update": { "name": "Firmware-update beschikbaar" @@ -73,16 +73,16 @@ "name": "Diagnose starten" }, "pause": { - "name": "[%key:common::action::pause%]" + "name": "Pauzeren" }, "selfcheck_start": { "name": "Zelfcontrole starten" }, "start": { - "name": "[%key:common::action::start%]" + "name": "Starten" }, "stop": { - "name": "[%key:common::action::stop%]" + "name": "Stoppen" } }, "climate": { @@ -134,24 +134,24 @@ "brightness_level": { "name": "Nachthelderheid", "state": { - "33": "[%key:common::state::low%]", - "66": "[%key:common::state::medium%]", - "100": "[%key:common::state::high%]" + "33": "Laag", + "66": "Gemiddeld", + "100": "Hoog" } }, "day_brightness": { "name": "Helderheid kast", "state": { - "33": "[%key:common::state::low%]", - "66": "[%key:common::state::medium%]", - "100": "[%key:common::state::high%]" + "33": "Laag", + "66": "Gemiddeld", + "100": "Hoog" } }, "buzzer_sound": { "name": "Zoemergeluid", "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" + "off": "Uit", + "on": "Aan" } }, "cycle": { @@ -161,16 +161,16 @@ "name": "Hoeveelheid wasmiddel", "state": { "00": "Geen", - "01": "[%key:common::state::low%]", - "02": "[%key:common::state::medium%]", - "03": "[%key:common::state::high%]" + "01": "Laag", + "02": "Gemiddeld", + "03": "Hoog" } }, "detergent_water_hardness": { "name": "Waterhardheid voor wasmiddel", "state": { "01": "Zacht", - "02": "[%key:common::state::medium%]", + "02": "Gemiddeld", "03": "Hard" } }, @@ -220,8 +220,8 @@ "finish_sound": { "name": "Eindgeluid", "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" + "off": "Uit", + "on": "Aan" } }, "flex_zone_mode": { @@ -242,16 +242,16 @@ "heated_dry": { "name": "Smart Dry", "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]", + "off": "Uit", + "low": "Laag", + "high": "Hoog", "extra_high": "Extra hoog" } }, "ice_type": { "name": "Type {instance_name}", "state": { - "off": "[%key:common::state::off%]", + "off": "Uit", "whiskey_iceball_3": "3 ijsballen per dag", "whiskey_iceball_6": "6 ijsballen per dag", "whiskey_iceball_9": "9 ijsballen per dag" @@ -260,15 +260,15 @@ "led_brightness": { "name": "Helderheid deur-LED", "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" + "low": "Laag", + "high": "Hoog" } }, "led_night_brightness": { "name": "Nachtelijke helderheid deur-LED", "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" + "low": "Laag", + "high": "Hoog" } }, "oven_mode": { @@ -297,7 +297,7 @@ "range_burner_power_level": { "name": "Vermogensniveau brander {number}", "state": { - "0": "[%key:common::state::off%]", + "0": "Uit", "boost": "Boost", "simmer": "Sudderen" } @@ -324,9 +324,9 @@ "name": "Hoeveelheid wasverzachter", "state": { "00": "Geen", - "01": "[%key:common::state::low%]", - "02": "[%key:common::state::medium%]", - "03": "[%key:common::state::high%]" + "01": "Laag", + "02": "Gemiddeld", + "03": "Hoog" } }, "sound_mode": { @@ -342,9 +342,9 @@ "state": { "rinse_hold": "Spoelstop", "no_spin": "Niet centrifugeren", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" + "low": "Laag", + "medium": "Gemiddeld", + "high": "Hoog" } }, "wash_temperature": { @@ -400,7 +400,7 @@ "120": "2 uur", "180": "3 uur", "240": "4 uur", - "none": "[%key:common::state::off%]", + "none": "Uit", "cupboard": "Kastdroog" } } @@ -441,7 +441,7 @@ "name": "Niveau stroombegrenzing" }, "current_temp_c": { - "name": "[%key:component::sensor::entity_component::temperature::name%]" + "name": "Temperatuur" }, "diagnosis": { "name": "Diagnose" @@ -468,7 +468,7 @@ "name": "Stof" }, "energy_kwh": { - "name": "[%key:component::sensor::entity_component::energy::name%]" + "name": "Energie" }, "energy_last_month_kwh": { "name": "Energie (vorige maand)" @@ -555,7 +555,7 @@ "name": "Energieverbruik" }, "power_watts": { - "name": "[%key:component::sensor::entity_component::power::name%]" + "name": "Vermogen" }, "progress": { "name": "Voortgang" @@ -581,15 +581,15 @@ "machine_state": { "name": "Machinestatus", "state": { - "idle": "[%key:common::state::idle%]", - "active": "[%key:common::state::active%]", + "idle": "Inactief", + "active": "Actief", "pause": "Gepauzeerd" } }, "filter_status": { "name": "Filterstatus", "state": { - "normal": "[%key:common::state::normal%]", + "normal": "Normaal", "wash": "Reinigen", "replace": "Vervangen" } @@ -597,7 +597,7 @@ "ice_making_status": { "name": "{instance_name} ijsmaakstatus", "state": { - "icestatus_stop": "[%key:common::state::idle%]", + "icestatus_stop": "Inactief", "icestatus_run": "IJs maken" } } @@ -756,7 +756,7 @@ "unknown": "Onverwachte fout. Raadpleeg de Home Assistant-logboeken voor meer informatie." }, "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "already_configured": "Apparaat is al geconfigureerd" } }, "options": { diff --git a/tests/test_translations.py b/tests/test_translations.py index ab94b81..c5bb553 100644 --- a/tests/test_translations.py +++ b/tests/test_translations.py @@ -72,8 +72,26 @@ def _all_descriptions(): yield from visit(value) -def test_source_and_english_translation_are_identical(): - assert _load("strings.json") == _load("translations/en.json") +def test_source_and_english_translation_topology_and_placeholders_match(): + source = _load("strings.json") + english = _load("translations/en.json") + assert _topology(source) == _topology(english) + + english_strings = dict(_walk_strings(english)) + for path, value in _walk_strings(source): + assert _placeholders(value) == _placeholders(english_strings[path]), path + + +def test_runtime_translation_catalogs_have_no_unresolved_references(): + for language in ("en", "nl"): + unresolved = [ + (path, value) + for path, value in _walk_strings( + _load(f"translations/{language}.json") + ) + if "[%key:" in value + ] + assert unresolved == [] def test_english_and_dutch_catalog_topology_and_placeholders_match(): From 6281b40549fd3d95a301aa7c47fd2ba852081bdd Mon Sep 17 00:00:00 2001 From: Marc Billow Date: Fri, 24 Jul 2026 19:32:09 +0000 Subject: [PATCH 09/15] refactor(i18n): make the shipped catalog the single source of truth PR #68 restated its own translation data in Python: a 60-line TRANSLATED_SELECT_STATES table of frozensets duplicating every entity.select.*.state key, a second _TRANSLATED_COURSE_TABLES table naming which course tables have translations, and a strings.json that was a 835-line byte-for-byte copy of translations/en.json save 43 [%key:...%] references. Each needed hand-syncing, and one was already drifting. Home Assistant loads exactly one file per language for a custom integration -- translations/.json. It never reads strings.json and never resolves [%key:...%]; both belong to Core's build tooling, which custom integrations don't run through (hassfest skips a missing strings.json and validates translations/en.json instead). So en.json is the source, and the new catalog.py reads the keys and states back out of it for the two decisions Python genuinely has to make: - select._display() normalizes a raw Samsung option to a lowercase state key only when the catalog knows it, else leaves the vendor's casing alone. Derived sets are identical to the removed literals. - laundry.cycle_select() keys off a device-reported course table only when that table has an entry, else falls back to the name-only 'cycle' key. Translating Table_00 is now a translations-only change. Also fixes six names that had already drifted between the Python descriptors and the catalog, restoring HA's sentence case for two generic ones (Auto release dry, Bubble soak) and taking the catalog's wording for the rest, and adds a test so the vestigial descriptor names can't silently disagree with the UI again. Claude-Session: https://claude.ai/code/session_01GiibJZZLWVvyxq7mc7EDNp --- .claude/skills/adding-device-support/SKILL.md | 7 +- README.md | 5 +- custom_components/localthings/catalog.py | 49 + .../registry/capabilities/common.py | 6 +- .../registry/capabilities/fridge.py | 2 +- .../registry/capabilities/laundry.py | 26 +- .../localthings/registry/capabilities/oven.py | 2 +- .../registry/capabilities/washer.py | 10 +- custom_components/localthings/select.py | 94 +- custom_components/localthings/strings.json | 835 ------------------ .../localthings/translations/en.json | 4 +- tests/test_common_capabilities.py | 2 +- tests/test_select_display.py | 2 +- tests/test_translations.py | 111 ++- tests/test_washer_capabilities.py | 2 +- 15 files changed, 179 insertions(+), 978 deletions(-) create mode 100644 custom_components/localthings/catalog.py delete mode 100644 custom_components/localthings/strings.json diff --git a/.claude/skills/adding-device-support/SKILL.md b/.claude/skills/adding-device-support/SKILL.md index 14a0c85..2e68b0d 100644 --- a/.claude/skills/adding-device-support/SKILL.md +++ b/.claude/skills/adding-device-support/SKILL.md @@ -109,10 +109,15 @@ Any select whose options are raw device codes (course/cycle, and code-valued settings) must render through translations, not Python: - Set `translation_key='_cycle'` (or similar) on the `SelectDesc`; `options`/`options_field` supply the **raw** codes. -- Add the labels to **both** `strings.json` and `translations/en.json` under +- Add the labels to `translations/en.json` under `entity.select..state.`, with the code **lowercased** (e.g. `"16": "Cotton"`). Codes with no entry render as the raw code — that's the cue to identify and name them. +- `en.json` is the only place these live: there is no `strings.json` (Home + Assistant doesn't read one from a custom integration), and `select.py` + derives its normalization set from the catalog, so there is no Python list + to keep in sync. Every other language must mirror `en.json` key for key — + `tests/test_translations.py` enforces that. ## 6. Coverage discipline: bound or ignored diff --git a/README.md b/README.md index cc0e27f..4e401d5 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,10 @@ custom_components/localthings/ entity.py Base entity wiring capability registry -> HA entity sensor.py / binary_sensor.py / switch.py / number.py / select.py / button.py / time.py / fan.py / climate.py One module per HA platform - strings.json / translations/ Config-flow copy + entity state translations + catalog.py Reads the shipped translation catalog (which keys/states exist) + translations/ Config-flow copy + entity name/state translations, one file per + language; en.json is the source of truth (no strings.json — + Home Assistant never reads one from a custom integration) registry/ registry.py Builds the global capability registry, validates href collisions capability.py Capability dataclass (href, entities, transforms) diff --git a/custom_components/localthings/catalog.py b/custom_components/localthings/catalog.py new file mode 100644 index 0000000..02d7616 --- /dev/null +++ b/custom_components/localthings/catalog.py @@ -0,0 +1,49 @@ +"""The integration's own shipped translation catalog, as data. + +Home Assistant loads exactly one file per language for a custom integration: +``translations/.json``. It does not read ``strings.json`` and it does +not resolve ``[%key:...%]`` references -- both of those belong to Core's +build tooling (``script/translations``), which custom integrations never run +through. So ``translations/en.json`` is not a generated artifact here, it is +the source of truth, and English is the one catalog required to be complete +(hassfest validates it for custom integrations). + +That makes the English catalog the authority on *which* translation keys and +states exist, which is something the Python side genuinely needs to know: + + * ``select`` has to decide whether to normalize a raw Samsung option into + a lowercase state key (so Home Assistant can look it up) or leave the + vendor's own casing alone as a readable fallback. + * ``laundry.cycle_select`` has to decide whether a device-reported course + table has translations at all before keying off it. + +Reading it from the catalog instead of restating it in Python means adding a +state or a course table is a one-file change, and the two can't drift. +""" +from __future__ import annotations + +import json +from pathlib import Path + +# Read at import, not lazily: custom integrations are imported in an executor +# thread, so this stays off the event loop no matter who asks first. +_ENTITY_CATALOG: dict[str, dict[str, dict]] = json.loads( + (Path(__file__).parent / 'translations' / 'en.json').read_text(encoding='utf-8') +).get('entity', {}) + + +def has_entity_translation(platform: str, translation_key: str) -> bool: + """Whether `platform`.`translation_key` has an entry in the catalog.""" + return translation_key in _ENTITY_CATALOG.get(platform, {}) + + +def translated_states(platform: str, translation_key: str) -> frozenset[str]: + """The state keys translated for `platform`.`translation_key`. + + Empty when the entity has no translation at all, and also when it has a + translated *name* but deliberately no state table (a course list whose + codes we can't map, for instance) -- callers treat both the same way: + leave the device's value untouched. + """ + entry = _ENTITY_CATALOG.get(platform, {}).get(translation_key) + return frozenset(entry.get('state', ())) if entry else frozenset() diff --git a/custom_components/localthings/registry/capabilities/common.py b/custom_components/localthings/registry/capabilities/common.py index bcf06f3..7590328 100644 --- a/custom_components/localthings/registry/capabilities/common.py +++ b/custom_components/localthings/registry/capabilities/common.py @@ -301,7 +301,7 @@ WATER_FILTER = Capability( # # No translation_key: aiLevel's values are plain digit strings, and # select.py's _display() already renders an untranslated numeric string -# as-is -- there's nothing a strings.json entry adds that's worth maintaining +# as-is -- there's nothing a catalog entry adds that's worth maintaining # against an unknown, growing number of future levels. @@ -348,14 +348,14 @@ AI_ENERGY_LEVEL = Capability( # cold-tier href, the same reload already required to fix which # platform got picked in that case. SwitchDesc(key='ai_energy_level', field='aiLevel', - name='AI energy level', icon='mdi:leaf', + name='AI Energy Mode', icon='mdi:leaf', entity_category='config', value_fn=lambda v: v != '0', exists_fn=lambda rep, resources: ( len(_ai_energy_supported_levels(rep)) == 1), write_fn=_ai_energy_level_switch_write), SelectDesc(key='ai_energy_level', field='aiLevel', - name='AI energy level', icon='mdi:leaf', + name='AI Energy Mode level', icon='mdi:leaf', entity_category='config', options=_ai_energy_level_options, exists_fn=lambda rep, resources: ( diff --git a/custom_components/localthings/registry/capabilities/fridge.py b/custom_components/localthings/registry/capabilities/fridge.py index 003e364..6967b5b 100644 --- a/custom_components/localthings/registry/capabilities/fridge.py +++ b/custom_components/localthings/registry/capabilities/fridge.py @@ -25,7 +25,7 @@ from ..entities import ( from .common import normalize_temp_unit # Display names for the beverage zone, flex zone, ice type, and -# ice-making-status enums below live in strings.json / translations/en.json, +# ice-making-status enums below live in translations/en.json, # keyed by the lowercased raw device value — select.py and SensorDesc.options # normalize to lowercase for HA's translation lookup and map back to this # original casing before writing to the device. diff --git a/custom_components/localthings/registry/capabilities/laundry.py b/custom_components/localthings/registry/capabilities/laundry.py index afec8e3..943a18d 100644 --- a/custom_components/localthings/registry/capabilities/laundry.py +++ b/custom_components/localthings/registry/capabilities/laundry.py @@ -21,6 +21,7 @@ Door-LED keys use NO `x.com.samsung.da.` prefix -- `setBrightness` / """ from datetime import time as dt_time +from ...catalog import has_entity_translation from ..capability import Capability from ..entities import NumberDesc, SelectDesc, SensorDesc, SwitchDesc, TimeDesc @@ -276,12 +277,6 @@ def _table_id(resources, table_href): return rep.get('x.com.samsung.da.st.courseTable') -_TRANSLATED_COURSE_TABLES = { - 'dryer_cycle': frozenset({'table_03'}), - 'washer_cycle': frozenset({'table_02'}), -} - - def cycle_select(*, translation_key, icon, table_href=None): """A 'Cycle' select over /course/vs/0, labelled from `translation_key`. @@ -302,10 +297,13 @@ def cycle_select(*, translation_key, icon, table_href=None): washer_cycle_table_02 was confirmed against Table_02-reporting devices (DA_WM_TP1/TP2 boards); FlexWash's older DA_WM_A51 board reports Table_00 instead, so the same hex code could mean a different course - there for all we've verified. Only tables with a complete catalog are - assigned a state translation key. Unknown future tables deliberately use - the generic key, avoiding misleading translations and missing-translation - errors while keeping the exact vendor code for writes. + there for all we've verified. So a table-specific key is used only when + the shipped catalog actually has one; any other table (Table_00 today, + whatever ships next) falls back to the name-only ``cycle`` key, which + shows the raw course code rather than a label borrowed from another + board generation. Translating a new table is therefore a + translations-only change -- add the ``_cycle_`` entry and + this resolver picks it up. Left at its default for dishwasher, which has no equivalent table-id resource in any dump seen and no evidence its course codes vary by @@ -316,10 +314,10 @@ def cycle_select(*, translation_key, icon, table_href=None): if table_href is not None: def key(resources): table = _table_id(resources, table_href) - table_id = table.lower() if isinstance(table, str) else None - if table_id in _TRANSLATED_COURSE_TABLES.get(translation_key, ()): - return f'{translation_key}_{table_id}' - return 'cycle' + if not isinstance(table, str) or not table: + return 'cycle' + candidate = f'{translation_key}_{table.lower()}' + return candidate if has_entity_translation('select', candidate) else 'cycle' return SelectDesc( key='cycle', name='Cycle', icon=icon, translation_key=key, diff --git a/custom_components/localthings/registry/capabilities/oven.py b/custom_components/localthings/registry/capabilities/oven.py index b8d8ea8..5da0397 100644 --- a/custom_components/localthings/registry/capabilities/oven.py +++ b/custom_components/localthings/registry/capabilities/oven.py @@ -239,7 +239,7 @@ OVEN_OPERATIONAL_STATE = Capability( value_fn=_int), SensorDesc(key='operation_time_minutes', field='x.com.samsung.da.operationTime', - name='Operation time (minutes)', unit='min', + name='Operation time', unit='min', state_class='measurement', value_fn=_op_minutes), SensorDesc(key='finish_time', field='x.com.samsung.da.remainingTime', name='Estimated finish', device_class='timestamp', diff --git a/custom_components/localthings/registry/capabilities/washer.py b/custom_components/localthings/registry/capabilities/washer.py index 006a5e1..37d3917 100644 --- a/custom_components/localthings/registry/capabilities/washer.py +++ b/custom_components/localthings/registry/capabilities/washer.py @@ -23,8 +23,8 @@ from .laundry import ( ) # --------------------------------------------------------------------------- -# Course_XX hex codes. 23 of the codes named in strings.json/translations -# under entity.select.washer_cycle.state. were captured +# Course_XX hex codes. 23 of the codes named in translations/en.json +# under entity.select.washer_cycle_table_02.state. were captured # from a live WW90DG6U25LEU4's x.com.samsung.da.editCourseList # (EditCourseList_1C1D211B1E29243328262722202325322F2E30662D8F96), matched # positionally against a Slovak-UI user's screenshots of their app's course @@ -157,8 +157,8 @@ def _drum_clean_last_cleaned(rep): # valid raw codes for its field, same hex-pair shape as EditCourseList. # 'Alarm_' is a low-reservoir warning flag. # -# Label mapping (entity.select.washer_dosing_quantity/washer_detergent_ -# water_hardness/washer_softener_concentration in strings.json) is an +# Label mapping (entity.select.{detergent,softener}_quantity / +# detergent_water_hardness / softener_concentration in translations/en.json) is an # assumed, not cross-device-verified, reading of the single issue #9 dump + # screenshots: LevelCtrl's 4 codes as None/Low/Medium/High (00 has no # on-screen equivalent -- the app's Quantité picker only offers @@ -349,7 +349,7 @@ WASHER_COURSE = Capability( rep_fn=_dosing_low('SoftenerAlarm')), _bool_option_switch('bubble_soak', 'Bubble soak', 'mdi:chart-bubble', 'BubbleSoak', 'BubbleSoakSet'), - _bool_option_switch('pre_wash', 'Pre wash', 'mdi:washing-machine', + _bool_option_switch('pre_wash', 'Pre-wash', 'mdi:washing-machine', 'PreWashSetting', 'PreWashAvailableSet'), _bool_option_switch('intensive', 'Intensive', 'mdi:washing-machine', 'IntensiveSetting', 'IntensiveAvailableSet'), diff --git a/custom_components/localthings/select.py b/custom_components/localthings/select.py index 2b0c62b..d7ed8fe 100644 --- a/custom_components/localthings/select.py +++ b/custom_components/localthings/select.py @@ -11,6 +11,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from .registry.entities import SelectDesc +from .catalog import translated_states from .const import DOMAIN from .coordinator import LocalThingsCoordinator from .entity import LocalThingsEntity, _is_included @@ -31,73 +32,16 @@ async def async_setup_entry( _CAMEL_BOUNDARY_RE = re.compile(r'(?<=[a-z0-9])(?=[A-Z])') -# Keep this synchronized with entity.select.*.state in strings.json. A select -# can have a translation key for its name without translating its dynamic -# Samsung options. Only known states are normalized for HA's lowercase lookup; -# unknown future vendor values retain a readable label and exact write value. -TRANSLATED_SELECT_STATES: dict[str, frozenset[str]] = { - 'beverage_zone_mode': frozenset({ - 'sp_ttype_beer_drinks', 'sp_ttype_wine_dessert', - }), - 'brightness_level': frozenset({'33', '66', '100'}), - 'day_brightness': frozenset({'33', '66', '100'}), - 'dishwasher_cycle': frozenset({ - '07', '0e', '80', '83', '84', '86', '8d', '8e', '8f', '90', - }), - 'door_alert': frozenset({'1', '2', '3', '4'}), - 'dryer_cycle_table_03': frozenset({ - '16', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', - '23', '24', '25', '27', - }), - 'finish_sound': frozenset({'off', 'on'}), - 'flex_zone_mode': frozenset({ - 'cv_fdr_beverage', 'cv_fdr_deli', 'cv_fdr_meat', - 'cv_fdr_soft_freezer', 'cv_fdr_wine', - 'cv_ttype_rf9000a_beverage', 'cv_ttype_rf9000a_freeze', - 'cv_ttype_rf9000a_fruit_veggies', - 'cv_ttype_rf9000a_meat_fish', 'cv_ttype_rf9000a_softfreeze', - }), - 'heated_dry': frozenset({'extra_high', 'high', 'low', 'off'}), - 'ice_type': frozenset({ - 'off', 'whiskey_iceball_3', 'whiskey_iceball_6', - 'whiskey_iceball_9', - }), - 'led_brightness': frozenset({'high', 'low'}), - 'led_night_brightness': frozenset({'high', 'low'}), - 'oven_mode': frozenset({ - 'air_fry', 'bake', 'broil', 'convection', 'convection_bake', - 'convection_broil', 'frozen_pizza_plus', 'no_operation', - 'plate_warm', 'slow_cook', - }), - 'pantry_zone_mode': frozenset({'fdr_deli', 'fdr_drinks', 'fdr_wine'}), - 'range_burner_power_level': frozenset({'0', 'boost', 'simmer'}), - 'sound_mode': frozenset({'mute', 'tone', 'voice'}), - 'spin_speed': frozenset({'high', 'low', 'medium', 'no_spin', 'rinse_hold'}), - 'buzzer_sound': frozenset({'off', 'on'}), - 'wash_temperature': frozenset({ - 'cold', 'cool', 'extra_hot', 'hot', 'none', 'warm', - }), - 'washer_cycle_table_02': frozenset({ - '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', - '25', '26', '27', '28', '29', '2d', '2e', '2f', '30', '32', - '33', '36', '37', '38', '39', '66', '8f', '96', - }), - 'detergent_quantity': frozenset({'00', '01', '02', '03'}), - 'softener_quantity': frozenset({'00', '01', '02', '03'}), - 'detergent_water_hardness': frozenset({'01', '02', '03'}), - 'softener_concentration': frozenset({'01', '02', '03'}), - 'washer_dry_level': frozenset({ - '30', '60', '90', '120', '180', '240', 'cupboard', 'none', - }), - 'range_hood_lamp_brightness': frozenset({'1', '2'}), -} +def _translation_state(value: str, known: frozenset[str]) -> str | None: + """Return the catalog state `value` normalizes to, else None. -def _translation_state(value: str, translation_key: str) -> str | None: - """Return a known HA translation state, or None for a vendor fallback.""" - known = TRANSLATED_SELECT_STATES.get(translation_key) - if known is None: - return None + Samsung reports options in whatever casing the resource uses + ('Rinse_Hold', 'SpTtypeBeerDrinks', '1b'); Home Assistant looks state + translations up by a lowercase key. Only values the catalog actually + knows are normalized -- an unrecognized (or future) vendor value keeps + its own readable form rather than becoming an untranslatable slug. + """ direct = value.lower().replace(' ', '_') if direct in known: return direct @@ -113,13 +57,13 @@ def _display(value, translation_key: Optional[str]): callers pass the resolved value, e.g. self.translation_key, not the raw descriptor field). - An entity with a translation_key looks its state up in strings.json, - and hassfest requires those keys to be lowercase -- so those values + An entity with a translation_key looks its state up in the shipped + translation catalog, whose state keys are lowercase -- so those values must be lowercased exactly to match, and the device still expects that same raw casing back on write (callers map the displayed value back to raw via _raw_options()). - Everything else has no strings.json lookup, so there's no reason to + Everything else has no catalog lookup, so there's no reason to destroy the device's own casing. Only two cosmetic fixups apply: a fully lowercase device-native token (e.g. "voice") is title-cased, and a PascalCase token (e.g. "ExtraHigh") gets a space inserted at @@ -130,13 +74,15 @@ def _display(value, translation_key: Optional[str]): if not isinstance(value, str): return value if translation_key: - if translated := _translation_state(value, translation_key): - return translated - if translation_key not in TRANSLATED_SELECT_STATES: - # The entity name is translated, but this select deliberately has - # no static state catalog (for example an unknown course table). - # Keep its opaque device value untouched. + known = translated_states('select', translation_key) + if not known: + # No state table for this key: either the entity isn't translated + # at all, or its name is translated but its options deliberately + # aren't (an unrecognized course table, say). Either way the + # opaque device value is the best thing to show. return value + if translated := _translation_state(value, known): + return translated if value.islower(): return value.replace('_', ' ').title() return _CAMEL_BOUNDARY_RE.sub(' ', value) diff --git a/custom_components/localthings/strings.json b/custom_components/localthings/strings.json deleted file mode 100644 index c3860aa..0000000 --- a/custom_components/localthings/strings.json +++ /dev/null @@ -1,835 +0,0 @@ -{ - "entity": { - "binary_sensor": { - "any_burner_active": { - "name": "Any burner active" - }, - "automatic_operation": { - "name": "Automatic operation" - }, - "burner_hot_surface": { - "name": "Burner {number} hot surface" - }, - "cloud_connected": { - "name": "Cloud connected" - }, - "cooktop_safety_shutoff_enabled": { - "name": "Hot surface auto-shutoff enabled" - }, - "current_limit_enabled": { - "name": "Current limit enabled" - }, - "cycle_active": { - "name": "[%key:component::binary_sensor::entity_component::running::name%]" - }, - "defrost_active": { - "name": "Defrost active" - }, - "detergent_low": { - "name": "Detergent low" - }, - "device_active": { - "name": "Device active" - }, - "door_open": { - "name": "[%key:component::binary_sensor::entity_component::door::name%]" - }, - "firmware_update": { - "name": "Firmware update available" - }, - "instance_open": { - "name": "{instance_name} open" - }, - "paired_hood_connected": { - "name": "Paired hood connected" - }, - "paired_hood_light": { - "name": "Paired hood light" - }, - "paired_hood_power": { - "name": "Paired hood power" - }, - "periodic_air_sensing": { - "name": "Periodic air sensing" - }, - "power_state": { - "name": "Power state" - }, - "rapid_freezing": { - "name": "Rapid freezing" - }, - "rapid_fridge": { - "name": "Rapid fridge" - }, - "remote_control": { - "name": "Smart Control" - }, - "softener_low": { - "name": "Softener low" - } - }, - "button": { - "diagnosis_start": { - "name": "Start diagnosis" - }, - "pause": { - "name": "[%key:common::action::pause%]" - }, - "selfcheck_start": { - "name": "Start self-check" - }, - "start": { - "name": "[%key:common::action::start%]" - }, - "stop": { - "name": "[%key:common::action::stop%]" - } - }, - "climate": { - "airconditioner": { - "state_attributes": { - "fan_mode": { - "state": { - "turbo": "Turbo" - } - }, - "preset_mode": { - "state": { - "quiet": "Quiet", - "smart": "Smart", - "speed": "Speed" - } - } - } - } - }, - "number": { - "cook_time": { - "name": "Cook time" - }, - "delay_start_hours": { - "name": "Delay start" - }, - "instance_setpoint": { - "name": "{instance_name} setpoint" - }, - "oven_setpoint": { - "name": "Setpoint" - }, - "sound_volume": { - "name": "Sound volume" - } - }, - "select": { - "ai_energy_level": { - "name": "AI Energy Mode level" - }, - "beverage_zone_mode": { - "name": "Beverage zone mode", - "state": { - "sp_ttype_beer_drinks": "Beverage", - "sp_ttype_wine_dessert": "Wine and dessert" - } - }, - "brightness_level": { - "name": "Night brightness", - "state": { - "33": "[%key:common::state::low%]", - "66": "[%key:common::state::medium%]", - "100": "[%key:common::state::high%]" - } - }, - "day_brightness": { - "name": "Cabinet brightness", - "state": { - "33": "[%key:common::state::low%]", - "66": "[%key:common::state::medium%]", - "100": "[%key:common::state::high%]" - } - }, - "buzzer_sound": { - "name": "Buzzer sound", - "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" - } - }, - "cycle": { - "name": "Cycle" - }, - "detergent_quantity": { - "name": "Detergent quantity", - "state": { - "00": "None", - "01": "[%key:common::state::low%]", - "02": "[%key:common::state::medium%]", - "03": "[%key:common::state::high%]" - } - }, - "detergent_water_hardness": { - "name": "Detergent water hardness", - "state": { - "01": "Soft", - "02": "[%key:common::state::medium%]", - "03": "Hard" - } - }, - "dishwasher_cycle": { - "name": "Cycle", - "state": { - "80": "Delicate", - "83": "Express 60", - "84": "Heavy", - "86": "Normal", - "90": "Self clean", - "0e": "AI Wash", - "07": "Pre blast", - "8d": "Pots and pans", - "8e": "Plastic", - "8f": "Baby Care" - } - }, - "door_alert": { - "name": "Door alarm", - "state": { - "1": "Alarm 1", - "2": "Alarm 2", - "3": "Alarm 3", - "4": "Alarm 4" - } - }, - "dryer_cycle_table_03": { - "name": "Cycle", - "state": { - "16": "Cotton", - "18": "Synthetics", - "19": "Delicates", - "20": "Iron dry", - "23": "Quick Dry 35", - "24": "Cool air", - "25": "Warm air", - "27": "Time dry", - "1a": "Wool", - "1b": "Bedding", - "1c": "Shirts", - "1d": "Towels", - "1e": "Outdoor", - "1f": "Mixed load" - } - }, - "finish_sound": { - "name": "Finish sound", - "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" - } - }, - "flex_zone_mode": { - "name": "Flex zone mode", - "state": { - "cv_ttype_rf9000a_freeze": "Freeze", - "cv_ttype_rf9000a_softfreeze": "Soft freeze", - "cv_ttype_rf9000a_meat_fish": "Meat/Fish", - "cv_ttype_rf9000a_fruit_veggies": "Fruit & vegetables", - "cv_ttype_rf9000a_beverage": "Beverage", - "cv_fdr_wine": "Wine", - "cv_fdr_deli": "Deli", - "cv_fdr_beverage": "Beverage", - "cv_fdr_meat": "Meat", - "cv_fdr_soft_freezer": "Soft freezer" - } - }, - "heated_dry": { - "name": "Smart Dry", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]", - "extra_high": "Extra high" - } - }, - "ice_type": { - "name": "{instance_name} type", - "state": { - "off": "[%key:common::state::off%]", - "whiskey_iceball_3": "3 balls/day", - "whiskey_iceball_6": "6 balls/day", - "whiskey_iceball_9": "9 balls/day" - } - }, - "led_brightness": { - "name": "Door LED brightness", - "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" - } - }, - "led_night_brightness": { - "name": "Door LED night brightness", - "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" - } - }, - "oven_mode": { - "name": "Cooking mode", - "state": { - "no_operation": "No operation", - "bake": "Bake", - "broil": "Broil", - "convection": "Convection", - "convection_bake": "Convection bake", - "convection_broil": "Convection broil", - "frozen_pizza_plus": "Frozen Pizza+", - "slow_cook": "Slow cook", - "plate_warm": "Plate warm", - "air_fry": "Air fry" - } - }, - "pantry_zone_mode": { - "name": "Pantry zone mode", - "state": { - "fdr_wine": "Wine", - "fdr_deli": "Deli", - "fdr_drinks": "Drinks" - } - }, - "range_burner_power_level": { - "name": "Burner {number} power level", - "state": { - "0": "[%key:common::state::off%]", - "boost": "Boost", - "simmer": "Simmer" - } - }, - "range_hood_lamp_brightness": { - "name": "Lamp brightness", - "state": { - "1": "Level 1", - "2": "Level 2" - } - }, - "rinse_cycles": { - "name": "Rinse cycles" - }, - "softener_concentration": { - "name": "Softener concentration", - "state": { - "01": "1x", - "02": "2x", - "03": "3x" - } - }, - "softener_quantity": { - "name": "Softener quantity", - "state": { - "00": "None", - "01": "[%key:common::state::low%]", - "02": "[%key:common::state::medium%]", - "03": "[%key:common::state::high%]" - } - }, - "sound_mode": { - "name": "Sound mode", - "state": { - "voice": "Voice", - "tone": "Tone", - "mute": "Mute" - } - }, - "spin_speed": { - "name": "Spin speed", - "state": { - "rinse_hold": "Rinse hold", - "no_spin": "No spin", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "wash_temperature": { - "name": "Wash temperature", - "state": { - "none": "None", - "cold": "Cold", - "cool": "Cool", - "warm": "Warm", - "hot": "Hot", - "extra_hot": "Extra hot" - } - }, - "washer_cycle_table_02": { - "name": "Cycle", - "state": { - "20": "Hygiene Steam", - "21": "Colours", - "22": "Wool", - "23": "Outdoor", - "24": "Towels", - "25": "Synthetics", - "26": "Delicates", - "27": "Rinse+Spin", - "28": "Drain/Spin", - "29": "Drum Clean+", - "30": "Cloudy Day", - "32": "Shirts", - "33": "Bedding", - "36": "Wash+Dry", - "37": "Air Wash", - "38": "Cotton Dry", - "39": "Synthetics Dry", - "66": "Denim", - "96": "Less Microfiber", - "1c": "Eco 40-60", - "1d": "Super Speed", - "1b": "Cotton", - "1e": "15' Quick Wash", - "2f": "Activewear", - "2e": "Baby Care", - "2d": "Silent Wash", - "8f": "Intense Cold", - "1f": "Intense Cold" - } - }, - "washer_dry_level": { - "name": "Dry level", - "state": { - "30": "30 min", - "60": "1 hr", - "90": "1 hr 30", - "120": "2 hr", - "180": "3 hr", - "240": "4 hr", - "none": "[%key:common::state::off%]", - "cupboard": "Cupboard" - } - } - }, - "sensor": { - "air_filter_usage": { - "name": "Filter usage" - }, - "air_sensing_state": { - "name": "Air sensing state" - }, - "alarm_code": { - "name": "Alarm code" - }, - "auto_ventilation_action": { - "name": "Auto ventilation action" - }, - "automatic_ventilation_state": { - "name": "Automatic ventilation state" - }, - "burner_state": { - "name": "Burner {number} state" - }, - "clean_level": { - "name": "Clean level" - }, - "connection_mode": { - "name": "Connection mode", - "state": { - "observe": "Push (observe)", - "poll": "Polling" - } - }, - "cooktop_state": { - "name": "Cooktop state" - }, - "current_limit_level": { - "name": "Current limit level" - }, - "current_temp_c": { - "name": "[%key:component::sensor::entity_component::temperature::name%]" - }, - "diagnosis": { - "name": "Diagnosis" - }, - "diagnosis_status": { - "name": "Diagnosis status" - }, - "drum_clean_cycles_remaining": { - "name": "Drum clean due in" - }, - "drum_clean_last_cleaned": { - "name": "Drum last cleaned" - }, - "dry_level": { - "name": "Dry level" - }, - "dry_time": { - "name": "Dry time" - }, - "dryer_type": { - "name": "Dryer type" - }, - "dust": { - "name": "Dust" - }, - "energy_kwh": { - "name": "[%key:component::sensor::entity_component::energy::name%]" - }, - "energy_last_month_kwh": { - "name": "Energy (last month)" - }, - "energy_saved_kwh": { - "name": "Energy saved" - }, - "energy_this_month_kwh": { - "name": "Energy (this month)" - }, - "fan_direction": { - "name": "Fan direction" - }, - "fan_speed_level": { - "name": "Fan speed level" - }, - "filter_progress": { - "name": "Filter progress" - }, - "filter_usage": { - "name": "Filter usage" - }, - "fine_dust": { - "name": "Fine dust" - }, - "finish_time": { - "name": "Estimated finish" - }, - "freezer_temperature": { - "name": "Freezer temperature" - }, - "fridge_temperature": { - "name": "Fridge temperature" - }, - "hood_filter_capacity": { - "name": "Filter capacity" - }, - "hood_filter_usage": { - "name": "Filter usage" - }, - "instance_temperature": { - "name": "{instance_name} temperature" - }, - "job_beginning_status": { - "name": "Job beginning status" - }, - "last_air_sensing_level": { - "name": "Last air sensing level" - }, - "last_air_sensing_time": { - "name": "Last air sensing time" - }, - "main_timer_current": { - "name": "Timer current value" - }, - "main_timer_state": { - "name": "Timer state" - }, - "odor": { - "name": "Odor" - }, - "operating_mode": { - "name": "Operating mode" - }, - "operation_origin": { - "name": "Last operation source" - }, - "operation_time_minutes": { - "name": "Operation time" - }, - "oven_state": { - "name": "Cavity state" - }, - "paired_hood_fan_speed": { - "name": "Paired hood fan speed" - }, - "paired_hood_firmware": { - "name": "Paired hood firmware" - }, - "paired_hood_model": { - "name": "Paired hood model" - }, - "power_energy_kwh": { - "name": "Power energy" - }, - "power_watts": { - "name": "[%key:component::sensor::entity_component::power::name%]" - }, - "progress": { - "name": "Progress" - }, - "progress_percentage": { - "name": "Progress percent" - }, - "selfcheck_error": { - "name": "Self-check error" - }, - "selfcheck_result": { - "name": "Self-check result" - }, - "selfcheck_status": { - "name": "Self-check status" - }, - "super_fine_dust": { - "name": "Super fine dust" - }, - "water_liters": { - "name": "Water consumption" - }, - "machine_state": { - "name": "Machine state", - "state": { - "idle": "[%key:common::state::idle%]", - "active": "[%key:common::state::active%]", - "pause": "Paused" - } - }, - "filter_status": { - "name": "Filter status", - "state": { - "normal": "[%key:common::state::normal%]", - "wash": "Wash", - "replace": "Replace" - } - }, - "ice_making_status": { - "name": "{instance_name} making status", - "state": { - "icestatus_stop": "[%key:common::state::idle%]", - "icestatus_run": "Making ice" - } - } - }, - "switch": { - "ai_energy_level": { - "name": "AI Energy Mode" - }, - "air_purify": { - "name": "Air purification" - }, - "auto_clean": { - "name": "Auto clean" - }, - "auto_door_opener": { - "name": "Auto door opener" - }, - "auto_release_dry": { - "name": "Auto Release Dry" - }, - "autofill": { - "name": "Autofill pitcher" - }, - "bubble_soak": { - "name": "Bubble Soak" - }, - "cabinet_light_dim": { - "name": "Brighten gradually" - }, - "cabinet_light_switch": { - "name": "Cabinet light" - }, - "child_lock": { - "name": "Child lock" - }, - "defrost_delay": { - "name": "Defrost delay" - }, - "display_light": { - "name": "Display light" - }, - "fast_preheat": { - "name": "Fast preheat" - }, - "fridge_sound": { - "name": "Sound" - }, - "ice_maker_enabled": { - "name": "Ice maker" - }, - "ice_night_mode": { - "name": "Nighttime ice quiet mode" - }, - "instance_enabled": { - "name": "{instance_name} enabled" - }, - "intensive": { - "name": "Intensive" - }, - "lamp": { - "name": "Lamp" - }, - "led_night_light": { - "name": "Door LED night light" - }, - "mute_once": { - "name": "Mute once" - }, - "natural_steam": { - "name": "Natural steam" - }, - "power_switch": { - "name": "Power" - }, - "pre_wash": { - "name": "Pre-wash" - }, - "rapid_freezing": { - "name": "Rapid freezing" - }, - "rapid_fridge": { - "name": "Rapid fridge" - }, - "sabbath_mode": { - "name": "Sabbath mode" - }, - "sanitize": { - "name": "Sanitize" - }, - "sound": { - "name": "Sound" - }, - "storm_wash": { - "name": "Storm Wash+" - }, - "welcome_lighting": { - "name": "Welcome lighting" - }, - "wrinkle_prevent": { - "name": "Wrinkle prevent" - } - }, - "time": { - "led_night_end": { - "name": "Door LED night end" - }, - "led_night_start": { - "name": "Door LED night start" - }, - "night_end": { - "name": "Night light end" - }, - "night_start": { - "name": "Night light start" - } - } - }, - "config": { - "step": { - "user": { - "title": "Add Samsung appliance", - "description": "Enter the IP address of your Samsung appliance and the AC14K_M CA credentials used to mint device certificates.", - "data": { - "host": "IP address", - "ca_cert_pem": "CA certificate (PEM)", - "ca_key_pem": "CA private key (PEM)" - }, - "data_description": { - "host": "Local IP address of your Samsung appliance (e.g. 192.168.1.50).", - "ca_cert_pem": "The PEM-encoded AC14K_M CA certificate chain. Paste the full contents of your fullchain PEM including all BEGIN/END CERTIFICATE blocks.", - "ca_key_pem": "The PEM-encoded AC14K_M private key. Paste the full contents including the BEGIN/END PRIVATE KEY header and footer." - } - }, - "user_reuse": { - "title": "Add Samsung appliance", - "description": "Enter the IP address of your Samsung appliance. The CA credentials from an existing LocalThings appliance will be reused.", - "data": { - "host": "IP address" - }, - "data_description": { - "host": "Local IP address of your Samsung appliance (e.g. 192.168.1.50)." - } - }, - "confirm_unknown_type": { - "title": "Appliance type not recognized", - "description": "This appliance reported oneUiVersion \"{one_ui_version}\", which isn't a recognized type. It'll still be added, but only with common capabilities (power, alarms, etc. where present) rather than the full set for its family. You can help add full support afterward by downloading diagnostics for this device (Settings > Devices & Services > this device > the menu > Download diagnostics) and filing them in a new issue. Submit to add it anyway." - }, - "confirm_unknown_type_no_version": { - "title": "Appliance type not recognized", - "description": "This appliance did not report a oneUiVersion and its type couldn't be recognized. It'll still be added, but only with common capabilities (power, alarms, etc. where present) rather than the full set for its family. You can help add full support afterward by downloading diagnostics for this device (Settings > Devices & Services > this device > the menu > Download diagnostics) and filing them in a new issue. Submit to add it anyway." - } - }, - "error": { - "cannot_connect": "Cannot connect to the device. Verify the IP address is reachable and the CA credentials are correct.", - "invalid_ca": "The CA certificate or private key could not be loaded. Verify the PEM contents are correct and the key matches the certificate.", - "unknown": "Unexpected error. Check the Home Assistant logs for details." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { - "step": { - "init": { - "title": "LocalThings options", - "menu_options": { - "settings": "Remote control write settings", - "debug_write": "Debug: write to a resource" - } - }, - "settings": { - "title": "Remote control write settings", - "description": "Some devices accept certain writes (e.g. default detergent/softener dosing on a washer) even while reporting remote control off. By default, LocalThings blocks every write with a clear error whenever a device reports remote control off, rather than letting the device silently reject it. Only enable this if you've confirmed writes actually work on this device with remote control off -- otherwise you'll trade that clear error for a silent failure.", - "data": { - "bypass_remote_control_lock": "Allow writes even when remote control is reported off" - } - }, - "debug_write": { - "title": "Debug: write to a resource", - "description": "Power-user tool for pinning down device-specific write behavior. Pick the resource (href) you want to write to, or type a custom one that isn't listed. This bypasses the remote-control-off block and sends exactly the fields you provide -- it can misconfigure your appliance, so use it deliberately.", - "data": { - "href": "Resource href" - } - }, - "debug_edit": { - "title": "Debug write: {href}", - "description": "Current value of `{href}`:\n```\n{current_value}\n```\nEnter ONLY the field(s) you want to change below. What you enter is sent to the device as-is (a partial update); it is NOT merged with the fields shown above, so don't paste the whole value back. Mind the types: a numeric string like \"1\" must stay quoted -- a bare 1 is sent as an integer, which some devices reject.", - "data": { - "payload": "Payload to write" - } - }, - "debug_result": { - "title": "Debug write result", - "description": "The device returned CoAP code {code}. A 2.xx class means the write was accepted; 4.xx/5.xx means it was rejected. The resource now reads:\n```\n{new_value}\n```\nIf the value is unchanged, the device likely dropped the write. Pick what to do next:", - "menu_options": { - "debug_write": "Write another resource", - "finish": "Finish" - } - } - }, - "error": { - "empty_payload": "Enter at least one field to write.", - "write_failed": "The write failed. Check the Home Assistant logs for details." - }, - "abort": { - "not_loaded": "This device isn't connected yet. Try again once it has loaded." - } - }, - "issues": { - "device_gap": { - "title": "Incomplete capability coverage for {device_name}", - "description": "This device is missing full capability coverage. Either its appliance type wasn't recognized, or some of the resources it exposes aren't modeled yet. It'll keep working with whatever is already supported. You can help expand support by going to Settings > Devices & Services > {device_name} > the menu (top right) > Download diagnostics, then filing it with the linked issue template." - } - }, - "exceptions": { - "remote_control_disabled": { - "message": "Remote control is turned off on this device. Check your appliance's manual for how to enable remote control before Home Assistant can control it." - }, - "debug_payload_empty": { - "message": "Debug write payload must be a non-empty object." - }, - "resource_href_required": { - "message": "A resource href is required." - }, - "bubble_soak_unavailable_for_cycle": { - "message": "Bubble Soak isn't available on the selected cycle." - }, - "pre_wash_unavailable_for_cycle": { - "message": "Pre-wash isn't available on the selected cycle." - }, - "intensive_unavailable_for_cycle": { - "message": "Intensive isn't available on the selected cycle." - } - } -} diff --git a/custom_components/localthings/translations/en.json b/custom_components/localthings/translations/en.json index b6a8dd2..5d3936c 100644 --- a/custom_components/localthings/translations/en.json +++ b/custom_components/localthings/translations/en.json @@ -616,13 +616,13 @@ "name": "Auto door opener" }, "auto_release_dry": { - "name": "Auto Release Dry" + "name": "Auto release dry" }, "autofill": { "name": "Autofill pitcher" }, "bubble_soak": { - "name": "Bubble Soak" + "name": "Bubble soak" }, "cabinet_light_dim": { "name": "Brighten gradually" diff --git a/tests/test_common_capabilities.py b/tests/test_common_capabilities.py index 473d64d..c199f43 100644 --- a/tests/test_common_capabilities.py +++ b/tests/test_common_capabilities.py @@ -228,7 +228,7 @@ class TestAiEnergyLevelSelect: def test_no_translation_key(self): """aiLevel's values are plain digits that render fine untranslated - (select.py's _display()) -- no strings.json entry to maintain + (select.py's _display()) -- no catalog entry to maintain against an unknown number of future levels.""" desc = self._desc() assert desc.translation_key is None diff --git a/tests/test_select_display.py b/tests/test_select_display.py index a3e5ee3..ab9d8c8 100644 --- a/tests/test_select_display.py +++ b/tests/test_select_display.py @@ -28,7 +28,7 @@ def test_display_passes_through_an_already_human_friendly_value(): def test_display_lowercases_for_translation_key_lookup(): - """An entity with a translation_key must match strings.json's + """An entity with a translation_key must match the catalog's lowercase keys exactly -- unlike the untranslated cases above, this is not a cosmetic transform.""" assert _display('Whiskey_IceBall_3', _TRANSLATED) == 'whiskey_iceball_3' diff --git a/tests/test_translations.py b/tests/test_translations.py index c5bb553..a8cb554 100644 --- a/tests/test_translations.py +++ b/tests/test_translations.py @@ -1,4 +1,13 @@ -"""Translation architecture and catalog synchronization tests.""" +"""Translation catalog architecture tests. + +Home Assistant loads a custom integration's ``translations/.json`` +directly -- there is no ``strings.json`` step and no ``[%key:...%]`` +resolution, both of which belong to Core's build tooling. So +``translations/en.json`` is the source of truth here, and these tests hold +the two invariants that follow from that: every translation key the Python +side names has to exist in it, and every other language has to mirror its +shape. +""" from __future__ import annotations @@ -9,16 +18,22 @@ from string import Formatter from custom_components.localthings.registry.capability import Capability from custom_components.localthings.registry.entities import PLATFORM_OF -from custom_components.localthings.select import TRANSLATED_SELECT_STATES INTEGRATION = ( Path(__file__).parents[1] / "custom_components" / "localthings" ) +TRANSLATIONS = INTEGRATION / "translations" -def _load(name: str) -> dict: - return json.loads((INTEGRATION / name).read_text(encoding="utf-8")) +def _load(language: str) -> dict: + return json.loads( + (TRANSLATIONS / f"{language}.json").read_text(encoding="utf-8") + ) + + +def _languages() -> list[str]: + return sorted(path.stem for path in TRANSLATIONS.glob("*.json")) def _topology(value): @@ -72,46 +87,53 @@ def _all_descriptions(): yield from visit(value) -def test_source_and_english_translation_topology_and_placeholders_match(): - source = _load("strings.json") - english = _load("translations/en.json") - assert _topology(source) == _topology(english) +def test_every_language_mirrors_the_english_catalog(): + """English is the complete catalog; the rest must match it key for key. + A missing key silently falls back to English at runtime, so checking the + shape is the only way to notice a half-finished translation. + """ + english = _load("en") english_strings = dict(_walk_strings(english)) - for path, value in _walk_strings(source): - assert _placeholders(value) == _placeholders(english_strings[path]), path + for language in _languages(): + if language == "en": + continue + translated = _load(language) + assert _topology(english) == _topology(translated), language + + translated_strings = dict(_walk_strings(translated)) + for path, value in english_strings.items(): + # Placeholders are substituted by name, so a translation that + # drops or invents one renders a literal '{...}' in the UI. + assert _placeholders(value) == _placeholders( + translated_strings[path] + ), (language, path) -def test_runtime_translation_catalogs_have_no_unresolved_references(): - for language in ("en", "nl"): +def test_no_catalog_carries_unresolved_core_references(): + """``[%key:...%]`` never resolves for a custom integration. + + Core's build tooling expands these; nothing does for us, so a reference + left in a catalog would reach the UI verbatim. + """ + for language in _languages(): unresolved = [ (path, value) - for path, value in _walk_strings( - _load(f"translations/{language}.json") - ) + for path, value in _walk_strings(_load(language)) if "[%key:" in value ] - assert unresolved == [] - - -def test_english_and_dutch_catalog_topology_and_placeholders_match(): - english = _load("translations/en.json") - dutch = _load("translations/nl.json") - assert _topology(english) == _topology(dutch) - - dutch_strings = dict(_walk_strings(dutch)) - for path, value in _walk_strings(english): - assert _placeholders(value) == _placeholders(dutch_strings[path]), path + assert unresolved == [], language def test_every_translatable_descriptor_has_an_entity_catalog_entry(): - entity_strings = _load("strings.json")["entity"] + entity_strings = _load("en")["entity"] missing = [] for desc in _all_descriptions(): translation_key = desc.translation_key if callable(translation_key): - # Runtime table resolvers use the generic name-only fallback plus - # the static tables currently documented by this integration. + # Runtime table resolvers pick their key out of the catalog + # itself (see laundry.cycle_select), so there's nothing static + # to check here; the generic 'cycle' fallback is asserted below. continue if translation_key is None and desc.name is not None: translation_key = desc.key @@ -122,23 +144,36 @@ def test_every_translatable_descriptor_has_an_entity_catalog_entry(): missing.append((platform, desc.key, translation_key)) assert missing == [] + # cycle_select falls back to 'cycle' for any course table without its + # own entry, and resolves to '_cycle_
' where there is one. select_strings = entity_strings["select"] for key in ("cycle", "washer_cycle_table_02", "dryer_cycle_table_03"): assert key in select_strings -def test_select_state_normalization_is_synchronized_with_catalog(): - select_strings = _load("strings.json")["entity"]["select"] - translated = { - key: frozenset(value["state"]) - for key, value in select_strings.items() - if "state" in value - } - assert TRANSLATED_SELECT_STATES == translated +def test_descriptor_names_match_the_english_catalog(): + """``SamsungEntityDescription.name`` never reaches the UI. + + A descriptor carrying a ``name`` is translated under ``desc.key`` + (entity.py), so the catalog wins and the Python string survives purely + as documentation next to the field it describes -- which is only worth + keeping if it still says what the UI says. Editing one side alone is + otherwise invisible. + """ + entity_strings = _load("en")["entity"] + drifted = [] + for desc in _all_descriptions(): + if desc.name is None or desc.translation_key is not None: + continue + platform = PLATFORM_OF[type(desc)] + catalog_name = entity_strings.get(platform, {}).get(desc.key, {}).get("name") + if catalog_name != desc.name: + drifted.append((platform, desc.key, desc.name, catalog_name)) + assert drifted == [] def test_all_entity_state_translation_keys_are_lowercase(): - entity_strings = _load("strings.json")["entity"] + entity_strings = _load("en")["entity"] for platform in entity_strings.values(): for translation in platform.values(): for state_key in translation.get("state", {}): diff --git a/tests/test_washer_capabilities.py b/tests/test_washer_capabilities.py index b8655ce..a7b876e 100644 --- a/tests/test_washer_capabilities.py +++ b/tests/test_washer_capabilities.py @@ -76,7 +76,7 @@ class TestWasherCourse: def test_reads_raw_course_code_from_options_array(self): """rep_fn returns the raw device code; display names come from - strings.json via translation_key, not from Python (see select.py's + translations/en.json via translation_key, not Python (see select.py's _display()).""" desc = next(e for e in washer.WASHER_COURSE.entities if e.key == 'cycle') rep = {'x.com.samsung.da.options': ['DeviceType_0167', 'Course_1C', 'GMT_04']} From 10c850f2b9162690fc7f2aad7cd63d271bcb46b5 Mon Sep 17 00:00:00 2001 From: Marc Billow Date: Fri, 24 Jul 2026 19:45:37 +0000 Subject: [PATCH 10/15] refactor(i18n): drop the vestigial descriptor name field Since entity.py started routing named descriptors through the catalog under desc.key, SamsungEntityDescription.name has been read for its value nowhere -- only twice as a flag, to decide whether an entity was translated at all. That left 148 English names duplicated between Python and translations/en.json with nothing keeping them honest: six had already drifted, invisibly, because editing the Python side changes nothing a user sees. So the field is gone, and translation_key defaults to desc.key. A descriptor now sets translation_key only to share one catalog entry across descriptors or to point at a differently-named one, and the catalog is the only place an entity name exists. Every descriptor resolves to exactly the translation key, icon, entity category, enabled-default and gating it did before -- with one deliberate exception: the hood fan, previously the sole descriptor with no key at all, now resolves to 'fan'. That is inert, because fan.py sets _attr_name = None so the entity presents as the device itself. The three helpers that forwarded a name into a descriptor (laundry.bool_option_switch, washer._bool_option_switch, air_purifier's sensor table) lose that parameter. test_translations.py now requires a catalog entry for every descriptor rather than only translated ones. Claude-Session: https://claude.ai/code/session_01GiibJZZLWVvyxq7mc7EDNp --- .claude/skills/adding-device-support/SKILL.md | 51 +++++++++---- custom_components/localthings/entity.py | 42 +++++------ .../registry/capabilities/air_purifier.py | 30 ++++---- .../registry/capabilities/airconditioner.py | 16 ++--- .../registry/capabilities/common.py | 45 ++++++------ .../registry/capabilities/cooktop.py | 12 ---- .../registry/capabilities/dishwasher.py | 16 ++--- .../registry/capabilities/dryer.py | 10 +-- .../registry/capabilities/fridge.py | 71 ++++++++++--------- .../registry/capabilities/laundry.py | 27 ++++--- .../registry/capabilities/operational.py | 18 +++-- .../localthings/registry/capabilities/oven.py | 32 ++++----- .../registry/capabilities/range.py | 9 ++- .../registry/capabilities/range_hood.py | 18 ----- .../registry/capabilities/washer.py | 44 ++++++------ .../localthings/registry/discovery.py | 2 +- .../localthings/registry/entities.py | 11 +-- tests/test_entity_naming.py | 10 ++- tests/test_select_options.py | 2 +- tests/test_translations.py | 42 +++++------ 20 files changed, 241 insertions(+), 267 deletions(-) diff --git a/.claude/skills/adding-device-support/SKILL.md b/.claude/skills/adding-device-support/SKILL.md index 2e68b0d..5861bd6 100644 --- a/.claude/skills/adding-device-support/SKILL.md +++ b/.claude/skills/adding-device-support/SKILL.md @@ -103,21 +103,44 @@ sub-polled between summary polls. Pick descriptor types from `entities.py` as a gap for a human, or ignore it with a documented reason — never invent an entity on a hunch (`ignored.py`'s rule). -## 5. Enum selects need translation support +## 5. Names and enum labels live in translations, never in Python -Any select whose options are raw device codes (course/cycle, and code-valued -settings) must render through translations, not Python: -- Set `translation_key='_cycle'` (or similar) on the `SelectDesc`; - `options`/`options_field` supply the **raw** codes. -- Add the labels to `translations/en.json` under - `entity.select..state.`, with the code **lowercased** - (e.g. `"16": "Cotton"`). Codes with no entry render as the raw code — that's - the cue to identify and name them. -- `en.json` is the only place these live: there is no `strings.json` (Home - Assistant doesn't read one from a custom integration), and `select.py` - derives its normalization set from the catalog, so there is no Python list - to keep in sync. Every other language must mirror `en.json` key for key — - `tests/test_translations.py` enforces that. +Descriptors have **no `name` field**. Every entity is named from the shipped +catalog, keyed by `translation_key` — which defaults to the descriptor's own +`key`. So adding `SensorDesc(key='filter_status', ...)` obliges you to add: + +```json +"entity": { "sensor": { "filter_status": { "name": "Filter status" } } } +``` + +to `translations/en.json`. Skip it and the entity ships nameless; +`tests/test_translations.py` fails the build instead. + +- **Sentence case** ("Filter status", not "Filter Status"), per HA's style + guide — capitalize only proper nouns and Samsung feature names ("AI Energy + Mode", "Storm Wash+"). +- Set `translation_key` explicitly only to **share** one catalog entry across + descriptors, or to point at a differently-named one. Two descriptors on the + same platform with the same `key` already share an entry — intended for + `common.py`'s OCF/vendor fallback pairs, a silent mislabel otherwise. +- Prefer HA's own vocabulary where it fits: a `device_class` gives you + translated states for free (`binary_sensor` door/running, `sensor` + timestamp/enum), so don't restate them. + +Selects whose options are raw device codes (course/cycle, code-valued +settings) additionally need those codes labelled: +- `options`/`options_field` supply the **raw** codes; the catalog maps them. +- Add labels under `entity.select..state.`, code + **lowercased** (e.g. `"16": "Cotton"`). `select.py` derives which values it + normalizes from the catalog itself, so there is no Python list to keep in + sync — a code with no entry simply renders as the raw code, which is the cue + to identify and name it. + +`translations/en.json` is the only place any of this lives: there is no +`strings.json` (Home Assistant doesn't read one from a custom integration) and +no `[%key:...%]` resolution (that's Core build tooling). Every other language +must mirror `en.json` key for key — also enforced by +`tests/test_translations.py`. ## 6. Coverage discipline: bound or ignored diff --git a/custom_components/localthings/entity.py b/custom_components/localthings/entity.py index 84501b4..e8c0b9b 100644 --- a/custom_components/localthings/entity.py +++ b/custom_components/localthings/entity.py @@ -38,10 +38,14 @@ def _is_included(bound: BoundEntity, coordinator: 'LocalThingsCoordinator') -> b def _derive_name(state_key: str) -> str: - """Turn a snake_case state key into a title-cased display name. + """Turn a snake_case state key into a title-cased label. Strips a trailing instance number of 0 (singleton), promotes any other instance number with a space: "door_cooler_open1" → "Door Cooler Open 1". + + Entity names themselves come from the translation catalog; this only + builds the {instance_name} placeholder those translations interpolate, + for a device that named its own compartments/ice makers. """ name = re.sub(r'(\d+)$', lambda m: f' {m.group()}' if int(m.group()) > 0 else '', state_key) return _snake_to_title(name).strip() @@ -79,21 +83,12 @@ class LocalThingsEntity(CoordinatorEntity[LocalThingsCoordinator]): "instance_name": _instance_display_name(bound, self._state_key) } - # Do not set _attr_name for translated entities: Home Assistant gives - # an explicitly-set name precedence over the translation catalog. The - # English descriptor name remains a fallback for descriptions without - # a translation key, while existing registry entity IDs stay intact via - # their unchanged unique IDs. - has_translation = ( - bound.desc.translation_key is not None or bound.desc.name is not None - ) - if not has_translation: - if bound.instance_name: - self._attr_name = ( - f"{bound.instance_name} {_derive_name(bound.desc.key)}".strip() - ) - else: - self._attr_name = _derive_name(self._state_key) + # _attr_name is deliberately left unset: Home Assistant gives an + # explicitly-set name precedence over the translation catalog, so + # setting it here would make every entity untranslatable. Every + # descriptor resolves to a catalog entry (see translation_key below); + # a platform that wants the bare device name instead sets + # _attr_name = None itself, as fan.py does for the hood's main entity. self._attr_icon = bound.desc.icon raw_cat = bound.desc.entity_category self._attr_entity_category = EntityCategory(raw_cat) if raw_cat else None @@ -101,11 +96,12 @@ class LocalThingsEntity(CoordinatorEntity[LocalThingsCoordinator]): @property def translation_key(self) -> str | None: - """Override Entity.translation_key (a property upstream, not a - plain attribute) so a callable descriptor -- e.g. - laundry.cycle_select's table-id-gated resolver -- is re-evaluated - against live coordinator data on every access, not resolved once - at construction time. + """The descriptor's catalog key, defaulting to its own `key`. + + Overrides Entity.translation_key (a property upstream, not a plain + attribute) so a callable descriptor -- e.g. laundry.cycle_select's + table-id-gated resolver -- is re-evaluated against live coordinator + data on every access, not resolved once at construction time. Discovery runs on the first /device/0 poll, which the entity registry already documents can hand a sibling resource an empty @@ -118,9 +114,7 @@ class LocalThingsEntity(CoordinatorEntity[LocalThingsCoordinator]): tk = self._bound.desc.translation_key if callable(tk): return tk(self.coordinator.last_resources) - if tk is not None: - return tk - return self._bound.desc.key if self._bound.desc.name is not None else None + return tk if tk is not None else self._bound.desc.key @property def device_info(self) -> DeviceInfo: diff --git a/custom_components/localthings/registry/capabilities/air_purifier.py b/custom_components/localthings/registry/capabilities/air_purifier.py index ec27121..5b5b736 100644 --- a/custom_components/localthings/registry/capabilities/air_purifier.py +++ b/custom_components/localthings/registry/capabilities/air_purifier.py @@ -47,20 +47,20 @@ from .common import int_or_none, sensor_item_value from .laundry import bool_option_exists, bool_option_value, option_value, replace_in_options _AIR_QUALITY_SENSORS = ( - ('dust', 'Dust', 'mdi:blur', 'Dust'), - ('fine_dust', 'Fine dust', 'mdi:blur', 'FineDust'), - ('super_fine_dust', 'Super fine dust', 'mdi:blur', 'SuperFineDust'), - ('odor', 'Odor', 'mdi:scent', 'Odor'), - ('clean_level', 'Clean level', 'mdi:air-filter', 'CleanLevel'), + ('dust', 'mdi:blur', 'Dust'), + ('fine_dust', 'mdi:blur', 'FineDust'), + ('super_fine_dust', 'mdi:blur', 'SuperFineDust'), + ('odor', 'mdi:scent', 'Odor'), + ('clean_level', 'mdi:air-filter', 'CleanLevel'), ) AIR_QUALITY = Capability( href='/sensors/vs/0', poll_tier='warm', entities=tuple( - SensorDesc(key=key, field='x.com.samsung.da.items', name=name, icon=icon, + SensorDesc(key=key, field='x.com.samsung.da.items', icon=icon, value_fn=lambda items, t=sensor_type: sensor_item_value(items, t)) - for key, name, icon, sensor_type in _AIR_QUALITY_SENSORS + for key, icon, sensor_type in _AIR_QUALITY_SENSORS ), ) @@ -85,7 +85,7 @@ FILTER = Capability( poll_tier='cold', entities=( SensorDesc(key='filter_progress', field='x.com.samsung.da.items', - name='Filter progress', unit='%', state_class='measurement', + unit='%', state_class='measurement', icon='mdi:air-filter', entity_category='diagnostic', value_fn=lambda items: int_or_none( _consumable_state(items, 'FilterProgress'))), @@ -97,7 +97,7 @@ DEVICE_ACTIVE = Capability( poll_tier='cold', entities=( BinarySensorDesc(key='device_active', field='x.com.samsung.da.deviceActive', - name='Device active', icon='mdi:check-network-outline', + icon='mdi:check-network-outline', entity_category='diagnostic', value_fn=lambda v: bool(v)), ), @@ -110,10 +110,10 @@ AIRFLOW_GENERIC = Capability( poll_tier='warm', entities=( SensorDesc(key='fan_speed_level', field='speed', - name='Fan speed level', icon='mdi:fan', + icon='mdi:fan', state_class='measurement', entity_category='diagnostic'), SensorDesc(key='fan_direction', field='direction', - name='Fan direction', icon='mdi:rotate-3d-variant', + icon='mdi:rotate-3d-variant', entity_category='diagnostic'), ), ) @@ -124,11 +124,11 @@ AIRFLOW_VS_FALLBACK = Capability( poll_tier='warm', entities=( SensorDesc(key='fan_speed_level', field='x.com.samsung.da.speedLevel', - name='Fan speed level', icon='mdi:fan', + icon='mdi:fan', state_class='measurement', entity_category='diagnostic', value_fn=int_or_none), SensorDesc(key='fan_direction', field='x.com.samsung.da.direction', - name='Fan direction', icon='mdi:rotate-3d-variant', + icon='mdi:rotate-3d-variant', entity_category='diagnostic'), ), ) @@ -145,14 +145,14 @@ MODE = Capability( href='/mode/vs/0', poll_tier='warm', entities=( - SwitchDesc(key='display_light', name='Display light', icon='mdi:led-on', + SwitchDesc(key='display_light', icon='mdi:led-on', entity_category='config', rep_fn=bool_option_value('Light'), exists_fn=bool_option_exists('Light'), write_fn=_light_write), # Read-only -- confirmed NOT the fan-speed selector (see module # docstring), actual purpose still unconfirmed. - SensorDesc(key='operating_mode', name='Operating mode', icon='mdi:fan', + SensorDesc(key='operating_mode', icon='mdi:fan', entity_category='diagnostic', rep_fn=lambda rep: option_value(rep.get('x.com.samsung.da.options'), 'Comode'), exists_fn=bool_option_exists('Comode')), diff --git a/custom_components/localthings/registry/capabilities/airconditioner.py b/custom_components/localthings/registry/capabilities/airconditioner.py index 401f815..70f5e1b 100644 --- a/custom_components/localthings/registry/capabilities/airconditioner.py +++ b/custom_components/localthings/registry/capabilities/airconditioner.py @@ -109,7 +109,7 @@ AIR_PURIFY = Capability( poll_tier='warm', entities=( SwitchDesc(key='air_purify', field='x.com.samsung.da.modes', - name='Air purification', icon='mdi:air-purifier', + icon='mdi:air-purifier', entity_category='config', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( @@ -123,7 +123,7 @@ AUTO_CLEAN = Capability( poll_tier='cold', entities=( SwitchDesc(key='auto_clean', field='x.com.samsung.da.settingStatus', - name='Auto clean', icon='mdi:spray-bottle', + icon='mdi:spray-bottle', entity_category='config', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( @@ -137,10 +137,10 @@ AIR_FILTER = Capability( poll_tier='cold', entities=( SensorDesc(key='air_filter_usage', rep_fn=_filter_usage_percent, - name='Filter usage', unit='%', state_class='measurement', + unit='%', state_class='measurement', icon='mdi:air-filter', entity_category='diagnostic'), SensorDesc(key='air_filter_status', field='x.com.samsung.da.filterStatus', - name='Filter status', device_class='enum', + device_class='enum', options=('normal', 'wash', 'replace'), translation_key='filter_status', icon='mdi:air-filter', entity_category='diagnostic', @@ -153,7 +153,7 @@ DISPLAY_LIGHT = Capability( poll_tier='cold', entities=( SwitchDesc(key='display_light', field='mode', - name='Display light', icon='mdi:led-on', + icon='mdi:led-on', entity_category='config', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( @@ -170,7 +170,7 @@ MUTE_ONCE = Capability( poll_tier='warm', entities=( SwitchDesc(key='mute_once', field='muteonce', - name='Mute once', icon='mdi:volume-mute', + icon='mdi:volume-mute', entity_category='config', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( @@ -190,11 +190,11 @@ CURRENT_LIMIT = Capability( poll_tier='cold', entities=( BinarySensorDesc(key='current_limit_enabled', field='operation', - name='Current limit enabled', icon='mdi:current-ac', + icon='mdi:current-ac', entity_category='diagnostic', value_fn=lambda v: v == 'On'), SensorDesc(key='current_limit_level', field='modes', - name='Current limit level', icon='mdi:current-ac', + icon='mdi:current-ac', entity_category='diagnostic'), ), ) diff --git a/custom_components/localthings/registry/capabilities/common.py b/custom_components/localthings/registry/capabilities/common.py index 7590328..1272a8d 100644 --- a/custom_components/localthings/registry/capabilities/common.py +++ b/custom_components/localthings/registry/capabilities/common.py @@ -102,7 +102,6 @@ POWER_GENERIC = Capability( href='/power/0', entities=( SwitchDesc(key='power_switch', field='value', - name='Power', value_fn=lambda v: bool(v), write_fn=lambda p, rep, href=None: ( ['power', '0'], {'value': p == 'On'})), @@ -114,7 +113,6 @@ POWER_VS_FALLBACK = Capability( match_fn=lambda rep, resources: '/power/0' not in resources, entities=( SwitchDesc(key='power_switch', field='x.com.samsung.da.power', - name='Power', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( ['power', 'vs', '0'], @@ -126,7 +124,7 @@ KIDS_LOCK_GENERIC = Capability( href='/kidslock/0', entities=( SwitchDesc(key='child_lock', field='value', - name='Child lock', device_class='lock', + device_class='lock', value_fn=lambda v: bool(v), write_fn=lambda p, rep, href=None: ( ['kidslock', '0'], {'value': p == 'On'})), @@ -138,7 +136,7 @@ KIDS_LOCK_VS_FALLBACK = Capability( match_fn=lambda rep, resources: '/kidslock/0' not in resources, entities=( SwitchDesc(key='child_lock', field='x.com.samsung.da.kidsLock', - name='Child lock', device_class='lock', + device_class='lock', value_fn=lambda v: v != 'Ready', write_fn=lambda p, rep, href=None: ( ['kidslock', 'vs', '0'], @@ -172,7 +170,7 @@ REMOTE_CONTROL_GENERIC = Capability( poll_tier='warm', entities=( BinarySensorDesc(key='remote_control', field='value', - name='Smart Control', device_class='connectivity', + device_class='connectivity', value_fn=lambda v: bool(v)), ), ) @@ -184,7 +182,7 @@ REMOTE_CONTROL_VS_FALLBACK = Capability( entities=( BinarySensorDesc(key='remote_control', field='x.com.samsung.da.remoteControlEnabled', - name='Smart Control', device_class='connectivity', + device_class='connectivity', value_fn=lambda v: str(v).lower() == 'true'), ), ) @@ -194,7 +192,7 @@ ALARMS = Capability( poll_tier='hot', entities=( SensorDesc(key='alarm_code', field='x.com.samsung.da.items', - name='Alarm code', icon='mdi:alert', + icon='mdi:alert', entity_category='diagnostic', value_fn=_active_alarm_codes), ), ) @@ -217,13 +215,13 @@ ENERGY_METER = Capability( # entity when /device/0 returns a not-yet-fetched stub. On a populated # rep, hide power only for the dead sentinel or an absent field. SensorDesc(key='power_watts', field='x.com.samsung.da.instantaneousPower', - name='Power', device_class='power', state_class='measurement', + device_class='power', state_class='measurement', unit='W', value_fn=clamp_power, exists_fn=lambda rep, resources: not rep or ( rep.get('x.com.samsung.da.instantaneousPower') not in (None, _DEAD_INSTANTANEOUS_POWER))), SensorDesc(key='energy_kwh', field='x.com.samsung.da.cumulativePower', - name='Energy', device_class='energy', + device_class='energy', state_class='total_increasing', unit='kWh', value_fn=wh_to_kwh, exists_fn=lambda rep, resources: ( not rep or 'x.com.samsung.da.cumulativePower' in rep)), @@ -234,7 +232,7 @@ ENERGY_METER = Capability( # energy_kwh above -- without it, an exists_fn permanently drops the # entity if setup happens to land on a not-yet-fetched stub. SensorDesc(key='power_energy_kwh', field='x.com.samsung.da.cumulativeConsumption', - name='Power energy', device_class='energy', + device_class='energy', state_class='total_increasing', unit='kWh', value_fn=wh_to_kwh, exists_fn=lambda rep, resources: ( not rep or 'x.com.samsung.da.cumulativeConsumption' in rep)), @@ -242,7 +240,7 @@ ENERGY_METER = Capability( # baseline -- present on some models (e.g. TP1X_REF_21K, issue #21/ # #27) and absent on others (issue #20/#26), unlike cumulativePower. SensorDesc(key='energy_saved_kwh', field='x.com.samsung.da.cumulativeSavedPower', - name='Energy saved', device_class='energy', + device_class='energy', state_class='total_increasing', unit='kWh', value_fn=wh_to_kwh, exists_fn=lambda rep, resources: ( not rep or 'x.com.samsung.da.cumulativeSavedPower' in rep)), @@ -250,12 +248,12 @@ ENERGY_METER = Capability( # in-progress current month. Not ever-increasing (each resets at # month boundary), so no state_class. SensorDesc(key='energy_last_month_kwh', field='x.com.samsung.da.monthlyConsumption', - name='Energy (last month)', device_class='energy', + device_class='energy', unit='kWh', value_fn=wh_to_kwh, exists_fn=lambda rep, resources: ( not rep or 'x.com.samsung.da.monthlyConsumption' in rep)), SensorDesc(key='energy_this_month_kwh', field='x.com.samsung.da.thismonthlyConsumption', - name='Energy (this month)', device_class='energy', + device_class='energy', unit='kWh', value_fn=wh_to_kwh, exists_fn=lambda rep, resources: ( not rep or 'x.com.samsung.da.thismonthlyConsumption' in rep)), @@ -266,7 +264,7 @@ WATER_METER = Capability( href='/water/consumption/vs/0', entities=( SensorDesc(key='water_liters', field='x.com.samsung.da.cumulativeWater', - name='Water consumption', device_class='water', + device_class='water', state_class='total_increasing', unit='L', icon='mdi:water', value_fn=_ml_to_l), ), @@ -277,10 +275,10 @@ WATER_FILTER = Capability( match_fn=lambda rep, _: rep.get('x.com.samsung.da.filterStatus', '').lower() != 'notused', entities=( SensorDesc(key='filter_usage', field='x.com.samsung.da.filterUsage', - name='Filter usage', unit='%', state_class='measurement', + unit='%', state_class='measurement', icon='mdi:filter'), SensorDesc(key='filter_status', field='x.com.samsung.da.filterStatus', - name='Filter status', icon='mdi:filter-check', + icon='mdi:filter-check', device_class='enum', options=('normal', 'wash', 'replace'), value_fn=lambda value: ( value.lower() if isinstance(value, str) else value @@ -348,14 +346,14 @@ AI_ENERGY_LEVEL = Capability( # cold-tier href, the same reload already required to fix which # platform got picked in that case. SwitchDesc(key='ai_energy_level', field='aiLevel', - name='AI Energy Mode', icon='mdi:leaf', + icon='mdi:leaf', entity_category='config', value_fn=lambda v: v != '0', exists_fn=lambda rep, resources: ( len(_ai_energy_supported_levels(rep)) == 1), write_fn=_ai_energy_level_switch_write), SelectDesc(key='ai_energy_level', field='aiLevel', - name='AI Energy Mode level', icon='mdi:leaf', + icon='mdi:leaf', entity_category='config', options=_ai_energy_level_options, exists_fn=lambda rep, resources: ( @@ -371,7 +369,6 @@ FIRMWARE_UPDATE = Capability( BinarySensorDesc( key='firmware_update', field='x.com.samsung.da.newVersionAvailable', - name='Firmware update available', device_class='update', entity_category='diagnostic', value_fn=lambda v: str(v).lower() == 'true' if v is not None else None, @@ -384,21 +381,21 @@ SELF_CHECK = Capability( poll_tier='cold', entities=( SensorDesc(key='selfcheck_status', field='x.com.samsung.da.status', - name='Self-check status', icon='mdi:stethoscope', + icon='mdi:stethoscope', entity_category='diagnostic'), SensorDesc(key='selfcheck_result', field='x.com.samsung.da.result', - name='Self-check result', icon='mdi:clipboard-check-outline', + icon='mdi:clipboard-check-outline', entity_category='diagnostic'), # List of error codes from the last self-check; joined for display. # Not every fridge reports the field, hence the exists_fn. SensorDesc(key='selfcheck_error', field='x.com.samsung.da.error', - name='Self-check error', icon='mdi:alert-circle-outline', + icon='mdi:alert-circle-outline', entity_category='diagnostic', exists_fn=lambda rep, resources: ( not rep or 'x.com.samsung.da.error' in rep), value_fn=lambda v: (', '.join(v) if v else None) if isinstance(v, list) else v), - ButtonDesc(key='selfcheck_start', field='', name='Start self-check', - payload='Start', icon='mdi:play-circle-outline', + ButtonDesc(key='selfcheck_start', field='', payload='Start', + icon='mdi:play-circle-outline', entity_category='diagnostic', write_fn=lambda p, rep, href=None: ( ['selfcheck', 'vs', '0'], {'x.com.samsung.da.status': p})), diff --git a/custom_components/localthings/registry/capabilities/cooktop.py b/custom_components/localthings/registry/capabilities/cooktop.py index a143786..b76138f 100644 --- a/custom_components/localthings/registry/capabilities/cooktop.py +++ b/custom_components/localthings/registry/capabilities/cooktop.py @@ -61,7 +61,6 @@ COOKTOP_POWER = Capability( BinarySensorDesc( key='power_state', field='x.com.samsung.da.power', - name='Power state', device_class='power', icon='mdi:stove', value_fn=lambda value: str(value).lower() == 'on', @@ -83,7 +82,6 @@ COOKTOP_MODE = Capability( BinarySensorDesc( key='any_burner_active', field='x.com.samsung.da.options', - name='Any burner active', device_class='running', icon='mdi:fire', value_fn=_any_burner_active, @@ -92,7 +90,6 @@ COOKTOP_MODE = Capability( SensorDesc( key=f'burner_{slot}_state', field='x.com.samsung.da.options', - name=f'Burner {slot} state', translation_key='burner_state', translation_placeholders={'number': str(slot)}, icon='mdi:gas-burner', @@ -111,14 +108,12 @@ COOKTOP_MODE = Capability( SensorDesc( key='main_timer_state', field='x.com.samsung.da.options', - name='Timer state', icon='mdi:timer-outline', value_fn=lambda options: _option_value(options, 'MainTimerState'), ), SensorDesc( key='main_timer_current', field='x.com.samsung.da.options', - name='Timer current value', icon='mdi:timer-sand', enabled_default=False, value_fn=lambda options: _int_or_none( @@ -136,7 +131,6 @@ COOKTOP_CONNECTED = Capability( BinarySensorDesc( key='cloud_connected', field='x.com.samsung.da.connected', - name='Cloud connected', device_class='connectivity', entity_category='diagnostic', value_fn=lambda value: str(value).lower() == 'on', @@ -152,35 +146,30 @@ PAIRED_HOOD_STATUS = Capability( BinarySensorDesc( key='paired_hood_connected', field='connectionState', - name='Paired hood connected', device_class='connectivity', value_fn=lambda value: str(value).lower() == 'connected', ), BinarySensorDesc( key='paired_hood_power', field='power', - name='Paired hood power', device_class='running', value_fn=lambda value: str(value).lower() == 'on', ), SensorDesc( key='paired_hood_fan_speed', field='fanSpeed', - name='Paired hood fan speed', icon='mdi:fan', value_fn=_int_or_none, ), BinarySensorDesc( key='paired_hood_light', field='lampState', - name='Paired hood light', device_class='light', value_fn=lambda value: str(value).lower() == 'on', ), SensorDesc( key='paired_hood_model', field='micomModelId', - name='Paired hood model', icon='mdi:information-outline', entity_category='diagnostic', enabled_default=False, @@ -188,7 +177,6 @@ PAIRED_HOOD_STATUS = Capability( SensorDesc( key='paired_hood_firmware', field='firmwareVersion', - name='Paired hood firmware', icon='mdi:chip', entity_category='diagnostic', enabled_default=False, diff --git a/custom_components/localthings/registry/capabilities/dishwasher.py b/custom_components/localthings/registry/capabilities/dishwasher.py index 887d11d..0657c1f 100644 --- a/custom_components/localthings/registry/capabilities/dishwasher.py +++ b/custom_components/localthings/registry/capabilities/dishwasher.py @@ -18,13 +18,13 @@ DISHWASHER_SETTINGS = Capability( href='/dishwasher/vs/0', entities=( SwitchDesc(key='sanitize', field='x.com.samsung.da.sanitize', - name='Sanitize', icon='mdi:bacteria', + icon='mdi:bacteria', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( ['dishwasher', 'vs', '0'], {'x.com.samsung.da.sanitize': 'On' if p == 'On' else 'Off'})), SelectDesc(key='heated_dry', field='x.com.samsung.da.heatedDry', - name='Smart Dry', icon='mdi:heat-wave', + icon='mdi:heat-wave', options_field='x.com.samsung.da.supportedHeatedDry', write_fn=lambda p, rep, href=None: ( ['dishwasher', 'vs', '0'], @@ -45,9 +45,9 @@ CYCLE_OPTIONS = Capability( href='/course/vs/0', entities=( cycle_select(translation_key='dishwasher_cycle', icon='mdi:dishwasher'), - bool_option_switch('storm_wash', 'Storm Wash+', 'mdi:weather-lightning-rainy', + bool_option_switch('storm_wash', 'mdi:weather-lightning-rainy', 'StormWashZone'), - bool_option_switch('auto_release_dry', 'Auto release dry', 'mdi:door-open', + bool_option_switch('auto_release_dry', 'mdi:door-open', 'AutoDoorRelease', gate_on_presence=True), ), ) @@ -61,10 +61,10 @@ DIAGNOSIS = Capability( poll_tier='cold', entities=( SensorDesc(key='diagnosis_status', field='x.com.samsung.da.diagnosisStart', - name='Diagnosis status', icon='mdi:stethoscope', + icon='mdi:stethoscope', entity_category='diagnostic'), - ButtonDesc(key='diagnosis_start', field='', name='Start diagnosis', - payload='Start', icon='mdi:play-circle-outline', + ButtonDesc(key='diagnosis_start', field='', payload='Start', + icon='mdi:play-circle-outline', entity_category='diagnostic', write_fn=lambda p, rep, href=None: ( ['diagnosis', 'vs', '0'], {'x.com.samsung.da.diagnosisStart': p})), @@ -76,7 +76,7 @@ OPERATION_ORIGIN = Capability( poll_tier='cold', entities=( SensorDesc(key='operation_origin', field='origin', - name='Last operation source', icon='mdi:remote', + icon='mdi:remote', entity_category='diagnostic'), ), ) diff --git a/custom_components/localthings/registry/capabilities/dryer.py b/custom_components/localthings/registry/capabilities/dryer.py index 9f49406..f1fcb70 100644 --- a/custom_components/localthings/registry/capabilities/dryer.py +++ b/custom_components/localthings/registry/capabilities/dryer.py @@ -24,13 +24,13 @@ DRYER_SETTINGS = Capability( poll_tier='warm', entities=( SensorDesc(key='dry_level', field='x.com.samsung.da.dryLevel', - name='Dry level', icon='mdi:water-percent'), + icon='mdi:water-percent'), SensorDesc(key='dry_time', field='x.com.samsung.da.dryTime', - name='Dry time', icon='mdi:timer'), + icon='mdi:timer'), SensorDesc(key='dryer_type', field='x.com.samsung.da.dryerType', - name='Dryer type', icon='mdi:tumble-dryer'), + icon='mdi:tumble-dryer'), SwitchDesc(key='wrinkle_prevent', field='x.com.samsung.da.wrinklePrevent', - name='Wrinkle prevent', icon='mdi:iron', + icon='mdi:iron', value_fn=lambda v: v == 'On', write_fn=_wrinkle_write), ), @@ -58,6 +58,6 @@ DRYER_DIAGNOSIS = Capability( poll_tier='warm', entities=( SensorDesc(key='diagnosis', field='x.com.samsung.da.diagnosisStart', - name='Diagnosis', entity_category='diagnostic'), + entity_category='diagnostic'), ), ) diff --git a/custom_components/localthings/registry/capabilities/fridge.py b/custom_components/localthings/registry/capabilities/fridge.py index 6967b5b..72bf573 100644 --- a/custom_components/localthings/registry/capabilities/fridge.py +++ b/custom_components/localthings/registry/capabilities/fridge.py @@ -55,7 +55,7 @@ TEMP_CURRENT_GENERIC = Capability( poll_tier='warm', entities=( SensorDesc(key='temperature', field='temperature', - name=None, translation_key='instance_temperature', + translation_key='instance_temperature', use_instance_name=True, icon='mdi:thermometer', device_class='temperature', unit_fn=_temp_unit, state_class='measurement'), @@ -69,7 +69,7 @@ TEMP_SETPOINT_GENERIC = Capability( poll_tier='warm', entities=( NumberDesc(key='setpoint', field='temperature', - name=None, translation_key='instance_setpoint', + translation_key='instance_setpoint', use_instance_name=True, device_class='temperature', unit_fn=_temp_unit, native_min=-20.0, native_max=50.0, range_field='range', entity_category='config', @@ -89,7 +89,7 @@ ICEMAKER_NIGHTTIME = Capability( poll_tier='warm', entities=( SwitchDesc(key='ice_night_mode', field='ice.night.status', - name='Nighttime ice quiet mode', icon='mdi:weather-night', + icon='mdi:weather-night', entity_category='config', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( @@ -103,8 +103,9 @@ ICEMAKER_NIGHTTIME = Capability( # /icemaker/status/vs/0 is kept as exact-href cap and binds first. # /icemaker/nighttime/vs/0 is excluded by match_fn (lacks iceMaker.state). # -# Entity names are derived from x.com.samsung.da.iceMaker.name ("CUBED_ICE", -# "ICE_BITES") via name_field, not the href's "one"/"two" segment -- these two +# Entity names interpolate x.com.samsung.da.iceMaker.name ("CUBED_ICE", +# "ICE_BITES") -- read via name_field, reaching the translated name as the +# {instance_name} placeholder -- not the href's "one"/"two" segment. These two # ice makers are independent on/off toggles that can both be enabled at once # (issue #27), so they stay separate entities rather than a single ice-type # select, but users still want them labeled with the device's own names. @@ -125,18 +126,18 @@ ICEMAKER_GENERIC = Capability( entities=( SensorDesc(key='making_status', field='x.com.samsung.da.iceMaker.iceMakingStatus', - name=None, use_instance_name=True, icon='mdi:cube-outline', + use_instance_name=True, icon='mdi:cube-outline', device_class='enum', options=('icestatus_stop', 'icestatus_run'), translation_key='ice_making_status', value_fn=lambda v: v.lower() if isinstance(v, str) else v), SwitchDesc(key='enabled', field='x.com.samsung.da.iceMaker.state', - name=None, translation_key='instance_enabled', + translation_key='instance_enabled', use_instance_name=True, icon='mdi:cube-outline', value_fn=lambda v: v == 'On', write_fn=_icemaker_write('x.com.samsung.da.iceMaker.state')), SelectDesc(key='type', field='x.com.samsung.da.iceType.desired', - name=None, use_instance_name=True, icon='mdi:cube-outline', + use_instance_name=True, icon='mdi:cube-outline', translation_key='ice_type', entity_category='config', options_field='x.com.samsung.da.iceType.supported', @@ -154,7 +155,7 @@ DOOR_ALERT = Capability( poll_tier='warm', entities=( SelectDesc(key='door_alert', field='alert.door', - name='Door alarm', icon='mdi:bell-alert', + icon='mdi:bell-alert', translation_key='door_alert', entity_category='config', options_field='supportedAlert.door', @@ -180,12 +181,12 @@ STATUS_LOCK = Capability( poll_tier='warm', entities=( SwitchDesc(key='auto_door_opener', field='x.com.samsung.da.ado.devicecontrol', - name='Auto door opener', icon='mdi:door-open', + icon='mdi:door-open', entity_category='config', value_fn=lambda v: v == 'On', write_fn=_status_lock_write('x.com.samsung.da.ado.devicecontrol')), SwitchDesc(key='fridge_sound', field='x.com.samsung.da.device.sound', - name='Sound', icon='mdi:volume-high', + icon='mdi:volume-high', entity_category='config', value_fn=lambda v: v == 'On', write_fn=_status_lock_write('x.com.samsung.da.device.sound')), @@ -210,7 +211,7 @@ DEFROST_DELAY = Capability( poll_tier='warm', entities=( SwitchDesc(key='defrost_delay', field='x.com.samsung.da.delayDefrost', - name='Defrost delay', icon='mdi:snowflake-off', + icon='mdi:snowflake-off', entity_category='config', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( @@ -232,7 +233,7 @@ DEFROST_BLOCK_STATUS = Capability( poll_tier='warm', entities=( BinarySensorDesc(key='defrost_active', field='x.com.samsung.da.modes', - name='Defrost active', icon='mdi:snowflake-melt', + icon='mdi:snowflake-melt', entity_category='diagnostic', value_fn=lambda modes: bool(modes) and modes[0] == 'DEFROST_BLOCK_ON'), ), @@ -255,12 +256,12 @@ REFRIGERATION = Capability( poll_tier='warm', entities=( SwitchDesc(key='rapid_fridge', field='x.com.samsung.da.rapidFridge', - name='Rapid fridge', icon='mdi:fridge-industrial', + icon='mdi:fridge-industrial', entity_category='config', value_fn=lambda v: v == 'On', write_fn=_refrigeration_write('x.com.samsung.da.rapidFridge')), SwitchDesc(key='rapid_freezing', field='x.com.samsung.da.rapidFreezing', - name='Rapid freezing', icon='mdi:snowflake', + icon='mdi:snowflake', entity_category='config', value_fn=lambda v: v == 'On', write_fn=_refrigeration_write('x.com.samsung.da.rapidFreezing')), @@ -282,7 +283,7 @@ AUTOFILL = Capability( poll_tier='warm', entities=( SwitchDesc(key='autofill', field='x.com.samsung.da.autofill', - name='Autofill pitcher', icon='mdi:cup-water', + icon='mdi:cup-water', entity_category='config', value_fn=lambda v: v == 'On', write_fn=_autofill_write), @@ -298,7 +299,7 @@ WELCOME_LIGHTING = Capability( poll_tier='warm', entities=( SwitchDesc(key='welcome_lighting', field='status', - name='Welcome lighting', icon='mdi:motion-sensor', + icon='mdi:motion-sensor', entity_category='config', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( @@ -389,7 +390,7 @@ CABINET_LIGHT_ENHANCED = Capability( poll_tier='warm', entities=( SelectDesc(key='day_brightness', field='level.brightness.daytime', - name='Cabinet brightness', icon='mdi:brightness-5', + icon='mdi:brightness-5', translation_key='day_brightness', entity_category='config', options=_NIGHT_BRIGHTNESS_OPTIONS, @@ -397,7 +398,7 @@ CABINET_LIGHT_ENHANCED = Capability( ['cabinet', 'light', 'enhanced', 'vs', '0'], {'level.brightness.daytime': p})), SelectDesc(key='brightness_level', field='level.brightness.nighttime', - name='Night brightness', icon='mdi:brightness-4', + icon='mdi:brightness-4', translation_key='brightness_level', entity_category='config', options=_NIGHT_BRIGHTNESS_OPTIONS, @@ -405,12 +406,12 @@ CABINET_LIGHT_ENHANCED = Capability( ['cabinet', 'light', 'enhanced', 'vs', '0'], {'level.brightness.nighttime': p})), TimeDesc(key='night_start', field='', - name='Night light start', icon='mdi:clock-start', + icon='mdi:clock-start', entity_category='config', rep_fn=_night_start_value, write_fn=_night_start_write), TimeDesc(key='night_end', field='', - name='Night light end', icon='mdi:clock-end', + icon='mdi:clock-end', entity_category='config', rep_fn=_night_end_value, write_fn=_night_end_write), @@ -434,11 +435,11 @@ CABINET_LIGHT = Capability( poll_tier='warm', entities=( SwitchDesc(key='cabinet_light_switch', field='x.com.samsung.da.lightControl', - name='Cabinet light', icon='mdi:fridge-outline', + icon='mdi:fridge-outline', value_fn=lambda v: v == 'On', write_fn=_cabinet_light_write), SwitchDesc(key='cabinet_light_dim', field='light.dimming.status', - name='Brighten gradually', icon='mdi:brightness-auto', + icon='mdi:brightness-auto', entity_category='config', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( @@ -462,7 +463,7 @@ SABBATH = Capability( poll_tier='warm', entities=( SwitchDesc(key='sabbath_mode', field='x.com.samsung.da.sabbathMode', - name='Sabbath mode', icon='mdi:hands-pray', + icon='mdi:hands-pray', entity_category='config', value_fn=lambda v: v == 'On', write_fn=_sabbath_write), @@ -482,7 +483,7 @@ BEVERAGE_ZONE = Capability( poll_tier='warm', entities=( SelectDesc(key='beverage_zone_mode', field='roomDesiredMode', - name='Beverage zone mode', icon='mdi:glass-wine', + icon='mdi:glass-wine', translation_key='beverage_zone_mode', entity_category='config', options_field='roomSupportedModes', @@ -510,7 +511,7 @@ PANTRY_ZONE = Capability( poll_tier='warm', entities=( SelectDesc(key='pantry_zone_mode', field='x.com.samsung.da.mode', - name='Pantry zone mode', icon='mdi:glass-wine', + icon='mdi:glass-wine', translation_key='pantry_zone_mode', entity_category='config', options_field='x.com.samsung.da.supportedOptions', @@ -557,7 +558,7 @@ FLEX_ZONE = Capability( poll_tier='warm', entities=( SelectDesc(key='flex_zone_mode', - name='Flex zone mode', icon='mdi:thermostat', + icon='mdi:thermostat', translation_key='flex_zone_mode', entity_category='config', options_field='x.com.samsung.da.supportedOptions', @@ -578,7 +579,7 @@ DOOR_GENERIC = Capability( poll_tier='hot', entities=( BinarySensorDesc(key='open', field='openState', - name=None, translation_key='instance_open', + translation_key='instance_open', use_instance_name=True, device_class='door', value_fn=lambda v: v == 'Open'), ), @@ -608,7 +609,7 @@ DOORS_FALLBACK = Capability( poll_tier='hot', entities=( BinarySensorDesc(key='door_open', field='x.com.samsung.da.items', - name='Door', device_class='door', + device_class='door', value_fn=lambda items: any( i.get('x.com.samsung.da.openState') == 'Open' for i in (items or []))), @@ -640,13 +641,13 @@ TEMPERATURES_FALLBACK = Capability( poll_tier='warm', entities=( SensorDesc(key='freezer_temperature', field='x.com.samsung.da.items', - name='Freezer temperature', icon='mdi:thermometer', + icon='mdi:thermometer', device_class='temperature', state_class='measurement', unit_fn=lambda rep: _temp_item_unit( rep.get('x.com.samsung.da.items'), 'Freezer'), value_fn=lambda items: _temp_item_value(items, 'Freezer')), SensorDesc(key='fridge_temperature', field='x.com.samsung.da.items', - name='Fridge temperature', icon='mdi:thermometer', + icon='mdi:thermometer', device_class='temperature', state_class='measurement', unit_fn=lambda rep: _temp_item_unit( rep.get('x.com.samsung.da.items'), 'Fridge'), @@ -669,7 +670,7 @@ ICEMAKER_STATUS_FALLBACK = Capability( poll_tier='warm', entities=( SwitchDesc(key='ice_maker_enabled', field='x.com.samsung.da.iceMaker', - name='Ice maker', icon='mdi:cube-outline', + icon='mdi:cube-outline', value_fn=lambda v: v == 'On', write_fn=lambda p, rep, href=None: ( ['icemaker', 'status', 'vs', '0'], @@ -699,17 +700,17 @@ REFRIGERATION_FALLBACK = Capability( poll_tier='warm', entities=( BinarySensorDesc(key='defrost_active', field='defrost', - name='Defrost active', icon='mdi:snowflake-melt', + icon='mdi:snowflake-melt', entity_category='diagnostic', value_fn=lambda v: bool(v), exists_fn=lambda rep, resources: '/defrost/block/vs/0' not in resources), BinarySensorDesc(key='rapid_fridge', field='rapidCool', - name='Rapid fridge', icon='mdi:fridge-industrial', + icon='mdi:fridge-industrial', entity_category='config', value_fn=lambda v: bool(v), exists_fn=lambda rep, resources: '/refrigeration/vs/0' not in resources), BinarySensorDesc(key='rapid_freezing', field='rapidFreeze', - name='Rapid freezing', icon='mdi:snowflake', + icon='mdi:snowflake', entity_category='config', value_fn=lambda v: bool(v), exists_fn=lambda rep, resources: '/refrigeration/vs/0' not in resources), diff --git a/custom_components/localthings/registry/capabilities/laundry.py b/custom_components/localthings/registry/capabilities/laundry.py index 943a18d..b8c30bd 100644 --- a/custom_components/localthings/registry/capabilities/laundry.py +++ b/custom_components/localthings/registry/capabilities/laundry.py @@ -61,30 +61,30 @@ DOOR_LED = Capability( href='/doorled/light/vs/0', entities=( SelectDesc(key='led_brightness', field='setBrightness', - name='Door LED brightness', icon='mdi:brightness-6', + icon='mdi:brightness-6', entity_category='config', options=_LED_LEVELS, write_fn=_led_brightness_write), SwitchDesc(key='led_night_light', field='setNightLight', - name='Door LED night light', icon='mdi:weather-night', + icon='mdi:weather-night', entity_category='config', value_fn=lambda v: v == 'On', write_fn=_led_night_write), SelectDesc(key='led_night_brightness', field='setNightLightBrightness', - name='Door LED night brightness', icon='mdi:brightness-4', + icon='mdi:brightness-4', entity_category='config', options=_LED_LEVELS, write_fn=lambda p, rep, href=None: ( ['doorled', 'light', 'vs', '0'], {'setNightLightBrightness': p})), TimeDesc(key='led_night_start', field='setNightLightTimeStart', - name='Door LED night start', icon='mdi:clock-start', + icon='mdi:clock-start', entity_category='config', value_fn=_parse_hm, write_fn=lambda p, rep, href=None: ( ['doorled', 'light', 'vs', '0'], {'setNightLightTimeStart': f'{p.hour:02d}:{p.minute:02d}'})), TimeDesc(key='led_night_end', field='setNightLightTimeEnd', - name='Door LED night end', icon='mdi:clock-end', + icon='mdi:clock-end', entity_category='config', value_fn=_parse_hm, write_fn=lambda p, rep, href=None: ( @@ -97,7 +97,7 @@ SOUND_MODE = Capability( href='/settings/sound/mode/vs/0', entities=( SelectDesc(key='sound_mode', field='mode', - name='Sound mode', icon='mdi:volume-high', + icon='mdi:volume-high', entity_category='config', options=_SOUND_MODES, write_fn=_sound_mode_write), ), @@ -107,7 +107,7 @@ SOUND_VOLUME = Capability( href='/settings/sound/volume/vs/0', entities=( NumberDesc(key='sound_volume', field='level', - name='Sound volume', icon='mdi:volume-medium', + icon='mdi:volume-medium', entity_category='config', native_min=0, native_max=15, step=5, value_fn=lambda v: int(v) if v is not None else None, @@ -128,13 +128,13 @@ BUZZER_SOUND = Capability( href='/buzzersound/vs/0', entities=( SelectDesc(key='buzzer_sound', field='setBuzzerSound', - name='Buzzer sound', icon='mdi:volume-high', + icon='mdi:volume-high', entity_category='config', options_field='supportedBuzzerSound', write_fn=lambda p, rep, href=None: ( ['buzzersound', 'vs', '0'], {'setBuzzerSound': p})), SelectDesc(key='finish_sound', field='setFinishSound', - name='Finish sound', icon='mdi:bell-ring', + icon='mdi:bell-ring', entity_category='config', exists_fn=lambda rep, resources: 'supportedFinishSound' in rep, options_field='supportedFinishSound', @@ -320,7 +320,7 @@ def cycle_select(*, translation_key, icon, table_href=None): return candidate if has_entity_translation('select', candidate) else 'cycle' return SelectDesc( - key='cycle', name='Cycle', icon=icon, translation_key=key, + key='cycle', icon=icon, translation_key=key, options=cycle_options, exists_fn=lambda rep, resources: bool(cycle_options(resources)), rep_fn=lambda rep: option_value(rep.get('x.com.samsung.da.options'), 'Course'), @@ -360,8 +360,8 @@ def bool_option_exists(prefix): rep.get('x.com.samsung.da.options'), prefix) is not None -def bool_option_switch(key, name, icon, prefix, *, entity_category=None, - gate_on_presence=False, validate_fn=None): +def bool_option_switch(key, icon, prefix, *, entity_category=None, + gate_on_presence=False, validate_fn=None): """A SwitchDesc over a '_On'/'_Off' options[] token. gate_on_presence self-gates the entity off on models that never report @@ -373,7 +373,7 @@ def bool_option_switch(key, name, icon, prefix, *, entity_category=None, building one, if needed, is the caller's job. """ return SwitchDesc( - key=key, name=name, icon=icon, entity_category=entity_category, + key=key, icon=icon, entity_category=entity_category, exists_fn=bool_option_exists(prefix) if gate_on_presence else None, rep_fn=bool_option_value(prefix), write_fn=bool_option_write(prefix), @@ -396,7 +396,6 @@ JOB_BEGINNING_STATUS = Capability( entities=( SensorDesc(key='job_beginning_status', field='x.com.samsung.da.currentStatus', - name='Job beginning status', entity_category='diagnostic'), ), ) diff --git a/custom_components/localthings/registry/capabilities/operational.py b/custom_components/localthings/registry/capabilities/operational.py index 99d853d..9d98d96 100644 --- a/custom_components/localthings/registry/capabilities/operational.py +++ b/custom_components/localthings/registry/capabilities/operational.py @@ -73,7 +73,7 @@ def _finish_time(remaining_str): # Shared by dryer/dishwasher/oven/washer -- oven.py imports this directly # rather than keeping its own copy, since both wrote the identical # state='Ready' RMW. -STOP_BUTTON = ButtonDesc(key='stop', field='', name='Stop', payload='Ready', +STOP_BUTTON = ButtonDesc(key='stop', field='', payload='Ready', icon='mdi:stop', write_fn=lambda p, rep, href=None: ( ['operational', 'state', 'vs', '0'], @@ -84,7 +84,7 @@ OPERATIONAL_STATE = Capability( poll_tier='hot', entities=( SensorDesc(key='machine_state', field='x.com.samsung.da.state', - name='Machine state', device_class='enum', + device_class='enum', options=('idle', 'active', 'pause'), translation_key='machine_state', value_fn=_to_ocf), # cycle_active is a bool derived from machine_state; used by the @@ -92,23 +92,22 @@ OPERATIONAL_STATE = Capability( # Harmless for non-oven appliances — just an extra bool in state. # Samsung firmware keeps state='Run' after progress reaches 'Finish', # so we also gate on progress to avoid a stuck 'Running' indication. - # Named 'Running' rather than 'Cycle active' -- this href (and the + # Named 'Running' in the catalog rather than 'Cycle active' -- this href (and the # start/pause/stop buttons below) is shared across the dryer/ # dishwasher/oven/washer families, and 'cycle' is laundry-specific # vocabulary that doesn't fit an oven's bake/roast/etc. BinarySensorDesc(key='cycle_active', device_class='running', - name='Running', rep_fn=lambda rep: ( _SAMSUNG_STATE_TO_OCF.get(rep.get('x.com.samsung.da.state')) == 'active' and rep.get('x.com.samsung.da.progress') != 'Finish' )), - SensorDesc(key='progress', name='Progress', icon='mdi:progress-wrench', + SensorDesc(key='progress', icon='mdi:progress-wrench', rep_fn=lambda rep: ( 'Idle' if _SAMSUNG_STATE_TO_OCF.get(rep.get('x.com.samsung.da.state')) != 'active' else _progress(rep.get('x.com.samsung.da.progress')) )), SensorDesc(key='progress_percentage', - name='Progress percent', unit='%', state_class='measurement', + unit='%', state_class='measurement', rep_fn=lambda rep: ( 0 if _SAMSUNG_STATE_TO_OCF.get(rep.get('x.com.samsung.da.state')) != 'active' else _int(rep.get('x.com.samsung.da.progressPercentage')) @@ -117,13 +116,12 @@ OPERATIONAL_STATE = Capability( # firmware leaves a stale remainingTime after a cycle ends, and # freezes it at '00:01:00' when progress reaches 'Finish'. SensorDesc(key='finish_time', device_class='timestamp', - name='Estimated finish', rep_fn=lambda rep: ( None if _SAMSUNG_STATE_TO_OCF.get(rep.get('x.com.samsung.da.state')) != 'active' or rep.get('x.com.samsung.da.progress') == 'Finish' else _finish_time(rep.get('x.com.samsung.da.remainingTime')) )), - NumberDesc(key='delay_start_hours', name='Delay start', icon='mdi:timer-plus-outline', + NumberDesc(key='delay_start_hours', icon='mdi:timer-plus-outline', device_class='duration', unit='h', native_min=0, native_max=24, step=1, rep_fn=lambda rep: _delay_hours( @@ -132,12 +130,12 @@ OPERATIONAL_STATE = Capability( write_fn=lambda p, rep, href=None: ( ['operational', 'state', 'vs', '0'], {_delay_field(rep): _format_delay(p)})), - ButtonDesc(key='start', field='', name='Start', payload='Run', + ButtonDesc(key='start', field='', payload='Run', icon='mdi:play', write_fn=lambda p, rep, href=None: ( ['operational', 'state', 'vs', '0'], {'x.com.samsung.da.state': p})), - ButtonDesc(key='pause', field='', name='Pause', payload='Pause', + ButtonDesc(key='pause', field='', payload='Pause', icon='mdi:pause', write_fn=lambda p, rep, href=None: ( ['operational', 'state', 'vs', '0'], diff --git a/custom_components/localthings/registry/capabilities/oven.py b/custom_components/localthings/registry/capabilities/oven.py index 5da0397..6fa25a0 100644 --- a/custom_components/localthings/registry/capabilities/oven.py +++ b/custom_components/localthings/registry/capabilities/oven.py @@ -227,25 +227,25 @@ OVEN_OPERATIONAL_STATE = Capability( poll_tier='hot', entities=( SensorDesc(key='machine_state', field='x.com.samsung.da.state', - name='Machine state', icon='mdi:stove', + icon='mdi:stove', device_class='enum', options=('idle', 'active', 'pause'), translation_key='machine_state', value_fn=_to_ocf), BinarySensorDesc(key='cycle_active', field='x.com.samsung.da.state', - name='Running', device_class='running', + device_class='running', value_fn=lambda v: _SAMSUNG_STATE_TO_OCF.get(v) == 'active'), SensorDesc(key='progress_percentage', field='x.com.samsung.da.progressPercentage', - name='Progress percent', unit='%', state_class='measurement', + unit='%', state_class='measurement', value_fn=_int), SensorDesc(key='operation_time_minutes', field='x.com.samsung.da.operationTime', - name='Operation time', unit='min', + unit='min', state_class='measurement', value_fn=_op_minutes), SensorDesc(key='finish_time', field='x.com.samsung.da.remainingTime', - name='Estimated finish', device_class='timestamp', + device_class='timestamp', value_fn=_finish_time), NumberDesc(key='cook_time', field='x.com.samsung.da.operationTime', - name='Cook time', unit='min', native_min=0, native_max=1439, + unit='min', native_min=0, native_max=1439, step=1.0, icon='mdi:timer', value_fn=_op_minutes, write_fn=_cook_time_write), STOP_BUTTON, @@ -257,7 +257,7 @@ OVEN_CAVITY = Capability( poll_tier='hot', entities=( SensorDesc(key='oven_state', field='x.com.samsung.da.state', - name='Cavity state'), + ), ), ) @@ -290,7 +290,7 @@ OVEN_SETPOINT = Capability( entities=( # NumberDesc first — test_oven_setpoint_write_is_read_modify_write uses entities[0] NumberDesc(key='oven_setpoint', field='x.com.samsung.da.items', - name='Setpoint', device_class='temperature', unit_fn=_oven_temp_unit, + device_class='temperature', unit_fn=_oven_temp_unit, native_min=float(SETPOINT_MIN_C), native_max=float(SETPOINT_MAX_C), step=float(SETPOINT_STEP_C), icon='mdi:thermometer-chevron-up', native_min_fn=lambda rep: float(_setpoint_bounds(rep)[0]), @@ -300,7 +300,7 @@ OVEN_SETPOINT = Capability( (items[0].get('x.com.samsung.da.desired') if items else None)), write_fn=_oven_setpoint_write), SensorDesc(key='current_temp_c', field='x.com.samsung.da.items', - name='Temperature', device_class='temperature', + device_class='temperature', state_class='measurement', unit_fn=_oven_temp_unit, value_fn=lambda items: _int( (items[0].get('x.com.samsung.da.current') if items else None))), @@ -312,7 +312,7 @@ OVEN_DOOR = Capability( poll_tier='hot', entities=( BinarySensorDesc(key='door_open', field='x.com.samsung.da.items', - name='Door', device_class='door', + device_class='door', value_fn=lambda items: ( items[0].get('x.com.samsung.da.openState') == 'Open' if items else None)), @@ -324,7 +324,7 @@ OVEN_CONNECTED = Capability( poll_tier='warm', entities=( BinarySensorDesc(key='cloud_connected', field='x.com.samsung.da.connected', - name='Cloud connected', device_class='connectivity', + device_class='connectivity', entity_category='diagnostic', value_fn=lambda v: v == 'On'), ), @@ -343,25 +343,25 @@ OVEN_MODE = Capability( entities=( # SelectDesc first — test_oven_mode_options_nonempty uses entities[0] SelectDesc(key='oven_mode', field='x.com.samsung.da.modes', - name='Cooking mode', icon='mdi:tune', + icon='mdi:tune', options=_OVEN_MODES, value_fn=lambda v: v[0] if v else None, write_fn=_oven_mode_write), SwitchDesc(key='lamp', field='x.com.samsung.da.options', - name='Lamp', icon='mdi:track-light', + icon='mdi:track-light', value_fn=lambda opts: _option_value(opts, 'UpperLamp') == 'On', write_fn=_lamp_write), SwitchDesc(key='sound', field='x.com.samsung.da.options', - name='Sound', icon='mdi:volume-high', + icon='mdi:volume-high', entity_category='config', value_fn=lambda opts: _option_value(opts, 'Sound') == 'On', write_fn=_sound_write), SwitchDesc(key='fast_preheat', field='x.com.samsung.da.options', - name='Fast preheat', icon='mdi:fire', + icon='mdi:fire', value_fn=lambda opts: _option_value(opts, 'fastpreheat') == 'On', write_fn=_fastpreheat_write), SwitchDesc(key='natural_steam', field='x.com.samsung.da.options', - name='Natural steam', icon='mdi:kettle-steam', + icon='mdi:kettle-steam', value_fn=lambda opts: _option_value(opts, 'NaturalSteam') == 'On', write_fn=_naturalsteam_write), ), diff --git a/custom_components/localthings/registry/capabilities/range.py b/custom_components/localthings/registry/capabilities/range.py index 3afe0c1..2ebb8af 100644 --- a/custom_components/localthings/registry/capabilities/range.py +++ b/custom_components/localthings/registry/capabilities/range.py @@ -81,7 +81,7 @@ def _burner_entities(i): n = i + 1 return ( SelectDesc(key=f'burner_{i}_power_level', field='burnerList', - name=f'Burner {n} power level', icon='mdi:knob', + icon='mdi:knob', translation_key='range_burner_power_level', translation_placeholders={'number': str(n)}, options=_power_level_options, @@ -89,13 +89,13 @@ def _burner_entities(i): value_fn=_burner_field_fn(i, 'powerLevel'), write_fn=_burner_power_level_write(i)), SensorDesc(key=f'burner_{i}_state', field='burnerList', - name=f'Burner {n} state', icon='mdi:stove', + icon='mdi:stove', translation_key='burner_state', translation_placeholders={'number': str(n)}, exists_fn=exists, value_fn=_burner_field_fn(i, 'operationState')), BinarySensorDesc(key=f'burner_{i}_hot_surface', field='burnerList', - name=f'Burner {n} hot surface', device_class='heat', + device_class='heat', translation_key='burner_hot_surface', translation_placeholders={'number': str(n)}, exists_fn=exists, @@ -108,7 +108,7 @@ COOKTOP_STATUS = Capability( poll_tier='hot', entities=( SensorDesc(key='cooktop_state', field='operationState', - name='Cooktop state', icon='mdi:pot-steam'), + icon='mdi:pot-steam'), *[e for i in range(MAX_BURNERS) for e in _burner_entities(i)], ), ) @@ -129,7 +129,6 @@ COOKTOP_SAFETY = Capability( poll_tier='warm', entities=( BinarySensorDesc(key='cooktop_safety_shutoff_enabled', field='safetyAlert', - name='Hot surface auto-shutoff enabled', entity_category='config', value_fn=lambda v: (v or {}).get('state') == 'on'), ), diff --git a/custom_components/localthings/registry/capabilities/range_hood.py b/custom_components/localthings/registry/capabilities/range_hood.py index e9e6869..59cebc9 100644 --- a/custom_components/localthings/registry/capabilities/range_hood.py +++ b/custom_components/localthings/registry/capabilities/range_hood.py @@ -52,7 +52,6 @@ HOOD_ALARMS = Capability( SensorDesc( key='alarm_code', field='x.com.samsung.da.items', - name='Alarm code', icon='mdi:alert', entity_category='diagnostic', value_fn=_active_alarm_codes, @@ -93,13 +92,11 @@ HOOD_FAN = Capability( FanDesc( key='fan', field='x.com.samsung.da.hood.fanSpeed', - name=None, write_fn=_hood_fan_write, ), BinarySensorDesc( key='automatic_operation', field='x.com.samsung.da.hood.autoOperation', - name='Automatic operation', icon='mdi:fan-auto', entity_category='diagnostic', value_fn=lambda value: str(value).lower() == 'on', @@ -125,7 +122,6 @@ HOOD_LAMP = Capability( SwitchDesc( key='lamp', field='x.com.samsung.lamp.power', - name='Lamp', icon='mdi:range-hood', value_fn=lambda value: str(value).lower() == 'on', write_fn=lambda payload, rep, href=None: ( @@ -136,7 +132,6 @@ HOOD_LAMP = Capability( SelectDesc( key='lamp_brightness', field='x.com.samsung.lamp.current', - name='Lamp brightness', icon='mdi:brightness-6', translation_key='range_hood_lamp_brightness', options_field='x.com.samsung.lamp.range', @@ -153,7 +148,6 @@ HOOD_FILTER = Capability( SensorDesc( key='hood_filter_usage', field='x.com.samsung.da.filterUsage', - name='Filter usage', unit='%', state_class='measurement', icon='mdi:air-filter', @@ -163,7 +157,6 @@ HOOD_FILTER = Capability( SensorDesc( key='hood_filter_status', field='x.com.samsung.da.filterStatus', - name='Filter status', icon='mdi:air-filter', entity_category='diagnostic', device_class='enum', @@ -176,7 +169,6 @@ HOOD_FILTER = Capability( SensorDesc( key='hood_filter_capacity', field='x.com.samsung.da.filterCapacity', - name='Filter capacity', unit='h', icon='mdi:timer-outline', entity_category='diagnostic', @@ -194,26 +186,22 @@ AIR_QUALITY = Capability( SensorDesc( key='clean_level', field='x.com.samsung.da.items', - name='Clean level', icon='mdi:air-filter', value_fn=lambda items: sensor_item_value(items, 'CleanLevel'), ), SensorDesc( key='dust', field='x.com.samsung.da.items', - name='Dust', value_fn=lambda items: sensor_item_value(items, 'Dust'), ), SensorDesc( key='fine_dust', field='x.com.samsung.da.items', - name='Fine dust', value_fn=lambda items: sensor_item_value(items, 'FineDust'), ), SensorDesc( key='super_fine_dust', field='x.com.samsung.da.items', - name='Super fine dust', value_fn=lambda items: sensor_item_value(items, 'SuperFineDust'), ), ), @@ -227,7 +215,6 @@ AIR_LEVEL_CHECK = Capability( BinarySensorDesc( key='periodic_air_sensing', field='x.com.samsung.da.periodicSensingActivationState', - name='Periodic air sensing', icon='mdi:radar', entity_category='diagnostic', value_fn=lambda value: str(value).lower() == 'on', @@ -235,14 +222,12 @@ AIR_LEVEL_CHECK = Capability( SensorDesc( key='air_sensing_state', field='x.com.samsung.da.sensingState', - name='Air sensing state', icon='mdi:radar', entity_category='diagnostic', ), SensorDesc( key='last_air_sensing_time', field='x.com.samsung.da.lastSensingTime', - name='Last air sensing time', device_class='timestamp', entity_category='diagnostic', value_fn=_timestamp, @@ -250,14 +235,12 @@ AIR_LEVEL_CHECK = Capability( SensorDesc( key='last_air_sensing_level', field='x.com.samsung.da.lastSensingLevel', - name='Last air sensing level', icon='mdi:air-filter', entity_category='diagnostic', ), SensorDesc( key='automatic_ventilation_state', field='x.com.samsung.da.autoExeState', - name='Automatic ventilation state', icon='mdi:fan-auto', entity_category='diagnostic', ), @@ -272,7 +255,6 @@ AUTO_VENTILATION = Capability( SensorDesc( key='auto_ventilation_action', field='action', - name='Auto ventilation action', icon='mdi:fan-auto', ), ), diff --git a/custom_components/localthings/registry/capabilities/washer.py b/custom_components/localthings/registry/capabilities/washer.py index 37d3917..a655df2 100644 --- a/custom_components/localthings/registry/capabilities/washer.py +++ b/custom_components/localthings/registry/capabilities/washer.py @@ -75,19 +75,19 @@ WASHER_SETTINGS = Capability( href='/washer/vs/0', entities=( SelectDesc(key='wash_temperature', field='x.com.samsung.da.waterTemperature', - name='Wash temperature', icon='mdi:thermometer-water', + icon='mdi:thermometer-water', entity_category='config', options_field='x.com.samsung.da.supportedWaterTemperature', write_fn=lambda p, rep, href=None: ( ['washer', 'vs', '0'], {'x.com.samsung.da.waterTemperature': p})), SelectDesc(key='spin_speed', field='x.com.samsung.da.spinLevel', - name='Spin speed', icon='mdi:sync', + icon='mdi:sync', entity_category='config', options_field='x.com.samsung.da.supportedSpinLevel', write_fn=lambda p, rep, href=None: ( ['washer', 'vs', '0'], {'x.com.samsung.da.spinLevel': p})), SelectDesc(key='rinse_cycles', field='x.com.samsung.da.rinseCycles', - name='Rinse cycles', icon='mdi:water-sync', + icon='mdi:water-sync', entity_category='config', options_field='x.com.samsung.da.supportedRinseCycles', write_fn=lambda p, rep, href=None: ( @@ -97,7 +97,7 @@ WASHER_SETTINGS = Capability( # #22. Self-gates off on plain washers, which never report # supportedDryLevel. SelectDesc(key='dry_level', field='x.com.samsung.da.dryLevel', - name='Dry level', icon='mdi:tumble-dryer', + icon='mdi:tumble-dryer', entity_category='config', translation_key='washer_dry_level', options_field='x.com.samsung.da.supportedDryLevel', @@ -260,7 +260,7 @@ def _dosing_low(prefix): # auto-release-dry toggles -- only this per-course gating is washer-only, so # it stays here rather than in laundry.py (see laundry.bool_option_switch's # docstring: it takes a prebuilt validate_fn and has no opinion on it). -def _bool_option_switch(key, name, icon, prefix, availability_field): +def _bool_option_switch(key, icon, prefix, availability_field): def validate(p, rep, resources): """Reject turning on when the selected course's byte in `availability_field` isn't 'F0'. Turning off is never blocked. Falls @@ -286,7 +286,7 @@ def _bool_option_switch(key, name, icon, prefix, availability_field): return None return bool_option_switch( - key, name, icon, prefix, + key, icon, prefix, entity_category='config', gate_on_presence=True, validate_fn=validate) @@ -295,17 +295,17 @@ WASHER_COURSE = Capability( entities=( cycle_select(translation_key='washer_cycle', icon='mdi:washing-machine', table_href='/st/washercourse/vs/0'), - SensorDesc(key='drum_clean_cycles_remaining', name='Drum clean due in', - icon='mdi:washing-machine-alert', unit='cycles', + SensorDesc(key='drum_clean_cycles_remaining', unit='cycles', + icon='mdi:washing-machine-alert', state_class='measurement', exists_fn=lambda rep, resources: _drum_clean_cycles_remaining(rep) is not None, rep_fn=_drum_clean_cycles_remaining), - SensorDesc(key='drum_clean_last_cleaned', name='Drum last cleaned', - icon='mdi:calendar-clock', device_class='timestamp', + SensorDesc(key='drum_clean_last_cleaned', device_class='timestamp', + icon='mdi:calendar-clock', entity_category='diagnostic', exists_fn=lambda rep, resources: _drum_clean_last_cleaned(rep) is not None, rep_fn=_drum_clean_last_cleaned), - SelectDesc(key='detergent_quantity', name='Detergent quantity', icon='mdi:cup-water', + SelectDesc(key='detergent_quantity', icon='mdi:cup-water', translation_key='detergent_quantity', entity_category='config', options=_level_options('DetergentLevelCtrl'), @@ -313,8 +313,7 @@ WASHER_COURSE = Capability( _level_options('DetergentLevelCtrl')(resources)), rep_fn=_dosing_level('DetergentLevelCtrl'), write_fn=_level_write('DetergentLevelCtrl')), - SelectDesc(key='detergent_water_hardness', name='Detergent water hardness', - icon='mdi:water-opacity', + SelectDesc(key='detergent_water_hardness', icon='mdi:water-opacity', translation_key='detergent_water_hardness', entity_category='config', options=_level_options('DetergentLevel2Ctrl'), @@ -322,7 +321,7 @@ WASHER_COURSE = Capability( _level_options('DetergentLevel2Ctrl')(resources)), rep_fn=_dosing_level('DetergentLevel2Ctrl'), write_fn=_level_write('DetergentLevel2Ctrl')), - SelectDesc(key='softener_quantity', name='Softener quantity', icon='mdi:flask-outline', + SelectDesc(key='softener_quantity', icon='mdi:flask-outline', translation_key='softener_quantity', entity_category='config', options=_level_options('SoftenerLevelCtrl'), @@ -330,8 +329,7 @@ WASHER_COURSE = Capability( _level_options('SoftenerLevelCtrl')(resources)), rep_fn=_dosing_level('SoftenerLevelCtrl'), write_fn=_level_write('SoftenerLevelCtrl')), - SelectDesc(key='softener_concentration', name='Softener concentration', - icon='mdi:flask-plus-outline', + SelectDesc(key='softener_concentration', icon='mdi:flask-plus-outline', translation_key='softener_concentration', entity_category='config', options=_level_options('SoftenerLevel2Ctrl'), @@ -339,19 +337,19 @@ WASHER_COURSE = Capability( _level_options('SoftenerLevel2Ctrl')(resources)), rep_fn=_dosing_level('SoftenerLevel2Ctrl'), write_fn=_level_write('SoftenerLevel2Ctrl')), - BinarySensorDesc(key='detergent_low', name='Detergent low', - icon='mdi:alert-circle-outline', device_class='problem', + BinarySensorDesc(key='detergent_low', device_class='problem', + icon='mdi:alert-circle-outline', exists_fn=bool_option_exists('DetergentAlarm'), rep_fn=_dosing_low('DetergentAlarm')), - BinarySensorDesc(key='softener_low', name='Softener low', - icon='mdi:alert-circle-outline', device_class='problem', + BinarySensorDesc(key='softener_low', device_class='problem', + icon='mdi:alert-circle-outline', exists_fn=bool_option_exists('SoftenerAlarm'), rep_fn=_dosing_low('SoftenerAlarm')), - _bool_option_switch('bubble_soak', 'Bubble soak', 'mdi:chart-bubble', + _bool_option_switch('bubble_soak', 'mdi:chart-bubble', 'BubbleSoak', 'BubbleSoakSet'), - _bool_option_switch('pre_wash', 'Pre-wash', 'mdi:washing-machine', + _bool_option_switch('pre_wash', 'mdi:washing-machine', 'PreWashSetting', 'PreWashAvailableSet'), - _bool_option_switch('intensive', 'Intensive', 'mdi:washing-machine', + _bool_option_switch('intensive', 'mdi:washing-machine', 'IntensiveSetting', 'IntensiveAvailableSet'), ), ) diff --git a/custom_components/localthings/registry/discovery.py b/custom_components/localthings/registry/discovery.py index 891c2ae..18cbaf9 100644 --- a/custom_components/localthings/registry/discovery.py +++ b/custom_components/localthings/registry/discovery.py @@ -32,7 +32,7 @@ class BoundEntity: def _snake_to_title(s: str) -> str: """'CUBED_ICE'/'cubed_ice' -> 'Cubed Ice'. Shared with entity.py's - _derive_name, which applies the same transform to a state key.""" + _derive_name, which applies the same transform to an href-derived key.""" return s.replace('_', ' ').title() diff --git a/custom_components/localthings/registry/entities.py b/custom_components/localthings/registry/entities.py index 19a7ec8..903a322 100644 --- a/custom_components/localthings/registry/entities.py +++ b/custom_components/localthings/registry/entities.py @@ -27,13 +27,14 @@ def _identity(v: Any) -> Any: class SamsungEntityDescription: key: str field: str = '' - name: Optional[str] = None + # Defaults to `key`: entity names and states live in translations/, never + # here, so a descriptor only sets this to share one catalog entry across + # several descriptors, or to point at a differently-named one. translation_key: Any = None # str | Callable[[dict[str, dict]], Optional[str]] # callable form receives the coordinator's full href->rep resource - # snapshot and returns the key to use (or None for no translation this - # device) -- for a descriptor shared across board generations whose - # state-code meaning isn't guaranteed consistent between them; see - # laundry.cycle_select's table-id-gated resolver. + # snapshot and returns the key to use -- for a descriptor shared across + # board generations whose state-code meaning isn't guaranteed consistent + # between them; see laundry.cycle_select's table-id-gated resolver. translation_placeholders: Optional[Mapping[str, str]] = None # Dynamic resources such as fridge compartments and ice makers use a # device-provided or href-derived instance label inside a translated name. diff --git a/tests/test_entity_naming.py b/tests/test_entity_naming.py index fa1aa5e..d204ff4 100644 --- a/tests/test_entity_naming.py +++ b/tests/test_entity_naming.py @@ -20,9 +20,13 @@ def _make_entity(desc, href='/x/vs/0', key_override=None, instance='', instance_ return LocalThingsEntity(_FakeCoordinator(), bound) -def test_explicit_fallback_name_uses_translation_instead_of_attr_name(): - """An _attr_name would take precedence over HA's translation catalog.""" - desc = BinarySensorDesc(key='enabled', name='Explicit name') +def test_descriptor_key_is_the_default_translation_key(): + """A descriptor names itself through the catalog, keyed by its own key. + + Nothing sets _attr_name: that would take precedence over HA's + translation catalog and make the entity untranslatable. + """ + desc = BinarySensorDesc(key='enabled') entity = _make_entity(desc, instance_name='Cubed Ice') assert entity.translation_key == 'enabled' assert not hasattr(entity, '_attr_name') diff --git a/tests/test_select_options.py b/tests/test_select_options.py index b318a95..f54ab57 100644 --- a/tests/test_select_options.py +++ b/tests/test_select_options.py @@ -89,7 +89,7 @@ async def test_unknown_vendor_option_round_trips_to_exact_raw_value(): self.writes.append(value) desc = SelectDesc( - key='mode', name='Mode', translation_key='door_alert', + key='mode', translation_key='door_alert', options=('Known', 'FutureVendorMode'), write_fn=lambda *args: None, ) capability = Capability(href='/x/vs/0', entities=(desc,)) diff --git a/tests/test_translations.py b/tests/test_translations.py index a8cb554..c360ffd 100644 --- a/tests/test_translations.py +++ b/tests/test_translations.py @@ -125,21 +125,32 @@ def test_no_catalog_carries_unresolved_core_references(): assert unresolved == [], language -def test_every_translatable_descriptor_has_an_entity_catalog_entry(): +# The hood fan is its device's primary feature: fan.py sets _attr_name = None +# so it presents as the device itself, and never reads a catalog name. +UNNAMED_DESCRIPTORS = {("fan", "fan")} + + +def test_every_descriptor_has_an_entity_catalog_entry(): + """A descriptor's name comes from the catalog or nowhere. + + ``translation_key`` defaults to ``desc.key`` (entity.py), and there is no + Python-side name to fall back on, so a descriptor with no catalog entry + is an entity with no name. + """ entity_strings = _load("en")["entity"] missing = [] for desc in _all_descriptions(): + platform = PLATFORM_OF[type(desc)] + if (platform, desc.key) in UNNAMED_DESCRIPTORS: + continue translation_key = desc.translation_key if callable(translation_key): # Runtime table resolvers pick their key out of the catalog # itself (see laundry.cycle_select), so there's nothing static # to check here; the generic 'cycle' fallback is asserted below. continue - if translation_key is None and desc.name is not None: - translation_key = desc.key if translation_key is None: - continue # Main fan entity: device name + HA fan translations. - platform = PLATFORM_OF[type(desc)] + translation_key = desc.key if translation_key not in entity_strings.get(platform, {}): missing.append((platform, desc.key, translation_key)) assert missing == [] @@ -151,27 +162,6 @@ def test_every_translatable_descriptor_has_an_entity_catalog_entry(): assert key in select_strings -def test_descriptor_names_match_the_english_catalog(): - """``SamsungEntityDescription.name`` never reaches the UI. - - A descriptor carrying a ``name`` is translated under ``desc.key`` - (entity.py), so the catalog wins and the Python string survives purely - as documentation next to the field it describes -- which is only worth - keeping if it still says what the UI says. Editing one side alone is - otherwise invisible. - """ - entity_strings = _load("en")["entity"] - drifted = [] - for desc in _all_descriptions(): - if desc.name is None or desc.translation_key is not None: - continue - platform = PLATFORM_OF[type(desc)] - catalog_name = entity_strings.get(platform, {}).get(desc.key, {}).get("name") - if catalog_name != desc.name: - drifted.append((platform, desc.key, desc.name, catalog_name)) - assert drifted == [] - - def test_all_entity_state_translation_keys_are_lowercase(): entity_strings = _load("en")["entity"] for platform in entity_strings.values(): From ea986fe8e58fceefe3499836cb35c5502fe1d1b2 Mon Sep 17 00:00:00 2001 From: Marc Billow Date: Fri, 24 Jul 2026 15:05:26 -0500 Subject: [PATCH 11/15] refactor: adopt cleaner write pattern for options arrays --- custom_components/localthings/coordinator.py | 21 ++++- .../registry/capabilities/air_purifier.py | 21 +++-- .../registry/capabilities/common.py | 27 ++++++ .../registry/capabilities/laundry.py | 27 +++--- .../localthings/registry/capabilities/oven.py | 41 ++++---- .../registry/capabilities/washer.py | 7 +- tests/test_air_purifier_capabilities.py | 11 +-- tests/test_common_capabilities.py | 31 ++++++ tests/test_coordinator_send_command.py | 94 +++++++++++++++++++ tests/test_dishwasher_capabilities.py | 4 +- tests/test_laundry_capabilities.py | 9 +- tests/test_oven_capabilities.py | 27 +++--- tests/test_washer_capabilities.py | 31 +++--- 13 files changed, 266 insertions(+), 85 deletions(-) create mode 100644 tests/test_coordinator_send_command.py diff --git a/custom_components/localthings/coordinator.py b/custom_components/localthings/coordinator.py index 0e3d44a..e7c39d2 100644 --- a/custom_components/localthings/coordinator.py +++ b/custom_components/localthings/coordinator.py @@ -22,7 +22,7 @@ from smartthings_local.ocf.state_cache import StateCache from .registry.batch import parse_device0_batch from .registry.by_type import for_device, for_device_by_model, for_device_by_resources -from .registry.capabilities.common import remote_control_enabled +from .registry.capabilities.common import merge_options_field, remote_control_enabled from .registry.discovery import discover, BoundEntity from .registry import CAPABILITIES from .registry.adapter import flatten @@ -612,7 +612,24 @@ class LocalThingsCoordinator(DataUpdateCoordinator[dict[str, Any]]): # introduced its own races around overlapping writes to the same # href. Simpler and safer to just hold the guard for the full, # generously-sized window and let it expire on its own. - self._observe.apply(write_href, body, source='optimistic') + # write_fn bodies that touch x.com.samsung.da.options carry only the + # changed token(s) now (issue #54: confirmed sufficient on the wire -- + # the device merges by prefix itself), not the whole packed array. + # observe.apply()'s field-level {**cached, **rep} merge doesn't know + # that -- handed the bare token list, it would replace the cached + # field outright and wipe every sibling option for the rest of the + # settle window. Pre-merge it here the same way the device does, so + # the optimistic cache entry stays complete; the minimal `body` below + # is still exactly what goes out over the wire. + optimistic_body = body + new_options = body.get('x.com.samsung.da.options') + if isinstance(new_options, list): + cached_options = (self._cache.get(write_href) or {}).get('x.com.samsung.da.options') + optimistic_body = { + **body, + 'x.com.samsung.da.options': merge_options_field(cached_options, new_options), + } + self._observe.apply(write_href, optimistic_body, source='optimistic') self._observe.mark_write_pending( write_href, settle_s=self._POST_TIMEOUT_S + self._POLL_TIMEOUT_S ) diff --git a/custom_components/localthings/registry/capabilities/air_purifier.py b/custom_components/localthings/registry/capabilities/air_purifier.py index ec27121..1aa0c3c 100644 --- a/custom_components/localthings/registry/capabilities/air_purifier.py +++ b/custom_components/localthings/registry/capabilities/air_purifier.py @@ -8,11 +8,11 @@ dishwasher.DIAGNOSIS -- identical field/write contract (x.com.samsung.da.diagnosisStart, 'Ready' on both dumps). /mode/vs/0's x.com.samsung.da.options array packs multiple independent -'_' flags into one list -- the same packed-list/RMW contract -laundry.py's option_value/replace_in_options already model for -/course/vs/0's options[] (reused directly below, just against this family's -own href). Per issue #56's follow-up (five diagnostics dumps captured with -the physical unit set to Auto/Sleep/Low/Medium/High): +'_' flags into one list -- the same packed-list contract +laundry.py's option_value/option_write already model for /course/vs/0's +options[] (reused directly below, just against this family's own href). Per +issue #56's follow-up (five diagnostics dumps captured with the physical unit +set to Auto/Sleep/Low/Medium/High): Light_On / Light_Off -- a plain on/off flag; MODE below models it as a real switch, RMW-replacing just that one entry. Comode_Off -- read 'Off' on *every* one of the five dumps, @@ -44,7 +44,7 @@ stable capture -- see the issue #56 discussion for what's needed. from ..capability import Capability from ..entities import BinarySensorDesc, SensorDesc, SwitchDesc from .common import int_or_none, sensor_item_value -from .laundry import bool_option_exists, bool_option_value, option_value, replace_in_options +from .laundry import bool_option_exists, bool_option_value, option_value, option_write _AIR_QUALITY_SENSORS = ( ('dust', 'Dust', 'mdi:blur', 'Dust'), @@ -135,9 +135,14 @@ AIRFLOW_VS_FALLBACK = Capability( def _light_write(payload, rep, href=None): - opts = list(rep.get('x.com.samsung.da.options') or []) + # option_write's single-token write is confirmed on a washer's + # /course/vs/0 (issue #54), NOT independently on this family's + # /mode/vs/0 -- extrapolated on the assumption the same vendor field + # merges the same way everywhere. If some unit replaces the field + # outright instead, this would drop Comode/OptionCode alongside it on + # the next light toggle; revisit if a real device report surfaces that. return ['mode', 'vs', '0'], { - 'x.com.samsung.da.options': replace_in_options(opts, 'Light', payload), + 'x.com.samsung.da.options': option_write('Light', payload), } diff --git a/custom_components/localthings/registry/capabilities/common.py b/custom_components/localthings/registry/capabilities/common.py index 41adade..3a29509 100644 --- a/custom_components/localthings/registry/capabilities/common.py +++ b/custom_components/localthings/registry/capabilities/common.py @@ -65,6 +65,33 @@ def _active_alarm_codes(items): return ', '.join(codes) if codes else 'none' +def merge_options_field(cached, new_tokens): + """Merge freshly-written `_` tokens into a cached + x.com.samsung.da.options[]-style array the same way the device itself + merges them: match by prefix, replace if present, append if not. + + Confirmed on real hardware (issue #54) that a write only needs to carry + the changed token(s), not the whole array -- see laundry.option_write / + oven._option_write for the write side. This is the read side of that + same fact: coordinator.async_send_command uses it to keep the + optimistic cache entry for the written href complete (every sibling + option still present) during the write-settle window, since the wire + body it applies straight to the cache no longer carries them.""" + merged = list(cached or []) + for token in new_tokens or (): + if not isinstance(token, str) or '_' not in token: + continue + prefix = token.split('_', 1)[0] + replaced = False + for i, o in enumerate(merged): + if isinstance(o, str) and o.startswith(prefix + '_'): + merged[i] = token + replaced = True + if not replaced: + merged.append(token) + return merged + + def sensor_item_value(items, sensor_type, index=0): """Pull one reading out of a `/sensors/vs/0`-style items[] list -- each item is `{type, value: [...]}`; `index` picks which slot of a possibly diff --git a/custom_components/localthings/registry/capabilities/laundry.py b/custom_components/localthings/registry/capabilities/laundry.py index 76fca4a..d7246d1 100644 --- a/custom_components/localthings/registry/capabilities/laundry.py +++ b/custom_components/localthings/registry/capabilities/laundry.py @@ -146,9 +146,13 @@ BUZZER_SOUND = Capability( # Cycle selection over /course/vs/0. # # The selected course and every other user-tunable option ride in the -# x.com.samsung.da.options array on /course/vs/0 as `_` tokens; -# a write is a read-modify-write of that whole array (cycle_write). The set of -# *selectable* courses is not hardcoded -- it's read live from +# x.com.samsung.da.options array on /course/vs/0 as `_` tokens. +# Confirmed on real hardware (issue #54): a write only needs to carry the one +# changed token -- `{'x.com.samsung.da.options': ['SoftenerLevelCtrl_2']}` -- +# the device matches by prefix, evicts the stale token, and merges the result +# into the array itself. No read-modify-write of the whole array needed (see +# option_write). The set of *selectable* courses is not hardcoded -- it's read +# live from # x.com.samsung.da.editCourseList on /wm/editcourse/vs/0 (cycle_options), so we # never show a course a given model doesn't have or hide one it does. Course # codes are uppercase hex; display names live in translations under @@ -257,17 +261,17 @@ def _course_codes_from_supported_options(course_rep): return [] -def replace_in_options(options, prefix, new_value): - return [f"{prefix}_{new_value}" if isinstance(o, str) and o.startswith(prefix + '_') else o - for o in options] +def option_write(prefix, new_value): + """A one-token x.com.samsung.da.options write -- see the module comment + above cycle_options for why this doesn't read/rewrite the whole array.""" + return [f'{prefix}_{new_value}'] def cycle_write(p, rep, href=None): - opts = list(rep.get('x.com.samsung.da.options') or []) - if not opts: + if not rep.get('x.com.samsung.da.options'): return None return ['course', 'vs', '0'], { - 'x.com.samsung.da.options': replace_in_options(opts, 'Course', p), + 'x.com.samsung.da.options': option_write('Course', p), } @@ -339,11 +343,10 @@ def bool_option_write(prefix): def write(p, rep, href=None): if p not in ('On', 'Off'): return None - opts = list(rep.get('x.com.samsung.da.options') or []) - if not opts: + if not rep.get('x.com.samsung.da.options'): return None return ['course', 'vs', '0'], { - 'x.com.samsung.da.options': replace_in_options(opts, prefix, p), + 'x.com.samsung.da.options': option_write(prefix, p), } return write diff --git a/custom_components/localthings/registry/capabilities/oven.py b/custom_components/localthings/registry/capabilities/oven.py index b8d8ea8..c0c8ccb 100644 --- a/custom_components/localthings/registry/capabilities/oven.py +++ b/custom_components/localthings/registry/capabilities/oven.py @@ -122,10 +122,17 @@ def _option_value(options, prefix): return None -def _replace_in_options(options, prefix, new_value): - """Return a new options list with the `_*` slot replaced.""" - return [f"{prefix}_{new_value}" if o.startswith(prefix + '_') else o - for o in options] +def _option_write(prefix, new_value): + """A one-token x.com.samsung.da.options write, mirroring + laundry.option_write. NOT independently confirmed on an oven -- issue + #54 only confirmed prefix-merge-on-write for a washer's /course/vs/0. + This extrapolates that same vendor field/contract to the oven's + /mode/vs/0, on the assumption the firmware handles the array the same + way there. If that assumption is wrong for some oven, a device that + replaces the field outright instead of merging would drop every other + option in it (Sound/fastpreheat/etc.) on the next write -- revisit if a + real device report surfaces that.""" + return [f'{prefix}_{new_value}'] # --------------------------------------------------------------------------- @@ -175,47 +182,41 @@ def _oven_mode_write(p, rep, href=None): def _lamp_write(p, rep, href=None): if p not in ('On', 'Off'): return None - opts = list(rep.get('x.com.samsung.da.options') or []) - if not opts: + if not rep.get('x.com.samsung.da.options'): return None return ['mode', 'vs', '0'], { - 'x.com.samsung.da.options': _replace_in_options(opts, 'UpperLamp', p), + 'x.com.samsung.da.options': _option_write('UpperLamp', p), } def _sound_write(p, rep, href=None): if p not in ('On', 'Off'): return None - opts = list(rep.get('x.com.samsung.da.options') or []) - if not opts: + if not rep.get('x.com.samsung.da.options'): return None return ['mode', 'vs', '0'], { - 'x.com.samsung.da.options': _replace_in_options(opts, 'Sound', p), + 'x.com.samsung.da.options': _option_write('Sound', p), } def _fastpreheat_write(p, rep, href=None): if p not in ('On', 'Off'): return None - opts = list(rep.get('x.com.samsung.da.options') or []) - if not opts: + if not rep.get('x.com.samsung.da.options'): return None return ['mode', 'vs', '0'], { - 'x.com.samsung.da.options': _replace_in_options(opts, 'fastpreheat', p), + 'x.com.samsung.da.options': _option_write('fastpreheat', p), } def _naturalsteam_write(p, rep, href=None): if p not in ('On', 'Off'): return None - opts = list(rep.get('x.com.samsung.da.options') or []) - if not opts: + if not rep.get('x.com.samsung.da.options'): return None - if not any(o.startswith('NaturalSteam_') for o in opts): - opts = opts + [f'NaturalSteam_{p}'] - else: - opts = _replace_in_options(opts, 'NaturalSteam', p) - return ['mode', 'vs', '0'], {'x.com.samsung.da.options': opts} + return ['mode', 'vs', '0'], { + 'x.com.samsung.da.options': _option_write('NaturalSteam', p), + } # --------------------------------------------------------------------------- diff --git a/custom_components/localthings/registry/capabilities/washer.py b/custom_components/localthings/registry/capabilities/washer.py index 8c21137..7f7aa97 100644 --- a/custom_components/localthings/registry/capabilities/washer.py +++ b/custom_components/localthings/registry/capabilities/washer.py @@ -19,7 +19,7 @@ from ..capability import Capability from ..entities import BinarySensorDesc, SelectDesc, SensorDesc from .laundry import ( bool_option_exists, bool_option_switch, cycle_options, cycle_select, hex_pairs, option_value, - replace_in_options, + option_write, ) # --------------------------------------------------------------------------- @@ -215,8 +215,7 @@ def _dosing_level(prefix): def _level_write(prefix): def write(p, rep, href=None): - opts = list(rep.get('x.com.samsung.da.options') or []) - if not opts: + if not rep.get('x.com.samsung.da.options'): return None # `p` is the zero-padded supported code the UI selected (e.g. '03'); # the device stores the level un-padded (e.g. '3'), matching how it @@ -226,7 +225,7 @@ def _level_write(prefix): except (TypeError, ValueError): native = p return ['course', 'vs', '0'], { - 'x.com.samsung.da.options': replace_in_options(opts, prefix, native), + 'x.com.samsung.da.options': option_write(prefix, native), } return write diff --git a/tests/test_air_purifier_capabilities.py b/tests/test_air_purifier_capabilities.py index 0132aed..7f483c8 100644 --- a/tests/test_air_purifier_capabilities.py +++ b/tests/test_air_purifier_capabilities.py @@ -73,9 +73,10 @@ def test_diagnosis_reuses_dishwasher_capability(): def test_light_switch_write_contract(): - """The display-light switch RMW-replaces only the 'Light_*' entry in the - packed /mode/vs/0 options list (via laundry.replace_in_options), leaving - the other flags and the list order untouched.""" + """The display-light switch writes only the changed 'Light_*' token + (via laundry.option_write) -- confirmed on real hardware (issue #54) + that the device merges by prefix itself, so no read-modify-write of the + whole packed /mode/vs/0 options list is needed.""" desc = next(e for e in air_purifier.MODE.entities if e.key == 'display_light') rep = {'x.com.samsung.da.options': [ 'Comode_Off', 'Blooming_0', 'Light_On', 'OptionCode_60282', @@ -83,9 +84,7 @@ def test_light_switch_write_contract(): assert desc.rep_fn(rep) is True assert desc.write_fn('Off', rep) == ( ['mode', 'vs', '0'], - {'x.com.samsung.da.options': [ - 'Comode_Off', 'Blooming_0', 'Light_Off', 'OptionCode_60282', - ]}, + {'x.com.samsung.da.options': ['Light_Off']}, ) diff --git a/tests/test_common_capabilities.py b/tests/test_common_capabilities.py index 473d64d..9ceb442 100644 --- a/tests/test_common_capabilities.py +++ b/tests/test_common_capabilities.py @@ -26,6 +26,37 @@ def test_common_caps_discover_on_dishwasher(dishwasher_resources): assert 'power_switch' in keys +class TestMergeOptionsField: + """merge_options_field() is the read side of issue #54's finding: a + write only needs to carry the changed token, so the coordinator uses + this to keep its optimistic cache entry complete (every sibling option + still present) without waiting on a real poll.""" + + def test_replaces_matching_prefix(self): + cached = ['DeviceType_0167', 'Course_16', 'GMT_04'] + assert common.merge_options_field(cached, ['Course_1D']) == [ + 'DeviceType_0167', 'Course_1D', 'GMT_04', + ] + + def test_appends_when_prefix_absent(self): + cached = ['DeviceType_0167'] + assert common.merge_options_field(cached, ['NaturalSteam_On']) == [ + 'DeviceType_0167', 'NaturalSteam_On', + ] + + def test_merges_multiple_tokens_independently(self): + cached = ['DetergentLevelCtrl_1', 'SoftenerLevelCtrl_0', 'GMT_04'] + merged = common.merge_options_field(cached, ['SoftenerLevelCtrl_2']) + assert merged == ['DetergentLevelCtrl_1', 'SoftenerLevelCtrl_2', 'GMT_04'] + + def test_handles_missing_cache(self): + assert common.merge_options_field(None, ['Course_1D']) == ['Course_1D'] + + def test_ignores_malformed_tokens(self): + cached = ['Course_16'] + assert common.merge_options_field(cached, ['nounderscore']) == ['Course_16'] + + # --------------------------------------------------------------------------- # OCF-native / vendor '-vs' fallback pairs (power, kids-lock, remote control). # --------------------------------------------------------------------------- diff --git a/tests/test_coordinator_send_command.py b/tests/test_coordinator_send_command.py new file mode 100644 index 0000000..5887605 --- /dev/null +++ b/tests/test_coordinator_send_command.py @@ -0,0 +1,94 @@ +"""Tests for LocalThingsCoordinator.async_send_command's optimistic-apply +step, specifically for x.com.samsung.da.options[] writes (issue #54). + +The write itself only needs to carry the single changed token -- confirmed +on real hardware, the device merges by prefix and evicts the stale token +itself. But observe.ObserveManager.apply() does a shallow {**cached, **rep} +field merge, so handing it that same minimal single-token body would +overwrite the *whole* cached options[] field, wiping every sibling option +(other courses/levels/toggles packed into the same array) until the next +real poll lands. async_send_command must pre-merge the token into the +cached array itself before applying it optimistically, while still POSTing +only the minimal body over the wire. +""" +from __future__ import annotations + +from unittest.mock import AsyncMock + +import cbor2 +import pytest +from homeassistant.core import HomeAssistant +from pytest_homeassistant_custom_component.common import MockConfigEntry + +from custom_components.localthings.const import ( + CONF_HOST, CONF_LEAF_CERT_PEM, CONF_LEAF_KEY_PEM, CONF_PORT, DOMAIN, +) +from custom_components.localthings.coordinator import LocalThingsCoordinator +from custom_components.localthings.registry.capabilities import laundry +from custom_components.localthings.registry.discovery import BoundEntity + +ENTRY_DATA = { + CONF_HOST: '10.0.0.199', + CONF_PORT: 49154, + CONF_LEAF_CERT_PEM: '-----BEGIN CERTIFICATE-----\nTEST-LEAF\n-----END CERTIFICATE-----', + CONF_LEAF_KEY_PEM: '-----BEGIN PRIVATE KEY-----\nTEST-LEAF-KEY\n-----END PRIVATE KEY-----', +} + + +class _FakeSendSession: + def __init__(self): + self.post_calls: list[tuple[list[str], bytes]] = [] + + def post(self, path_segs, payload, timeout=None): + self.post_calls.append((list(path_segs), payload)) + return 0x44, b'' + + def pace(self): + pass + + +@pytest.fixture +def coordinator(hass: HomeAssistant) -> LocalThingsCoordinator: + entry = MockConfigEntry( + domain=DOMAIN, data=ENTRY_DATA, unique_id='localthings_SENDCMD-TEST', + ) + entry.add_to_hass(hass) + coord = LocalThingsCoordinator(hass, entry) + coord.async_request_refresh = AsyncMock() + coord._session = _FakeSendSession() + return coord + + +async def test_options_write_posts_only_the_changed_token(coordinator) -> None: + href = '/course/vs/0' + coordinator._observe.apply(href, { + 'x.com.samsung.da.options': ['DeviceType_0167', 'Course_16', 'GMT_04'], + }, source='poll') + + desc = laundry.cycle_select(translation_key='dryer_cycle', icon='x') + bound = BoundEntity(href=href, capability=None, desc=desc) + + await coordinator.async_send_command(bound, '1D') + + posted_path, posted_bytes = coordinator._session.post_calls[0] + assert posted_path == ['course', 'vs', '0'] + assert cbor2.loads(posted_bytes) == {'x.com.samsung.da.options': ['Course_1D']} + + +async def test_options_write_optimistic_cache_keeps_sibling_tokens(coordinator) -> None: + """The regression this guards: applying the minimal wire body straight + to the cache would wipe DeviceType_0167/GMT_04 until the next poll.""" + href = '/course/vs/0' + coordinator._observe.apply(href, { + 'x.com.samsung.da.options': ['DeviceType_0167', 'Course_16', 'GMT_04'], + }, source='poll') + + desc = laundry.cycle_select(translation_key='dryer_cycle', icon='x') + bound = BoundEntity(href=href, capability=None, desc=desc) + + await coordinator.async_send_command(bound, '1D') + + cached = coordinator._cache.get(href) + assert cached['x.com.samsung.da.options'] == [ + 'DeviceType_0167', 'Course_1D', 'GMT_04', + ] diff --git a/tests/test_dishwasher_capabilities.py b/tests/test_dishwasher_capabilities.py index 9c05bb3..4497966 100644 --- a/tests/test_dishwasher_capabilities.py +++ b/tests/test_dishwasher_capabilities.py @@ -28,9 +28,7 @@ class TestCycleOptions: rep = {'x.com.samsung.da.options': ['DeviceType_0001', 'Course_0E', 'GMT_04']} path, body = desc.write_fn('90', rep) assert path == ['course', 'vs', '0'] - assert body == { - 'x.com.samsung.da.options': ['DeviceType_0001', 'Course_90', 'GMT_04'], - } + assert body == {'x.com.samsung.da.options': ['Course_90']} class TestDishwasherOptions: diff --git a/tests/test_laundry_capabilities.py b/tests/test_laundry_capabilities.py index a9ea555..1d39228 100644 --- a/tests/test_laundry_capabilities.py +++ b/tests/test_laundry_capabilities.py @@ -153,14 +153,15 @@ class TestCycleSelect: live = {'/wm/editcourse/vs/0': {'x.com.samsung.da.editCourseList': 'EditCourseList_16'}} assert desc.exists_fn({}, live) is True - def test_cycle_write_rmw_on_options(self): + def test_cycle_write_is_single_token(self): + """Confirmed on real hardware (issue #54): the device merges a + single-token options[] write by prefix itself, so the write only + needs to carry the changed token, not the whole rewritten array.""" desc = laundry.cycle_select(translation_key='dryer_cycle', icon='x') rep = {'x.com.samsung.da.options': ['DeviceType_0167', 'Course_16', 'GMT_04']} path, body = desc.write_fn('1D', rep) assert path == ['course', 'vs', '0'] - assert body == { - 'x.com.samsung.da.options': ['DeviceType_0167', 'Course_1D', 'GMT_04'], - } + assert body == {'x.com.samsung.da.options': ['Course_1D']} def test_cycle_write_noop_without_options(self): desc = laundry.cycle_select(translation_key='dryer_cycle', icon='x') diff --git a/tests/test_oven_capabilities.py b/tests/test_oven_capabilities.py index 1c91da7..22074df 100644 --- a/tests/test_oven_capabilities.py +++ b/tests/test_oven_capabilities.py @@ -137,7 +137,10 @@ def test_oven_mode_rejects_unknown(): # --------------------------------------------------------------------------- -# OVEN_MODE options-array RMW (lamp, sound, fast_preheat, natural_steam) +# OVEN_MODE options-array writes (lamp, sound, fast_preheat, natural_steam). +# Confirmed on real hardware (issue #54): a write only needs to carry the +# changed token -- the device matches by prefix, evicts the stale token, and +# merges the result into the array itself. No read-modify-write needed. # --------------------------------------------------------------------------- def _mode_rep(*extra_opts): @@ -146,12 +149,11 @@ def _mode_rep(*extra_opts): ]} -def test_lamp_write_replaces_slot(): +def test_lamp_write_is_single_token(): desc = next(e for e in oven.OVEN_MODE.entities if e.key == 'lamp') path, body = desc.write_fn('On', _mode_rep()) - opts = body['x.com.samsung.da.options'] - assert 'UpperLamp_On' in opts - assert 'UpperLamp_Off' not in opts + assert path == ['mode', 'vs', '0'] + assert body == {'x.com.samsung.da.options': ['UpperLamp_On']} def test_lamp_write_requires_existing_options(): @@ -159,20 +161,19 @@ def test_lamp_write_requires_existing_options(): assert desc.write_fn('On', {}) is None -def test_sound_write_preserves_other_options(): +def test_sound_write_is_single_token(): desc = next(e for e in oven.OVEN_MODE.entities if e.key == 'sound') path, body = desc.write_fn('Off', _mode_rep()) - opts = body['x.com.samsung.da.options'] - assert 'Sound_Off' in opts - assert 'UpperLamp_Off' in opts # other slot unchanged + assert body == {'x.com.samsung.da.options': ['Sound_Off']} -def test_natural_steam_appended_if_absent(): - """NaturalSteam slot is absent until first write — write_fn must append it.""" +def test_natural_steam_write_is_single_token(): + """NaturalSteam's slot may be absent from the live rep until first + write -- the single-token write covers both the insert and replace case + identically, since the device merges by prefix either way.""" desc = next(e for e in oven.OVEN_MODE.entities if e.key == 'natural_steam') path, body = desc.write_fn('On', _mode_rep()) # no NaturalSteam_* in rep - opts = body['x.com.samsung.da.options'] - assert any(o.startswith('NaturalSteam_') for o in opts) + assert body == {'x.com.samsung.da.options': ['NaturalSteam_On']} # --------------------------------------------------------------------------- diff --git a/tests/test_washer_capabilities.py b/tests/test_washer_capabilities.py index 8e2005f..b438abf 100644 --- a/tests/test_washer_capabilities.py +++ b/tests/test_washer_capabilities.py @@ -102,13 +102,14 @@ class TestWasherCourse: assert desc.exists_fn({}, live) is True def test_cycle_write(self): + """Confirmed on real hardware (issue #54): the write only needs to + carry the changed token -- the device matches by prefix, evicts the + stale token, and merges the result into the array itself.""" desc = next(e for e in washer.WASHER_COURSE.entities if e.key == 'cycle') rep = {'x.com.samsung.da.options': ['DeviceType_0167', 'Course_1C', 'GMT_04']} path, body = desc.write_fn('1D', rep) assert path == ['course', 'vs', '0'] - assert body == { - 'x.com.samsung.da.options': ['DeviceType_0167', 'Course_1D', 'GMT_04'], - } + assert body == {'x.com.samsung.da.options': ['Course_1D']} class TestDrumClean: @@ -230,20 +231,22 @@ class TestDetergentSoftenerDosing: def test_quantity_write(self): """The UI selects a padded supported code ('01'); the write posts the - un-padded device code ('1'), mirroring how the device reports it.""" + un-padded device code ('1'), mirroring how the device reports it. + + Confirmed on real hardware (issue #54): the write only needs to carry + the changed token -- the device matches by prefix, evicts the stale + token, and merges the result into the array itself. No need to read + the current array back and rewrite it whole.""" rep = {'x.com.samsung.da.options': list(_DOSING_OPTIONS)} path, body = self._desc('detergent_quantity').write_fn('01', rep) assert path == ['course', 'vs', '0'] - assert 'DetergentLevelCtrl_1' in body['x.com.samsung.da.options'] - assert 'DetergentLevelCtrl_3' not in body['x.com.samsung.da.options'] - # untouched siblings survive the read-modify-write - assert 'SoftenerLevelCtrl_3' in body['x.com.samsung.da.options'] + assert body == {'x.com.samsung.da.options': ['DetergentLevelCtrl_1']} def test_hardness_write(self): rep = {'x.com.samsung.da.options': list(_DOSING_OPTIONS)} path, body = self._desc('softener_concentration').write_fn('03', rep) assert path == ['course', 'vs', '0'] - assert 'SoftenerLevel2Ctrl_3' in body['x.com.samsung.da.options'] + assert body == {'x.com.samsung.da.options': ['SoftenerLevel2Ctrl_3']} def test_low_reservoir_off_when_alarm_off(self): rep = {'x.com.samsung.da.options': _DOSING_OPTIONS} @@ -305,18 +308,20 @@ class TestWashOptionToggles: """write_fn receives the same 'On'/'Off' string switch.py sends (not a bool) -- covers a bug where an earlier `'On' if p else 'Off'` implementation always wrote 'On', since any non-empty string - (including 'Off') is truthy.""" + (including 'Off') is truthy. + + The write body carries only the changed token (issue #54: confirmed + the device merges by prefix itself), not the whole options array.""" for key in self._keys(): prefix = self._prefix(key) rep = {'x.com.samsung.da.options': [f'{prefix}_Off', 'GMT_02']} path, body = self._desc(key).write_fn('On', rep) assert path == ['course', 'vs', '0'] - assert f'{prefix}_On' in body['x.com.samsung.da.options'] - assert 'GMT_02' in body['x.com.samsung.da.options'] + assert body == {'x.com.samsung.da.options': [f'{prefix}_On']} rep = {'x.com.samsung.da.options': [f'{prefix}_On']} path, body = self._desc(key).write_fn('Off', rep) - assert f'{prefix}_Off' in body['x.com.samsung.da.options'] + assert body == {'x.com.samsung.da.options': [f'{prefix}_Off']} assert f'{prefix}_On' not in body['x.com.samsung.da.options'] def test_write_rejects_non_on_off_payload(self): From ee77e3bda825925e71f797f3f6aa51f61b1ac4b0 Mon Sep 17 00:00:00 2001 From: Marc Billow Date: Fri, 24 Jul 2026 15:20:19 -0500 Subject: [PATCH 12/15] chore: add additional translations provided in #1 --- .../localthings/translations/en.json | 46 ++++++++++++------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/custom_components/localthings/translations/en.json b/custom_components/localthings/translations/en.json index de1ac17..aa5f63b 100644 --- a/custom_components/localthings/translations/en.json +++ b/custom_components/localthings/translations/en.json @@ -73,34 +73,46 @@ }, "washer_cycle_table_02": { "state": { + "01": "Normal", + "04": "Quick Wash", + "17": "Downloaded", + "1b": "Cotton", "1c": "Eco 40-60", "1d": "Super Speed", - "21": "Colours", - "1b": "Cotton", "1e": "15' Quick Wash", - "29": "Drum Clean+", + "1f": "Intense Cold", + "20": "Hygiene Steam", + "21": "Colors", + "22": "Wool", + "23": "Outdoor", "24": "Towels", - "33": "Bedding", - "28": "Drain/Spin", + "25": "Synthetics", "26": "Delicates", "27": "Rinse+Spin", - "22": "Wool", - "20": "Hygiene Steam", - "23": "Outdoor", - "25": "Synthetics", - "32": "Shirts", - "2f": "Activewear", - "2e": "Baby Care", - "30": "Cloudy Day", - "66": "Denim", + "28": "Drain/Spin", + "29": "Drum Clean+", "2d": "Silent Wash", - "8f": "Intense Cold", - "96": "Less Microfiber", + "2e": "Baby Care", + "2f": "Activewear", + "30": "Cloudy Day", + "32": "Shirts", + "33": "Bedding", "36": "Wash+Dry", "37": "Air Wash", "38": "Cotton Dry", "39": "Synthetics Dry", - "1f": "Intense Cold" + "53": "Heavy Duty", + "55": "Activewear", + "57": "Delicate", + "5e": "Rinse+Spin", + "65": "Colors", + "66": "Denim", + "7c": "Whites", + "7d": "Bedding/Waterproof", + "7e": "Self-Clean", + "86": "Deep Wash", + "8f": "Intense Cold", + "96": "Less Microfiber" } }, "dryer_cycle_table_03": { From adcb8a0ecb7a315dade57822f1edbc1a298c034b Mon Sep 17 00:00:00 2001 From: Marc Billow Date: Fri, 24 Jul 2026 15:33:31 -0500 Subject: [PATCH 13/15] chore: add additional translations provided in #1 dutch --- .../localthings/translations/nl.json | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/custom_components/localthings/translations/nl.json b/custom_components/localthings/translations/nl.json index e9957e1..1c33d9f 100644 --- a/custom_components/localthings/translations/nl.json +++ b/custom_components/localthings/translations/nl.json @@ -361,6 +361,14 @@ "washer_cycle_table_02": { "name": "Programma", "state": { + "01": "Normaal", + "04": "Snelle was", + "17": "Gedownload", + "1b": "Katoen", + "1c": "Eco 40-60", + "1d": "Super Speed", + "1e": "15' Quick Wash", + "1f": "Intensief koud", "20": "Hygiënisch stomen", "21": "Bonte was", "22": "Wol", @@ -371,6 +379,9 @@ "27": "Spoelen+centrifugeren", "28": "Afpompen/centrifugeren", "29": "Drum Clean+", + "2d": "Stille was", + "2e": "Babyverzorging", + "2f": "Sportkleding", "30": "Bewolkte dag", "32": "Overhemden", "33": "Beddengoed", @@ -378,17 +389,18 @@ "37": "Air Wash", "38": "Katoen drogen", "39": "Synthetisch drogen", + "53": "Intensief", + "55": "Sportkleding", + "57": "Fijn", + "5e": "Spoelen+centrifugeren", + "65": "Bonte was", "66": "Spijkergoed", - "96": "Minder microvezels", - "1c": "Eco 40-60", - "1d": "Super Speed", - "1b": "Katoen", - "1e": "15' Quick Wash", - "2f": "Sportkleding", - "2e": "Babyverzorging", - "2d": "Stille was", + "7c": "Witte was", + "7d": "Beddengoed/Waterdicht", + "7e": "Zelfreinigend", + "86": "Diep wassen", "8f": "Intensief koud", - "1f": "Intensief koud" + "96": "Minder microvezels" } }, "washer_dry_level": { From f185951a8a289734f3c39e31cfd0244e4385aa2b Mon Sep 17 00:00:00 2001 From: Marc Billow Date: Fri, 24 Jul 2026 15:42:24 -0500 Subject: [PATCH 14/15] i18n: missed a quick wash translation --- custom_components/localthings/translations/nl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/localthings/translations/nl.json b/custom_components/localthings/translations/nl.json index 1c33d9f..3429868 100644 --- a/custom_components/localthings/translations/nl.json +++ b/custom_components/localthings/translations/nl.json @@ -367,7 +367,7 @@ "1b": "Katoen", "1c": "Eco 40-60", "1d": "Super Speed", - "1e": "15' Quick Wash", + "1e": "15' Snelle was", "1f": "Intensief koud", "20": "Hygiënisch stomen", "21": "Bonte was", From 35e2c79b14bb34c438601f3cc66c04bc4f0d577b Mon Sep 17 00:00:00 2001 From: Marc Billow Date: Fri, 24 Jul 2026 20:23:48 -0500 Subject: [PATCH 15/15] brand: use updated localthing logo --- README.md | 5 +++++ .../localthings/brand/dark_icon.png | Bin 5289 -> 32947 bytes .../localthings/brand/dark_icon@2x.png | Bin 10611 -> 92415 bytes .../localthings/brand/dark_logo.png | Bin 25744 -> 52821 bytes .../localthings/brand/dark_logo@2x.png | Bin 47777 -> 142735 bytes custom_components/localthings/brand/icon.png | Bin 5400 -> 32947 bytes .../localthings/brand/icon@2x.png | Bin 10801 -> 92415 bytes custom_components/localthings/brand/logo.png | Bin 31223 -> 55859 bytes .../localthings/brand/logo@2x.png | Bin 63900 -> 149098 bytes 9 files changed, 5 insertions(+) diff --git a/README.md b/README.md index 4e401d5..c433033 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ + +LocalThings Logo + +LocalThings Logo + # LocalThings **A native Home Assistant custom integration for local control of newer-generation Samsung connected appliances.** No cloud round-trip. Add a device through HA's normal *Settings > Devices & Services* flow and it talks CoAP-over-DTLS straight to the appliance on your LAN. diff --git a/custom_components/localthings/brand/dark_icon.png b/custom_components/localthings/brand/dark_icon.png index 3a24ee80d40d786bd1ff7b3637ec9aa153b183fd..38c127460d3d43dd9b6ac3aadbef90082261c06a 100644 GIT binary patch literal 32947 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 j+jD?0MM!4gYzYwz2%t}Ubco)KHV$c_0bd&`Jh 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 diff --git a/custom_components/localthings/brand/dark_icon@2x.png b/custom_components/localthings/brand/dark_icon@2x.png index d85ce257b7e9d318d8c2f121e70395658e0071eb..c96c12ba9c2b51b7ffb14b7dea810512514d4185 100644 GIT binary patch literal 92415 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 literal 10611 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

sEB{o63Xa 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 literal 25744 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 diff --git a/custom_components/localthings/brand/dark_logo@2x.png b/custom_components/localthings/brand/dark_logo@2x.png index 3f3d6bc4460b50c1fdeff11590d834d4b0154999..09317eef71c289d62781a09c95402cba1c4a3994 100644 GIT binary patch literal 142735 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 diff --git a/custom_components/localthings/brand/icon.png b/custom_components/localthings/brand/icon.png index f6f81294f9b1ca3bfb80c6c4d3dd89f011588974..38c127460d3d43dd9b6ac3aadbef90082261c06a 100644 GIT binary patch literal 32947 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 j+jD?0MM!4gYzYwz2%t}Ubco)KHV$c_0bd&`Jh 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 literal 10801 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 PcN2N*j#l|iyQlvLpuZbC diff --git a/custom_components/localthings/brand/logo.png b/custom_components/localthings/brand/logo.png index 8bd38c1391c843f6e9004e6cba01584be205e043..2a8ea49c5f8f93871ecca2469576b3fad15c5cdb 100644 GIT binary patch literal 55859 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 literal 31223 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 Ml1dUKVum072OuR~(f|Me diff --git a/custom_components/localthings/brand/logo@2x.png b/custom_components/localthings/brand/logo@2x.png index 661bb0d702ad8c155b083ff4879a835499fd2579..815e28f8d91cda19198aa6c8f1de534d55abf0e1 100644 GIT binary patch literal 149098 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≷Q^`=$?J&{ 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 zub