『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 12614|回复: 23

[修仙教程] 各位做插件的大大!这里关于插件汉化的实现和建议!

[复制链接]

13

主题

107

帖子

1128

积分

论坛技术达人

积分
1128
金钱
996
HASS币
20

教程狂人卓越贡献突出贡献

发表于 2017-8-22 01:57:42 | 显示全部楼层 |阅读模式
本帖最后由 roiff 于 2017-8-22 02:02 编辑

这只是一个建议....我们希望更舒服的使用插件
现在被HA的配置文件搞的很烦,浪费很多工作量,其实汉化和分组是有办法在插件预制的,今天闲来说说插件汉化问题。
首先说一下为什么发这个贴!我也尝试了自己去修改各位的插件,但是改了3分钟,决定放弃了,并决定发这个贴!
原因有几点:
第一、我看了几个天气插件,其实内部的资料查阅和排错还是有点工作量的,虽然天气网站有公开的API,在开发难度上不高,但是这么多sensor一一对应,也是需要一些时间的,至少一两天的完善是少不了的了。我首先是想尊重大家的劳动力的。
第二、作为我去修改,有时候的很多工作量是白费的,那么多变量和常量的对应,我首先要搞清楚这些变量和看懂,就要花不少时间,但是如果由你们自己修改的话,因为你们熟悉自己的代码,所以应该是水到渠成的。
第三、也想把更多的心得分享给大家。


再说说一下实现,HA能实现使用中文的字符串作为初始的friendly_name的,为什么很多人在配置文件写了中文名,配件就消失无法显示了呢?这是因为HA内部默认的把一定格式化的friendly name(小写)后,作为设备的entity id使用,中文字符串在这个过程出错了,就无法显示了。
其实HA有相关的函数,独立设置eneity id的,并且这时候的friendly name就可以正常写入了。

具体实现如下,在插件开头调用组件设备初始化的两个函数的其中一个(根据你的插件是否有异步需求,选择,这个我就不多说了)
from homeassistant.helpers.entity import generate_entity_id
from homeassistant.helpers.entity import async_generate_entity_id

在class插件的类初始化中,加入以下函数:
self.entity_id = generate_entity_id('sensor.{}', entity_id, hass=hass)
或者
self.entity_id = async_generate_entity_id('sensor.{}', entity_id, hass=hass)
就可以简单实现自定义的entity id 这时候name属性就会自动变成friendly_name的属性了,可以中文没问题
这两个函数还有其他一个参数,像知道具体的,可自行查阅

顺带说下,其实HA自带的设备属性,其实都可以预置的,包括icon之类的,还有是否在homebridge隐藏和HA界面隐藏
我希望插件能够是傻瓜化一点的,至少如果你写了插件,别人还要花好多时间去设置自定义的好多东西,还不如预置好了,反正再要改,在配置文件依旧会覆盖预置内容的。

下面是我截图的一个例子,是刚刚那三分钟改的和风天气的,因为要匹配变量太麻烦,就号召大家把自己的插件给汉化了,这个其实很节省其他人的工作量...
看得懂的人应该就秒懂了。

aaa.png
说明下,这个icon的属性我也没验证过,只是举了这么个例子,不过基于HA的设计,这样写应该没问题,如果有出入,应该也出入不大,如果各位想要确定方法的,可以留言,我会去看下的

PS:如何把HA本地化,汉化,我也一直有在研究,如果有好东西可能会放出来。
至于那个配置助手,最近还要完善的。



评分

参与人数 3金钱 +33 收起 理由
jyz_0501 + 20 论坛有你更精彩!
lidicn + 7 很给力!
+ 6 6到不行,希望其他大神也借鉴一下.

查看全部评分

回复

使用道具 举报

19

主题

457

帖子

8161

积分

元老级技术达人

云淡风轻近午天

积分
8161
金钱
7704
HASS币
0

教程狂人

发表于 2017-8-22 03:00:38 来自手机 | 显示全部楼层
非常感谢菲神的努力付出
回复

使用道具 举报

13

主题

107

帖子

1128

积分

论坛技术达人

积分
1128
金钱
996
HASS币
20

教程狂人卓越贡献突出贡献

 楼主| 发表于 2017-8-22 11:15:13 | 显示全部楼层
哎...很郁闷
回复

使用道具 举报

13

主题

107

帖子

1128

积分

论坛技术达人

积分
1128
金钱
996
HASS币
20

教程狂人卓越贡献突出贡献

 楼主| 发表于 2017-8-22 11:18:11 | 显示全部楼层
其他帖子一堆回复,有卵用么,这个帖子一个人没有.....话说 群里和论坛,我一共求助了3次,分别是google api 结果自己最后自己动手了 wifi路由选购 反正最后一头雾水 这次想要个汉化的天气,发现没插件也就算了 连个分组和自定义文件 都是5月份到现在没动过的....
真的是烦,不吐槽不行
回复

使用道具 举报

6

主题

72

帖子

404

积分

论坛分享达人

积分
404
金钱
332
HASS币
0
发表于 2017-8-22 12:10:37 | 显示全部楼层
roiff 发表于 2017-8-22 11:18
其他帖子一堆回复,有卵用么,这个帖子一个人没有.....话说 群里和论坛,我一共求助了3次,分别是google api 结 ...

汉化、分组、分页,这三个我敢说论坛不可能没有教程,而且这三个个性化很重,有些人想汉化成这个平常一点的名字,但有些人比较喜欢稍微有特点的,每个人的想法一样,想弄的话自己学下方法不就好了,有这么难?
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2017-8-22 14:46:26 | 显示全部楼层
roiff 发表于 2017-8-22 11:18
其他帖子一堆回复,有卵用么,这个帖子一个人没有.....话说 群里和论坛,我一共求助了3次,分别是google api 结 ...

这是给大神看的,目前能开发插件的大神,还是少啊,等他们看到肯定会回复的!
回复

使用道具 举报

3

主题

62

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
金钱
177
HASS币
0
发表于 2017-8-22 14:55:40 | 显示全部楼层
很耗人力的事情啊
回复

使用道具 举报

1

主题

190

帖子

1706

积分

金牌会员

Rank: 6Rank: 6

积分
1706
金钱
1516
HASS币
0
发表于 2017-8-22 15:38:35 | 显示全部楼层
做为英盲+小白的我,楼主着实说出了我的心声,顶
回复

使用道具 举报

13

主题

107

帖子

1128

积分

论坛技术达人

积分
1128
金钱
996
HASS币
20

教程狂人卓越贡献突出贡献

 楼主| 发表于 2017-8-22 16:05:21 来自手机 | 显示全部楼层
EabeyTong 发表于 2017-8-22 12:10
汉化、分组、分页,这三个我敢说论坛不可能没有教程,而且这三个个性化很重,有些人想汉化成这个平常一点 ...

第一,插件有了汉化名,自定义文件仍旧可以覆盖
第二,天气大部分不需要个性名吧?
第三,我没说我不会!我只是说,我不想在上面花时间,一个汉化天气的汉化分组,往往消耗的是几个小时美化时间,尤其是如果你图标,名字分组全部自己手动搞一遍的话可能要一两天,那本来大部分都没这个时间精力,就是抄的别人的配置文件,为什么就不能集成了?
第四,我不明白你的回复的意义在哪里,因为这篇文章本来的价值就不低,一般玩HA半年以上的人,都未必知道,且开发者也很多不清楚,且HA的官方论坛和官网,也绝对没有任何资料(api手册,也没提这样操作会有什么意义),我并不觉得用这个帖子换一个汉化哪里过分了?
最后,别人我不知道,但是我自己弄明白这一点,至少也是写了好几个插件之后,再去翻阅大量内部文档,然后反复试验出来的
再附上方式我在HA论坛的一次搜索中,无意的发现的帖子,和老高的回复,我想这是我唯一在HA论坛看到的相关帖子,你可以自己去搜
附上地址 https://community.home-assistant.io/t/friendly-name-with-chinese-characters-got-error-is-this-a-bug/9960/6

我希望你不要在不明情况的情况下,瞎评论好么?
33DD2957-318B-4952-BDFD-DD8F819EC82E.png
67A5504B-4BDA-4B04-95BB-6F042AD2A8E0.png
回复

使用道具 举报

13

主题

107

帖子

1128

积分

论坛技术达人

积分
1128
金钱
996
HASS币
20

教程狂人卓越贡献突出贡献

 楼主| 发表于 2017-8-22 16:10:49 | 显示全部楼层
本帖最后由 roiff 于 2017-8-22 16:11 编辑
Jones 发表于 2017-8-22 14:46
这是给大神看的,目前能开发插件的大神,还是少啊,等他们看到肯定会回复的! ...

我觉得这一次,你的加分真的少了....
我为这个事情,了解来龙去脉,零碎查找的资料和试验,尤其是翻阅大量官方文档未果后,翻了好多HA内部文件
其实消耗的总时间很多了
而且这个绝对是中文首发了,我觉得。因为我在HA官方论坛多次搜索都没有有明确的有效信息,虽然内容真的很简短
你可以看上一篇我的回复,含精量还是很高的

评分

参与人数 1金钱 +6 收起 理由
+ 6 不如来两个勋章的实在,不是吗?~.

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 10:10 , Processed in 0.381677 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表