Monitorización de baterías en Home Assistant

Evita que alguno de tus dispositivos deje de funcionar con una buena monitorización de baterías en Home Assistant.

Aunque en muchos casos esto puede parecer una tarea innecesaria, se complica a medida que aumenta el número de dispositivos que integran nuestro sistema de domótica. A veces sólo nos damos cuenta cuando algo deja de funcionar.

Para que esto no suceda vamos a construir un panel de monitorización del estado de las baterías y pilas de nuestros dispositivos.

Battery State Card

El estado de la batería no es ningún secreto en la mayoría de nuestros dispositivos. Normalmente se crea un sensor que indica el porcentaje de carga cuando integramos el dispositivo. Por tanto, puedes crear una tarjeta y recopilar las distintas entidades de este tipo.

No obstante, esto mismo podemos hacerlo de forma rápida y fácil instalando desde HACS la tarjeta ‘Battery State Card’. Además esta tarjeta va a añadir otras funcionalidad que nos van a permitir personalizar la monitorización de baterías en Home Assistant, filtrando entidades, modificando colores, iconos, etc. Puedes consultar todas las opciones en su repositorio.

Battery State card

Para instalarla sigue estos pasos:

  1. Ve a HACS > Interfaz > Explorar y descargar repositorios y busca “Battery State Card”.
  2. Haz clic en “Descargar”.
  3. Ve a tu panel de control y añade una tarjeta nueva.
  4. Selecciona el tipo “Battery State Card”.

Automáticamente se creará una tarjeta con todos los sensores del tipo bateria que tienes en HA. A partir de aquí puedes editar el código de la tarjeta para ajustar la monitorización de baterías en Home Assistant como te interese. Por ejemplo:

  • Incluye en el listado las entidades que no aparezcan de forma automática. Por ejemplo, aquellas que tienen la palabra “batería” en el nombre. Utiliza el filtro ‘include’, como en el siguiente ejemplo:
type: custom:battery-state-card
sort: state
filter:
  include:
    # Incluye las entidades cuyo nombre acabe en "_bateria"
    - name: entity_id
      value: '*_bateria*'
  • Excluye del listado las entidades que no te interesen. Por ejemplo, aquellas que indican un valor desconocido, que corresponden a dispositivos conectados a la corriente o que muestran el estado (‘charging’) del dispositivo. Para ello tienes que utilizar añadir el filtro ‘exclude’, como en el siguiente ejemplo:
type: custom:battery-state-card
filter:
  exclude:
    # Excluye las entidades cuyo nombre acabe en "_battery_state"
    - name: entity_id
      value: '*_battery_state'
    # Excluye las entidades cuyo estado sea "Unavailable"
    - name: state
      value: Unavailable
    # Excluye las entidades cuyo valor sea superior al 50%
    - name: state
      value: 50
      operator: '>'
  • Ordena el listado por nivel de batería, de forma que aparezcan primero aquellas con niveles bajos de batería. Para ello añade el atributo ‘sort’ de la siguiente forma:
type: custom:battery-state-card
sort: "state"
  • Renombra las entidades, para que el sensor de bateria se muestre de una forma amigable. Incluye el siguiente código para cada entidad que quieras renombrar, modificando el ejemplo a tu gusto.
type: custom:battery-state-card
entities:
  - entity: sensor.mando_dormitorio_1_battery
    name: Mando dormitorio (1)
  • Elige cuántas entidades quieres mostrar, y oculta el resto de la vista principal (podrás verlas haciendo clic en la flecha inferior). Esta opción es muy útil para centrarte en aquellos dispositivos que necesitan que reemplaces la batería. Incluye el siguiente código:
type: custom:battery-state-card
# Muestra las 5 primeras entidades
collapse: 5
  • Personaliza el degradado de colores, en función del porcentaje de batería existente. Para ello incluye el siguiente código y adapta los colores como prefieras.
type: custom:battery-state-card
colors:
  steps:
    - '#ff0000' # Rojo
    - '#ffff00' # Amarillo
    - '#00ff00' # Verde
  gradient: true

Añade el nivel de batería de tus dispositivos bluetooth

¿Alguna vez has echado de menos poder vigilar la batería de algún dispositivo (como tus auriculares o tu pulsera de actividad), pero este no tiene reflejo en Home Assistant? En esta entrada te explico como crear un sensor para conocer el nivel de batería de tus dispositivos bluetooth.

Crea un widget de aviso

Una vez que hayas creado tu tarjeta de monitorización de baterías y hayas aplicado los filtros correspondientes, probablemente te haya quedado una tabla considerable. En mi caso me gusta tener ‘widgets’ en la pantalla principal del panel de control con la información importante, y si requiere mi atención, al pulsarlo me da información ampliada.

En este caso he creado una tarjeta que lo que va a hacer es mostrarme cuál es el dispositivo que menos batería tiene de todos. De esta manera, si veo que el porcentaje es bajo puedo pulsar para acceder al panel de control donde tengo la tarjeta creada en el apartado anterior. La tarjeta tiene este aspecto (varía con el porcentaje de batería).

Para ello solo tienes que acceder a Ajustes > Dispositivos y servicios > Ayudantes > Crea ayudante > Grupo > Grupo de sensores. En la ventana emergente asígnale un nombre (por ejemplo, “baterías”) y a continuación ve agregando todos aquellos sensores que han quedado al final de configurar tu tarjeta Battery State Card. Luego selecciona el tipo “Mínimo” y pulsa en “Enviar”.

Ahora ve al apartado del panel de control donde quieres añadir el ‘widget’ de aviso, crea una nueva tarjeta y pega lo siguiente en el editor de código. No olvides cambiar la ruta del destino, así como el nombre del sensor, y ajustar los umbrales, si lo deseas.

  - type: custom:mushroom-template-card
    primary: |
      {{ states('sensor.baterias') | int }} %
    secondary: >
      {{state_attr(state_attr("sensor.baterias",
      "min_entity_id"),"friendly_name") | replace(' Battery level','') | replace(' Batería','')}}
    icon: |
      {% if states('sensor.baterias') | int < 10 %} mdi:battery-10
      {% elif 10 < states('sensor.baterias') | int < 30 %} mdi:battery-30
      {% else %} mdi:battery-70
      {% endif %}
    icon_color: |
      {% if states('sensor.baterias') | int < 10 %} white
      {% elif 10 < states('sensor.baterias') | int < 30 %} orange
      {% else %} green
      {% endif %}
    entity: sensor.baterias
    layout: vertical
    tap_action:
      action: navigate
      navigation_path: /lovelace/baterias
    card_mod:
      style: |
        {% if states('sensor.baterias') | int < 10 %}
        ha-card {
          background: linear-gradient( rgba(238, 82, 79, 1), rgba(181, 42, 39, 1) );
          --secondary-text-color: #ffffff;
        }
        ha-state-icon {
          animation: beat 1.3s ease-out infinite both;
          transform-origin: 50% 60%;
        }
        @keyframes beat {
          0% { transform: scale(1); }
          10% { transform: scale(1.1); }
          17% { transform: scale(1.05); }
          33% { transform: scale(1.25); }
          60% { transform: scale(1); }
        }
        {% endif %}

Automatiza la carga de dispositivos

Si alguno de tus dispositivos está permanentemente conectado a la corriente, puedes automatizar la carga inteligente con un enchufe y un sencilla automatización. Esta es una de las primeras ideas que se nos ocurren cuando empezamos con HA.

Aunque no es nada compleja, en esta entrada te explico como crearla y también te dejo el blueprint para crearla en pocos segundos.

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.
¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂
sorteo
Send this to a friend