Tarjeta para dejar de fumar en Home Assistant

En esta entrada vamos a construir una tarjeta para dejar de fumar en Home Assistant. Te va ayudar en tu proceso llevando la cuenta y mostrándote los logros conseguidos.

Hay una versión más reciente de esta tarjeta mejorada estéticamente, por lo que te recomiendo visitar esta entrada 😊

Al final te quedará una tarjeta con este aspecto.

Tarjeta dejar de fumar

Creación de sensores

En primer lugar vamos a crear un ayudante para poder establecer la fecha en la que vas a dejar de fumar. Para ello ve hacia Ajustes > Dispositivos y servicios > Ayudantes. Crea un nuevo ayudante del tipo ‘fecha’, y dale un nombre con la estructura ‘smoke_free_NOMBRE’ (por ejemplo, smoke_free_tito).

Ahora ve a tu fichero ‘sensors.yaml’ y pega el siguiente código, indicando tu nombre:

- platform: template
  sensors:
    smoke_free_NOMBRE:
      friendly_name: "NOMBRE Smoke Free"
      value_template: >
        {% set diastotal = (((states.input_datetime.smoke_free_NOMBRE.attributes.timestamp)-as_timestamp(now()))
        | int /60/1440) | round(0,'ceil') * -1 %}
        {% if diastotal < 30 %} {{ diastotal }} días
        {% elif 30 <= diastotal < 365 %} 
          {% set meses = (diastotal / 30) | round(0,'floor') %}
          {% set dias = diastotal - (meses * 30)  %}
          {{ meses }} meses{% if dias > 0 %} y {{ dias }} dias{% endif %}
        {% elif 365 <= diastotal %} 
          {% set anos = (diastotal / 365) | round(0,'floor') %}
          {% set meses = ((diastotal - (anos * 365)) / 30 ) | round(0,'floor') %}
          {% set dias = ((diastotal - (anos * 365) - (meses * 30)) ) | round(0,'floor') %}
          {{ anos }} años{% if meses > 0 %}, {{ meses }} meses {% endif %}{% if dias > 0 %} y {{ dias }} dias{% endif %}
        {% endif %} sin fumar!
      attribute_templates:
        logro: >
          {% set dias = (((states.input_datetime.smoke_free_NOMBRE.attributes.timestamp)-as_timestamp(now())) | int /60/1440) | round(0,'ceil') * -1 %}
          {% if dias < 1 %} Acabas de dar una gran paso!
          {% elif dias == 1 %} El CO de fumar se ha eliminado
          {% elif dias == 2 %} Has expulsado la nicotina de tu cuerpo
          {% elif dias == 3 %} Tu respiración ha vuelto a la normalidad
          {% elif 3 < dias < 7 %} Tu energía ha vuelto a la normalidad
          {% elif 7 <= dias < 14 %} El mal aliento por fumar ha desparecido
          {% elif 14 <= dias < 71 %} Se han reducido las manchas dentales
          {% elif 71 <= dias < 90 %} Tu circulación ha mejorado mucho
          {% elif 90 <= dias < 138 %} Tus encías han vuelto a la normalidad
          {% elif 138 <= dias < 365 %} Ha mejorado tu función pulmonar
          {% elif 365 <= dias < 3650 %} Se ha reducido tu riesgo de cardiopatías
          {% elif 3650 <= dias < 5475 %} Hay menor riesgo de cáncer de pulmón
          {% else %} Riesgo de infarto de un "no fumador"
          {% endif %}
        proximo_logro: >
          {% set dias = (((states.input_datetime.smoke_free_NOMBRE.attributes.timestamp)-as_timestamp(now())) | int /60/1440) | round(0,'ceil') * -1 %}
          {% if dias < 1 %}{% set meta_logro = 'A las 8 horas de dejar de fumar tus niveles\nde oxígeno volverán a la normalidad' %}
          {% elif dias == 1 %}{% set meta_logro = 'En 24 horas habrás expulsado la nicotina de tu\ncuerpo, y el gusto y el olfato volverá a la normalidad' %}
          {% elif dias == 2 %}{% set meta_logro = 'En 24 horas tu respiración volverá a la normalidad' %}
          {% elif dias == 3 %}{% set meta_logro = 'En 24 horas tu energía volverá a la normalidad' %}
          {% elif 3 < dias < 7 %}{% set meta = 7 %}{% set meta_logro = 'el mal aliento del tabaco desaparecerá' %}
          {% elif 7 <= dias < 14 %}{% set meta = 14 %}{% set meta_logro = 'se reducirán las manchas dentales\ny el sarro del tabaco en tus dientes' %}
          {% elif 14 <= dias < 71 %}{% set meta = 71 %}{% set meta_logro = 'tu circulación mejorará mucho' %}
          {% elif 71 <= dias < 90 %}{% set meta = 90 %}{% set meta_logro = 'la textura y el color de tus\nencías volverán a la normalidad' %}
          {% elif 90 <= dias < 138 %}{% set meta = 138 %}{% set meta_logro = 'mejorará la\ninmunidad y la función pulmonar' %}
          {% elif 138 <= dias < 365 %}{% set meta = 365 %}{% set meta_logro = 'el riesgo de enfermedad del\ncorazón será la mitad que para un fumador' %}
          {% elif 365 <= dias < 3650 %}{% set meta = 3650 %}{% set meta_logro = 'el riesgo de cáncer de\npulmón será la mitad que para alguien que fuma' %}
          {% elif 3650 <= dias < 5475 %}{% set meta = 5475 %}{% set meta_logro = 'el riesgo de infarto será el mismo que para alguien que nunca ha fumado' %}
          {% else %}{% set meta_logro = 'Sigue así! Lo estas haciendo fenomenal :)' %}
          {% endif %}
          {% if 3 < dias < 5475 %}
            {% set restante = meta - dias %}
            {% if restante < 30 %}En {{ restante }} días {% elif 30 <= restante < 365 %}{% set meses = (restante / 30) | round(0,'floor') %}{% set dias = restante - (meses * 30)  %}En {{ meses }} meses{% if dias > 0 %} y {{ dias }} dias{% endif %} {% elif 365 <= restante %}{% set anos = (restante / 365) | round(0,'floor') %}{% set meses = ((restante - (anos * 365)) / 30 ) | round(0,'floor') %}{% set dias = ((restante - (anos * 365) - (meses * 30)) ) | round(0,'floor') %}En {{ anos }} años{% if meses > 0 %}, {{ meses }} meses {% endif %}{% if dias > 0 %} y {{ dias }} dias{% endif %} {% endif %}{{ meta_logro }}
          {% else %}{{ meta_logro }}
          {% endif %}
      icon_template: >
        {% set dias = (((states.input_datetime.smoke_free_NOMBRE.attributes.timestamp)-as_timestamp(now())) | int /60/1440) | round(0,'ceil') * -1 %}
        {% if dias < 1 %} mdi:arm-flex
        {% elif dias == 1 %} mdi:molecule-co
        {% elif dias == 2 %} mdi:smoking-off
        {% elif dias == 3 %} mdi:lungs
        {% elif 3 < dias < 7 %} mdi:battery-90
        {% elif 7 <= dias < 14 %} mdi:flower
        {% elif 14 <= dias < 71 %} mdi:tooth
        {% elif 71 <= dias < 90 %} mdi:heart-settings
        {% elif 90 <= dias < 138 %} mdi:emoticon-outline
        {% elif 138 <= dias < 365 %} mdi:lungs
        {% elif 365 <= dias < 3650 %} mdi:heart-flash
        {% elif 3650 <= dias < 5475 %} mdi:lungs
        {% else %} mdi:heart-flash
        {% endif %}

Creación de la tarjeta

Para la creación de la tarjeta para dejar de fumar en Home Assistant vas a necesitar las tarjetas Stack in Card, Mushroom Cards y Card Mod. Puedes instalarlas todas desde HACS. Cuando las tengas ve a la parte del panel de control donde quieras incluir la tarjeta, y pega el siguiente código sustituyendo tu nombre.

type: custom:stack-in-card
cards:
  - type: custom:mushroom-template-card
    primary: '{{ states.sensor.smoke_free_NOMBRE.attributes.logro }}'
    secondary: '{{ states.sensor.smoke_free_NOMBRE.attributes.proximo_logro }}'
    entity: sensor.smoke_free_NOMBRE
    icon_color: light-green
    tap_action:
      action: more-info
    badge_icon: ''
    multiline_secondary: true
    layout: vertical
    card_mod:
      style: |
        ha-card {
          border: 0px;
          --card-primary-font-size: 16px;
        }
  - type: custom:mushroom-chips-card
    alignment: center
    chips:
      - type: entity
        entity: sensor.smoke_free_NOMBRE
        content_info: none
        tap_action:
          action: none
        card_mod:
          style: |
            ha-card {
              background-color: #b92683 !important;
              height: 30px !important;
              margin-left: 10px;
              margin-bottom: 10px;
            }
      - type: template
        icon: mdi:smoking-off
        content: '{{ states(''sensor.smoke_free_NOMBRE'') }}'
        tap_action:
          action: none
        card_mod:
          style: |
            ha-card {
              background-color: #83b926 !important;
              height: 30px !important;
            }
      - type: template
        icon: mdi:cake-variant
        content: ''
        entity: input_datetime.smoke_free_NOMBRE
        tap_action:
          action: more-info
        card_mod:
          style: |
            ha-card {
              background-color: #26b0b9 !important;
              height: 30px !important;
            }

Como podrás comprobar, si haces clic en el icono de la tarta de cumpleaños podrás modificar la fecha de la última vez que fumaste.

Logros de salud

La gracia de la tarjeta, además de contar los días que llevas sin fumar, es que te va indicando los logros que has conseguido respecto a tu salud, así como el tiempo que queda para conseguir el siguiente logro. Esta información se ha extraido de la aplicación Smoke Free App. La he usado muchas veces y creo que proporciona un buen apoyo a la hora de dejar de fumar.

En todo caso, siempre puedes modificar los mensajes que muestra la tarjeta (para personalizarlos, o incluirlos en tu idioma). Por defecto son los siguientes.

A las 8 horas de dejar de fumar tus niveles de oxigeno vuelven a la normalidad
A las 24 horas el monoxido de carbono (CO) de fumar se elimina de tu cuerpo
A los 2 días habrás expulsado la nicotina de tu cuerpo, y el gusto y el olfato volverá a la normalidad
A los 3 días tu respiración volverá a la normalidad
A los 4 días tu energía volverá a la normalidad
A la semana (7 días) el mal aliento del tabaco desaparecerá
A las 2 semanas (14 días) se reducirán las manchas dentales y el sarro del tabaco en tus dientes
A los 2 meses, 1 semana y 4 días (71 días) tu circulación mejorará mucho
A los 3 meses (90 días) la textura y el color de tus encías volverán a la normalidad
A los 4 meses, 2 semanas y 4 días (138 días) mejorará la inmunidad y la función pulmonar
Al año (365 días) el riesgo de enfermedad del corazón será la mitad que para un fumador
A los 10 años (3650 días) el riesgo de cáncer de pulmón será la mitad que para alguien que fuma
A los 15 años (5475 días) el riesgo de infarto será el mismo que para alguien que nunca ha fumado

Ideas de automatizaciones

A continuación te dejo unas ideas que se me ocurren para crear automatizaciones con la tarjeta para dejar de fumar en Home Assistant:

  • Notificaciones motivadoras. La primera y mejor automatización que se me ocurre es el envío de notificaciones personalizadas a través de Telegram cada vez que alcancemos un nuevo logro, ya que la motivación va a ser un elemento clave en el proceso.
  • Notificaciones de control. También puedes crear notificaciones con comandos, haciendo que te pregunte de vez en cuando si te estás manteniendo a raya, o por lo contrario debería reiniciar la cuenta.
  • Detector de humo. También puedes crear una automatización con un detector de humo en tu zona habitual de fumar, para que reinicie la cuenta si detecta el humo del tabaco. También puedes utilizarlo como contador de cigarros que te has fumado, para ser consciente de ello.
  • Deja otra cosa. Como has visto la tarjeta es 100% personalizable y puedes cambiar los mensajes y los plazos de los logros, para aplicarla en tu proceso de dejar cualquier otro mal hábito.

¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂
Send this to a friend