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

 找回密码
 立即注册
查看: 804|回复: 7

[已解决] 如何在仪表盘显示实体状态上次更新时间,且根据状态显.....

[复制链接]

18

主题

161

帖子

952

积分

高级会员

Rank: 4

积分
952
金钱
791
HASS币
0
发表于 2022-11-13 10:43:39 | 显示全部楼层 |阅读模式
本帖最后由 13860605362 于 2022-11-13 13:58 编辑

想在仪表盘实现两个功能,一个是根据实体不同状态显示不同颜色的图标,还有一个是显示实体状态更新的时间。
目前能实现:实体状态为A的时候显示为颜色A,否则为颜色B,在颜色行代码填入格式如下:{{ '颜色A' if is_state('实体', '实体状态A') else '颜色B' }}
例:{{ 'blue' if is_state('binary_sensor.ren_yuan', 'on') else 'red' }},即为binary_sensor.ren_yuan实体状态为on时,图标显示为蓝色,否则为红色。
问题一:但是如果想实现多种状态对应多种颜色该如何实现?例:实体状态A的时候为颜色A,状态B为颜色B,状态C为颜色C,……
问题二:当该实体状态改变的时候,如何用代码表示状态改变的时间?比如:五分钟前,一个小时前这样。
回复

使用道具 举报

1

主题

40

帖子

455

积分

论坛分享达人

积分
455
金钱
415
HASS币
10
发表于 2022-11-13 12:36:36 来自手机 | 显示全部楼层
针对第一个问题:
{% if is_state('binary_sensor.doorring_nfc_status','on') %}
Blue
{% elif is_state('binary_sensor.bell_ring_switch','on')%}
Red
{% elif is_state('binary_sensor.bokeylees_imac_active','on') %}
Green
{% endif %}
elif块可以多次重复,但排在前面的优先级会更高
回复

使用道具 举报

1

主题

40

帖子

455

积分

论坛分享达人

积分
455
金钱
415
HASS币
10
发表于 2022-11-13 12:42:05 来自手机 | 显示全部楼层
针对第二个问题:
{{ relative_time(states.sensor.hourly_broadcast.last_changed) }}
中间的sensor自己换成别的,但这个状态出来好像是英文的
回复

使用道具 举报

18

主题

161

帖子

952

积分

高级会员

Rank: 4

积分
952
金钱
791
HASS币
0
 楼主| 发表于 2022-11-13 12:49:00 | 显示全部楼层
bokeylee 发表于 2022-11-13 12:42
针对第二个问题:
{{ relative_time(states.sensor.hourly_broadcast.last_changed) }}
中间的sensor自己换 ...

感谢 我试试
回复

使用道具 举报

18

主题

161

帖子

952

积分

高级会员

Rank: 4

积分
952
金钱
791
HASS币
0
 楼主| 发表于 2022-11-13 13:07:32 | 显示全部楼层
bokeylee 发表于 2022-11-13 12:42
针对第二个问题:
{{ relative_time(states.sensor.hourly_broadcast.last_changed) }}
中间的sensor自己换 ...

emmm,确实是英文。。
回复

使用道具 举报

1

主题

40

帖子

455

积分

论坛分享达人

积分
455
金钱
415
HASS币
10
发表于 2022-11-13 13:32:45 | 显示全部楼层
13860605362 发表于 2022-11-13 13:07
emmm,确实是英文。。

可以用蠢办法手动翻译一下
{{ relative_time(states.sensor.hourly_broadcast.last_changed).replace('seconds','秒') .replace('minutes','分钟') .replace('hours','小时') .replace('days','天') }}
回复

使用道具 举报

18

主题

161

帖子

952

积分

高级会员

Rank: 4

积分
952
金钱
791
HASS币
0
 楼主| 发表于 2022-11-13 13:57:54 | 显示全部楼层
bokeylee 发表于 2022-11-13 13:32
可以用蠢办法手动翻译一下
{{ relative_time(states.sensor.hourly_broadcast.last_changed).replace('se ...

学到了,有蠢办法也好,不然我都不知道怎么处理,不过有一个问题就是当触发时间是一个小时,一分钟,一天等单数的时候则会翻译错误,补充一下最后增加了单数的翻译:
{{ relative_time(states.sensor.hourly_broadcast.last_changed).replace('seconds','秒') .replace('second','秒') .replace('minutes','分钟') .replace('minute','分钟') .replace('hours','小时') .replace('hour','小时') .replace('days','天') .replace('day','天') }}
先写复数再写单数,应该也是排在前面的优先级更高的原因,刚才试了下如果先写单数再写复数的话2hours会被优先以2"hour"s被翻译成2小时s。
最后,十分感谢!!!
回复

使用道具 举报

5

主题

165

帖子

728

积分

高级会员

Rank: 4

积分
728
金钱
563
HASS币
0
发表于 2023-10-19 20:58:46 | 显示全部楼层
学习了。
我有个需求,是直接把年月日给我显示出来,不知道怎么弄。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-2 14:50 , Processed in 0.298780 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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