Alteração da cor no icon das baterias consoante o estado delas

Boas noites,

Gostaria de ajuda para alterar o icon consoante o estado da bateria.
O código que tenho actualmente é:

mov_hall_battery_level:
        friendly_name: Mov Hall
        unit_of_measurement: '%'
        value_template: >-
          {%- if states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level %}
            {{ states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level|round }}
          {% else %}
            {{ states.sensor.motion_sensor.state }}
          {%- endif %}
        device_class: battery

Exprimenta:

mov_hall_battery_level:
  friendly_name: Mov Hall
  unit_of_measurement: '%'
  value_template: "{{ states.binary_sensor.motion_sensor_158d0001ae9455.state | int }}"
  icon_template: '{% if states.binary_sensor.motion_sensor_158d0001ae9455.state | int == 100 %}
                     mdi:battery
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state | int >= 90 %}
                     mdi:battery-90
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state | int >= 80 %}
                     mdi:battery-80
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state | int >= 70 %}
                     mdi:battery-70
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state | int >= 60 %}
                     mdi:battery-60
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state | int >= 50 %}
                     mdi:battery-50
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state | int >= 40 %}
                     mdi:battery-40
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state | int >= 30 %}
                     mdi:battery-30
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state | int >= 20 %}
                     mdi:battery-20
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state | int >= 10 %}
                     mdi:battery-10
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.state == "unknown" %}
                     mdi:battery-alert
                  {% else %}
                     mdi:battery-outline
                  {% endif %}'

Ficou assim, só alterei esta para já

mov_hall_battery_level:
  friendly_name: Mov Hall
  unit_of_measurement: '%'
  value_template: "{{ states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int }}"
  icon_template: '{% if states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int == 100 %}
                     mdi:battery
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int >= 90 %}
                     mdi:battery-90
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int >= 80 %}
                     mdi:battery-80
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int >= 70 %}
                     mdi:battery-70
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int >= 60 %}
                     mdi:battery-60
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int >= 50 %}
                     mdi:battery-50
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int >= 40 %}
                     mdi:battery-40
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int >= 30 %}
                     mdi:battery-30
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int >= 20 %}
                     mdi:battery-20
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level | int >= 10 %}
                     mdi:battery-10
                  {% elif states.binary_sensor.motion_sensor_158d0001ae9455.attributes.battery_level == "unknown" %}
                     mdi:battery-alert
                  {% else %}
                     mdi:battery-outline
                  {% endif %}'

Obrigado, agora funciona… TOP

Contudo ao lêr novamente o título do tópico, entendi que queres mudar a cor do icone e não mudar o ícone, se pretendes mudar a cor de verde, para amarelo , ou para vermelho podes se calhar usar um card no lovelace. Tipo isto

Boas. Este template ainda funciona para voçes:

sensor:
  - platform: template
    sensors:
      bateria_porta_sensor_template:
        unit_of_measurement: '%'
        value_template: '{{ states.sensor.bateria_porta_sensor.state|int }}'
        icon_template: >
          {% set battery_level = states.sensor.bateria_porta_sensor_template.state|default(0)|int %}
          {% set battery_round = (battery_level / 10) |int * 10 %}
          {% if battery_round >= 100 %}
            mdi:battery
          {% elif battery_round > 0 %}
            mdi:battery-{{ battery_round }}
          {% else %}
            mdi:battery-alert
          {% endif %}

Já funcionou, mas agora aparece este erro:

@karma isso é uma mensagem de erro e como tal é texto não devendo ser utilizada uma foto. Por favor apaga a foto e coloca o texto devidamente formatado. Para publicares código deves sublinhar o texto que queres transformar em código e clicar no icone </>. Deverá existir um espaço antes e outro depois do bloco de código para que funcione correctamente.


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade