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

 找回密码
 立即注册
查看: 2638|回复: 17

[UI界面] 卡片中状态中的“未触发”如何替换成字符“安全”?

[复制链接]

16

主题

178

帖子

932

积分

高级会员

Rank: 4

积分
932
金钱
754
HASS币
0
发表于 2024-2-8 17:27:46 | 显示全部楼层 |阅读模式
配置卡片中经常遇到实体状态意思跟实际情况不符,想在卡片中显示得更人性化,需要怎么写代码?
比如烟雾传感器是二元的,只有“未触发”和“已触发”,想要在卡片中分别显示成“安全”、“警报,检测到大量烟雾”,代码怎么写?
QQ图片20240208171347.png
这样写为什么不生效?
type: custom:mushroom-entity-card
entity: binary_sensor.0x158d0001538cc9_smoke
fill_container: true
tap_action:
  action: more-info
icon_color: red
primary_info: name
secondary_info: >
  {% if is_state('binary_sensor.0x158d0001538cc9_smoke', '未触发') %}
    安全
  {% else %}
    警告,检测到大量烟雾
  {% endif %}


另外有很多设置没有对应中文,怎么写代码汉化?
微信图片_20240208171609.png
回复

使用道具 举报

32

主题

1065

帖子

4946

积分

论坛元老

Rank: 8Rank: 8

积分
4946
金钱
3866
HASS币
90
发表于 2024-2-8 19:25:49 | 显示全部楼层
把‘未触发’改成'off'就行

我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

32

主题

1065

帖子

4946

积分

论坛元老

Rank: 8Rank: 8

积分
4946
金钱
3866
HASS币
90
发表于 2024-2-8 19:28:15 | 显示全部楼层
本帖最后由 relliky 于 2024-2-8 19:32 编辑

话说mushroom-entity-card的secondary_info支持template吗?如果不支持,最好用mushroom template card
我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

32

主题

1065

帖子

4946

积分

论坛元老

Rank: 8Rank: 8

积分
4946
金钱
3866
HASS币
90
发表于 2024-2-8 19:31:19 | 显示全部楼层
本帖最后由 relliky 于 2024-2-8 19:33 编辑

>>另外有很多设置没有对应中文,怎么写代码汉化?
自己写一个template 的input_select,然后跟你上面一样用if/else来替换文字
我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

16

主题

178

帖子

932

积分

高级会员

Rank: 4

积分
932
金钱
754
HASS币
0
 楼主| 发表于 2024-2-8 22:20:17 | 显示全部楼层
relliky 发表于 2024-2-8 19:25
把‘未触发’改成'off'就行

搞半天原来状态不支持中文,确实替换成off就可以了。
回复

使用道具 举报

16

主题

178

帖子

932

积分

高级会员

Rank: 4

积分
932
金钱
754
HASS币
0
 楼主| 发表于 2024-2-8 22:22:37 | 显示全部楼层
relliky 发表于 2024-2-8 19:31
>>另外有很多设置没有对应中文,怎么写代码汉化?
自己写一个template 的input_select,然后跟你上面一样用 ...

能不能举个简单的代码例子?
又如何需要汉化的地方,不是select选择类型该怎么处理?有没有通用的方法?
回复

使用道具 举报

32

主题

1065

帖子

4946

积分

论坛元老

Rank: 8Rank: 8

积分
4946
金钱
3866
HASS币
90
发表于 2024-2-9 00:49:27 | 显示全部楼层
本帖最后由 relliky 于 2024-2-9 00:59 编辑
leung 发表于 2024-2-8 22:20
搞半天原来状态不支持中文,确实替换成off就可以了。

不是不支持中文,普通的状态是支持中文的。
而是binary_sensor就只支持on和off两个state,你到开发者工具里看它的state就知道了。
你那个《未触发》,是你的集成赋予给它的device class后lovelace加上的,为了不所有的东西都只给你显示个off。这个算是lovelace自己修改显示的一部分。总的来说,这玩意只能用于显示,不能用于写代码

我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

32

主题

1065

帖子

4946

积分

论坛元老

Rank: 8Rank: 8

积分
4946
金钱
3866
HASS币
90
发表于 2024-2-9 00:50:44 | 显示全部楼层
本帖最后由 relliky 于 2024-2-9 00:54 编辑
leung 发表于 2024-2-8 22:22
能不能举个简单的代码例子?
又如何需要汉化的地方,不是select选择类型该怎么处理?有没有通用的方法? ...
template就是通用方法

template:
  - sensor:
      - name: "Car's Ignition"
        state: >
          {% if is_state('sensor.kw16obs_ignition_state', '0') %}
              lock
          {% elif is_state('sensor.kw16obs_ignition_state', '1') %}
              off
          {% elif is_state('sensor.kw16obs_ignition_state', '2') %}
              accessory
          {% elif is_state('sensor.kw16obs_ignition_state', '4') %}
              on
          {% elif is_state('sensor.kw16obs_ignition_state', '5') %}
              start
          {% else %}   
            {{states('sensor.kw16obs_ignition_state')}}
          {% endif %}
  - binary_sensor:
      - name: "Car's unlocked"
        state: >
          {% if is_state('sensor.kw16obs_lock', '0') %}
              on
          {% elif is_state('sensor.kw16obs_lock', '1') %}
              on
          {% elif is_state('sensor.kw16obs_lock', '2') %}
              off
          {% elif is_state('sensor.kw16obs_lock', '3') %}
              on
          {% else %}   
              on
          {% endif %}

我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

16

主题

178

帖子

932

积分

高级会员

Rank: 4

积分
932
金钱
754
HASS币
0
 楼主| 发表于 2024-2-10 11:33:30 | 显示全部楼层
本帖最后由 leung 于 2024-2-10 11:39 编辑
relliky 发表于 2024-2-9 00:49
不是不支持中文,普通的状态是支持中文的。
而是binary_sensor就只支持on和off两个state,你到开发者工具 ...

感谢指导,好像只能在template 卡片中使用if/else语句进行替换?entity卡片并不生效,我又尝试在Configuration.yaml中实现,但这样需要生成一个新的sensor实体,这显得很繁复,有直接翻译而不生成新实体的方式吗?
sensor:
  - platform: template
    sensors:    
      bj352_y106m_58c8_air_quality:
        friendly_name: 352空气质量
        value_template:  >
          {% if is_state('sensor.bj352_y106m_58c8_air_quality','good') %}
            好
          {% elif is_state('sensor.bj352_y106m_58c8_air_quality','middle') %}
            中
          {% elif is_state('sensor.bj352_y106m_58c8_air_quality','bad') %}
            差
          {% else %}
            未知状态
          {% endif %}
回复

使用道具 举报

16

主题

178

帖子

932

积分

高级会员

Rank: 4

积分
932
金钱
754
HASS币
0
 楼主| 发表于 2024-2-10 11:38:17 | 显示全部楼层
relliky 发表于 2024-2-9 00:50
template就是通用方法

template:

恕我愚笨,这段代码应该填写在哪里?可以给个Configuration.yaml中能完整实现的select类型代码?根据我的代码修改?
select:
  - platform: template
    input_selects:
      xiaomi_Water_heating_blanket_mode:
        friendly_name: 水暖毯模式
        value_template:  >
          {% if is_select_option('select.xiaomi_mj2_9513_mode','Common') %}
            正常
          {% elif is_select_option('select.xiaomi_mj2_9513_mode','Mite Removal') %}
            除螨
          {% else %}
            未知错误
          {% endif %}
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 20:33 , Processed in 0.061062 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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