找回密码
 立即注册
搜索
查看: 106|回复: 4

[求助] 请问如何将开关图标显示状态反转?

[复制链接]

1

主题

3

回帖

29

积分

新手上路

积分
29
金钱
25
HASS币
0
发表于 昨天 08:25 | 显示全部楼层 |阅读模式
我是新手,给小爱音箱静音功能单独做了一个图标,这个开关为打开状态的时候才是静音的,所以图标是点亮状态。可否让这个开关图标反转,也就是打开的时候不点亮颜色,关闭的时候才点亮颜色?
现在无奈只能给这个开关定义一个音箱加禁止的图标。如果能反转状态,就可以直接用音箱图标了,音箱播放的时候图标才点亮,更符合直觉。



我在卡片配置选项中只找到了“显示状态颜色”,state_color: true或者state_color: false,但如果state_color: false不管开关打开或关闭,图标状态都是灰色。
微信截图_20250630082002.png 微信截图_20250630082501.png
  - type: state-icon
    entity: switch.xiaomi_cn_865668597_l15a_mute_p_2_2
    tap_action:
      action: more-info
    icon: mdi:speaker-off
    state_color: true
    style:
      top: 20.7%
      left: 43.5%
    title: 卧室音箱静音


回复

使用道具 举报

innx 手机认证

27

主题

205

回帖

2890

积分

论坛DIY达人

积分
2890
金钱
2653
HASS币
30
发表于 昨天 14:28 | 显示全部楼层
善用搜索,也可以让你自己更快的解决问题
https://bbs.hassbian.com/thread-9231-1-1.html
## 通过sensor template,把后门外锁内门窗感应器的真实状态反向显示在HA中,转换后仍然是sensor
sensor:
  - platform: template
    sensors:
      backdoor_lock2_state:
        friendly_name: "backdoor_lock2_state"
        value_template: >-
          {% if is_state('binary_sensor.door_window_sensor_158d0004281f84', 'off') %}
            on
          {% elif is_state('binary_sensor.door_window_sensor_158d0004281f84', 'on') %}
            off
          {% endif %}
回复

使用道具 举报

1

主题

3

回帖

29

积分

新手上路

积分
29
金钱
25
HASS币
0
 楼主| 发表于 昨天 19:54 | 显示全部楼层
innx 发表于 2025-6-30 14:28
善用搜索,也可以让你自己更快的解决问题
https://bbs.hassbian.com/thread-9231-1-1.html
## 通过sensor t ...

非常感谢!我是搜索过相关的内容,但是没搜到
回复

使用道具 举报

1

主题

3

回帖

29

积分

新手上路

积分
29
金钱
25
HASS币
0
 楼主| 发表于 昨天 21:24 | 显示全部楼层
本帖最后由 dreamzerg 于 2025-6-30 22:16 编辑

找到了,最适合我的代码范例是https://bbs.hassbian.com/thread-18236-1-1.html这个帖子里louis_lee大佬提供的!
configuration.yaml里添加以下代码即可,这个范例是目前版本可用的:

switch:
  - platform: template
    switches:
      dianshipingmu:
        friendly_name: 电视屏幕
        value_template: >-
          {{
          is_state('switch.xiaomi_cn_mitv_bb8caa119341d0dee2a143ad21862acb_136b3aeb20563a3003fe7ebfc80d44fa_4kh1_is_on_p_8_1',
          'off') }}
        turn_on:
          service: switch.turn_off
          data:
            entity_id: >-
              switch.xiaomi_cn_mitv_bb8caa119341d0dee2a143ad21862acb_136b3aeb20563a3003fe7ebfc80d44fa_4kh1_is_on_p_8_1
        turn_off:
          service: switch.turn_on
          data:
            entity_id: >-
              switch.xiaomi_cn_mitv_bb8caa119341d0dee2a143ad21862acb_136b3aeb20563a3003fe7ebfc80d44fa_4kh1_is_on_p_8_1
        icon_template: >-
          {% if
          is_state('switch.xiaomi_cn_mitv_bb8caa119341d0dee2a143ad21862acb_136b3aeb20563a3003fe7ebfc80d44fa_4kh1_is_on_p_8_1',
          'on') %}mdi:toggle-switch{% else %}mdi:toggle-switch-off{% endif %}

回复

使用道具 举报

1

主题

3

回帖

29

积分

新手上路

积分
29
金钱
25
HASS币
0
 楼主| 发表于 昨天 22:40 | 显示全部楼层
还有一点要注意,如果要同时定义好几个开关,需要这样写:
switch:
  - platform: template
    switches:
      dianshipingmu:
        friendly_name: 电视屏幕
        value_template: >-
          {{
          is_state('switch.xiaomi_cn_mitv_bb8caa119341d0dee2a143ad21862acb_136b3aeb20563a3003fe7ebfc80d44fa_4kh1_is_on_p_8_1',
          'off') }}
        turn_on:
          service: switch.turn_off
          data:
            entity_id: >-
              switch.xiaomi_cn_mitv_bb8caa119341d0dee2a143ad21862acb_136b3aeb20563a3003fe7ebfc80d44fa_4kh1_is_on_p_8_1
        turn_off:
          service: switch.turn_on
          data:
            entity_id: >-
              switch.xiaomi_cn_mitv_bb8caa119341d0dee2a143ad21862acb_136b3aeb20563a3003fe7ebfc80d44fa_4kh1_is_on_p_8_1
        icon_template: >-
          {% if
          is_state('switch.xiaomi_cn_mitv_bb8caa119341d0dee2a143ad21862acb_136b3aeb20563a3003fe7ebfc80d44fa_4kh1_is_on_p_8_1',
          'on') %}mdi:toggle-switch{% else %}mdi:toggle-switch-off{% endif %}

  - platform: template
    switches:
      zhuwoyinxiang:
        friendly_name: 主卧音箱
        value_template: >-
          {{
          is_state('switch.xiaomi_cn_444430602_l15a_mute_p_2_2',
          'off') }}
        turn_on:
          service: switch.turn_off
          data:
            entity_id: >-
              switch.xiaomi_cn_444430602_l15a_mute_p_2_2
        turn_off:
          service: switch.turn_on
          data:
            entity_id: >-
              switch.xiaomi_cn_444430602_l15a_mute_p_2_2
        icon_template: >-
          {% if
          is_state('switch.xiaomi_cn_444430602_l15a_mute_p_2_2',
          'on') %}mdi:toggle-switch{% else %}mdi:toggle-switch-off{% endif %}

  - platform: template
    switches:
      ciwoyinxiang:
        friendly_name: 次卧音箱
        value_template: >-
          {{
          is_state('switch.xiaomi_cn_444514347_l15a_mute_p_2_2',
          'off') }}
        turn_on:
          service: switch.turn_off
          data:
            entity_id: >-
              switch.xiaomi_cn_444514347_l15a_mute_p_2_2
        turn_off:
          service: switch.turn_on
          data:
            entity_id: >-
              switch.xiaomi_cn_444514347_l15a_mute_p_2_2
        icon_template: >-
          {% if
          is_state('switch.xiaomi_cn_444514347_l15a_mute_p_2_2',
          'on') %}mdi:toggle-switch{% else %}mdi:toggle-switch-off{% endif %}

  - platform: template
    switches:
      woshiyinxiang:
        friendly_name: 卧室音箱
        value_template: >-
          {{
          is_state('switch.xiaomi_cn_865668597_l15a_mute_p_2_2',
          'off') }}
        turn_on:
          service: switch.turn_off
          data:
            entity_id: >-
              switch.xiaomi_cn_865668597_l15a_mute_p_2_2
        turn_off:
          service: switch.turn_on
          data:
            entity_id: >-
              switch.xiaomi_cn_865668597_l15a_mute_p_2_2
        icon_template: >-
          {% if
          is_state('switch.xiaomi_cn_865668597_l15a_mute_p_2_2',
          'on') %}mdi:toggle-switch{% else %}mdi:toggle-switch-off{% endif %}
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-7-1 16:09 , Processed in 0.059525 second(s), 13 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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