Skip to content

Matter Semantic Tag Namespaces #147339

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 6 commits into
base: dev
Choose a base branch
from

Conversation

lboue
Copy link
Contributor

@lboue lboue commented Jun 23, 2025

Proposed change

Use Matter TagList attribute and namespaces to generate postfix name only if present.

Some device like Aqara Climate Sensor W100 or Hue Bridge has TagList attribute in Descriptor Cluster.
This allow the controller to rename entities using the location of the buttons on a multi-button switch device.

image

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.

To help with the load of incoming pull requests:

@home-assistant
Copy link

Hey there @home-assistant/matter, mind taking a look at this pull request as it has been labeled with an integration (matter) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of matter can trigger bot actions by commenting:

  • @home-assistant close Closes the pull request.
  • @home-assistant rename Awesome new title Renames the pull request.
  • @home-assistant reopen Reopen the pull request.
  • @home-assistant unassign matter Removes the current integration label and assignees on the pull request, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the pull request.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the pull request.

@lboue
Copy link
Contributor Author

lboue commented Jul 4, 2025

What do you think of this proposal?

@lboue lboue marked this pull request as ready for review July 4, 2025 18:36
@lboue lboue requested a review from a team as a code owner July 4, 2025 18:36
@jvmahon
Copy link
Contributor

jvmahon commented Jul 28, 2025

I'm working on a similar update that may be of interest to you.

The approach I'm taking starts with a semantic tag-to-text translator for all semantic tags semantic_tags.py

I was planning to then add this into the labeling code that I've proposed in PR 149524

In that PR, a labeling improvement is you can specify where Matter labels are placed by setting "label_location = "name", "after", or "ignore", in the discovery schema for an entity, and you can also override the default search labels set and specify a custom list of labels to search on a per-entity basis.

For tags, I was going to do the same thing, but allow you to specify a custom list of tags in each entities discovery scheme ("use_tag_namespaces = { 0x12, 0x08 }).

I'm waiting for PR 149525 to be done, then will add tags as a small PR onto that. Anyway, consider if the approach I'm planning makes sense to you and would satisfy your use case. I think the approach I'm planning would "overwrite" your changes, so I'm hoping to work with you on a unified proposal that would address all use cases.

@@ -1959,7 +1959,7 @@
'disabled_by': None,
'domain': 'select',
'entity_category': None,
'entity_id': 'select.mock_oven_temperature_level',
'entity_id': 'select.mock_oven_temperature_level_left',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mock oven temperature left?

Are we sure this is what we want? I am also wondering how often this happens, maybe translations can be better here so people can translate it like Left oven temperature level or something

Copy link
Contributor Author

@lboue lboue Aug 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, some cases are more difficult to manage. This is the case, for example, with a stove with several compartments.
I need to find a solution to better manage position tags. I am interested in suggestions for improvement.
'original_name': 'Temperature level (Left)',

@home-assistant
Copy link

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@home-assistant home-assistant bot marked this pull request as draft July 30, 2025 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants