Skip to content
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

建议不要使用中文拼音作为entity id #8

Closed
ye4241 opened this issue Jul 11, 2023 · 5 comments
Closed

建议不要使用中文拼音作为entity id #8

ye4241 opened this issue Jul 11, 2023 · 5 comments

Comments

@ye4241
Copy link

ye4241 commented Jul 11, 2023

可否考虑设备的product id + mac的部分前缀 做成id,这样子能能确保设备在重载/添加的时候的唯一性。

@ye4241 ye4241 changed the title 建议不要使用设备中文做成entity id的 建议不要使用中文拼音作为entity id Jul 11, 2023
@stackia
Copy link
Owner

stackia commented Jul 11, 2023

HA 的 entity id 是由 entity name 自动生成的(对于中文会转换成拼音),我们控制不了这个过程。目前只能添加完设备后,手动逐个修改 entity id。

这样子能能确保设备在重载/添加的时候的唯一性

HA 内部对于每个 entity 还有 unique id 属性(我们目前是使用 mac 作为 unique id)。在存在 unique id 的情况下,HA 会使用 unique id 作为 entity 唯一标识,所以不用担心这个问题。
只有对于通过 configuration.yaml 配置的 entity,不存在 unique id,这时候 HA 才会使用 entity id 作为唯一标识。

@ye4241
Copy link
Author

ye4241 commented Jul 11, 2023

unique id 是ha内部的唯一性的,在反接到homekit的时候,他只会用entity id的,如果不在代码层指定的话,ha会自动指定成设备名的拼音的。
同样的用miot为例,他似乎是实现了device name 和 entity id不同的,但是我没看明白在哪里设置的。

@stackia
Copy link
Owner

stackia commented Jul 11, 2023

miot 扩展好像用到了 HA 开发者文档里没有提的一些骚操作实现的,我试试看

@ye4241
Copy link
Author

ye4241 commented Jul 11, 2023

当时想过直接用mqtt创建一个假的device,是可以单独设置类似entity_id的属性的,然后让ha自动发现的。但是和custom components 应该差别很大。

https://www.home-assistant.io/integrations/humidifier.mqtt/#object_id

@stackia
Copy link
Owner

stackia commented Jul 12, 2023

https://github.com/stackia/ha-deye-dehumidifier/releases/tag/v1.4.0
在 v1.4.0 加入了这个功能,由我们自己提供 Entity ID 而不是 HA 根据名称来生成。但是仅限新安装的干净环境才能生效。如果以前已经用过了 ha-deye-dehumidifier,HA 还是会选择以前已有的历史 entity ID。如果有需要可以在 entity 的设置里手动修改一下。

@stackia stackia closed this as completed Jul 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants