Note de ce sujet :
  • Moyenne : 4 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Tuto: Notification et acquittement d'un entretien périodique (Low Code)
#8
Pour faire tout ça :
1re étape :
Creer un calendrier HA, soit local, soit Google, soit ce que vous voulez.
   

2ème étape :
Creer les entités suivantes (ici pour 2 filtres) un input_number (pour stocker une valeur), un input_datetime (pour stocker la date)
   

3ème étape :
Réaliser un script qui sera actionné quand on cliquera sur la tuile, il est en 3 étapes :
1/ stocker la date du jour au moment du clic dans input_datetime
2/ stocker le cubage total au moment du clic dans input_number
3/ Creer un event agenda qui a comme nom, le type de changement de filtre (moi cuve ou ville), et en description les informations précédentes (durée de vie, cubage)
Attention, il faudra autant de scripts que de bouton lovelace souhaité (que de filtre à changer en somme)
Le script est long parce que ca gère 1 filtre, l'autre, ou les 2.
Le script qui est lancé :
Code :
alias: Set Change Filtres Cuve1-2
sequence:
 - if:
     - condition: and
       conditions:
         - condition: not
           conditions:
             - condition: state
               entity_id: input_select.liste_type_filtre_eau_cuve_1_nouveau
               state: Pas de changement de filtre
         - condition: not
           conditions:
             - condition: state
               entity_id: input_select.liste_type_filtre_eau_cuve_2_nouveau
               state: Pas de changement de filtre
   then:
     - action: calendar.create_event
       target:
         entity_id: calendar.filtres_eau
       data:
         summary: Changement filtres cuve
         description: >
           Premiere filtration - Le {{
           states('input_select.liste_type_filtre_eau_cuve_1_courant') }} a
           duré {{ (now() -
           states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
           }} jours/{{ (states('sensor.volume_cuve_litre') | int) -
           (states('input_number.volume_changement_filtre_cuve_1_litre') | int)
           }} Litres

           Deuxième filtration - Le {{
           states('input_select.liste_type_filtre_eau_cuve_2_courant') }} a
           duré {{ (now() -
           states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
           }} jours/{{ (states('sensor.volume_cuve_litre') | int) -
           (states('input_number.volume_changement_filtre_cuve_2_litre') | int)
           }} Litres
         start_date: |
           {{ now().date() }}
         end_date: |
           {{ now().date() + timedelta(days=1) }}
     - action: input_select.select_option
       metadata: {}
       data:
         option: "{{states('input_select.liste_type_filtre_eau_cuve_1_nouveau')}}"
       target:
         entity_id: input_select.liste_type_filtre_eau_cuve_1_courant
     - action: input_button.press
       target:
         entity_id: input_button.sensor_date_filtre_eau_cuve_1
       data: {}
     - action: input_number.set_value
       target:
         entity_id: input_number.volume_changement_filtre_cuve_1_litre
       data:
         value: "{{ states('sensor.volume_cuve_litre') }}"
     - action: input_select.select_option
       metadata: {}
       data:
         option: "{{states('input_select.liste_type_filtre_eau_cuve_2_nouveau')}}"
       target:
         entity_id: input_select.liste_type_filtre_eau_cuve_2_courant
     - action: input_button.press
       target:
         entity_id: input_button.sensor_date_filtre_eau_cuve_2
       data: {}
     - action: input_number.set_value
       target:
         entity_id: input_number.volume_changement_filtre_cuve_2_litre
       data:
         value: "{{ states('sensor.volume_cuve_litre') }}"
 - if:
     - condition: and
       conditions:
         - condition: not
           conditions:
             - condition: state
               entity_id: input_select.liste_type_filtre_eau_cuve_1_nouveau
               state: Pas de changement de filtre
         - condition: state
           entity_id: input_select.liste_type_filtre_eau_cuve_2_nouveau
           state: Pas de changement de filtre
   then:
     - action: calendar.create_event
       target:
         entity_id: calendar.filtres_eau
       data:
         summary: Changement filtres cuve
         description: >-
           Premiere filtration - Le {{
           states('input_select.liste_type_filtre_eau_cuve_1_courant') }} a
           duré {{ (now() -
           states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
           }} jours/{{ (states('sensor.volume_cuve_litre') | int) -
           (states('input_number.volume_changement_filtre_cuve_1_litre') | int)
           }} Litres
         start_date: |
           {{ now().date() }}
         end_date: |
           {{ now().date() + timedelta(days=1) }}
     - action: input_select.select_option
       metadata: {}
       data:
         option: "{{states('input_select.liste_type_filtre_eau_cuve_1_nouveau')}}"
       target:
         entity_id: input_select.liste_type_filtre_eau_cuve_1_courant
     - action: input_button.press
       target:
         entity_id: input_button.sensor_date_filtre_eau_cuve_1
       data: {}
     - action: input_number.set_value
       target:
         entity_id: input_number.volume_changement_filtre_cuve_1_litre
       data:
         value: "{{ states('sensor.volume_cuve_litre') }}"
 - if:
     - condition: and
       conditions:
         - condition: not
           conditions:
             - condition: state
               entity_id: input_select.liste_type_filtre_eau_cuve_2_nouveau
               state: Pas de changement de filtre
         - condition: state
           entity_id: input_select.liste_type_filtre_eau_cuve_1_nouveau
           state: Pas de changement de filtre
   then:
     - action: calendar.create_event
       target:
         entity_id: calendar.filtres_eau
       data:
         summary: Changement filtre cuve
         description: >-
           Deuxième filtration - Le {{
           states('input_select.liste_type_filtre_eau_cuve_2_courant') }} a
           duré {{ (now() -
           states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
           }} jours/{{ (states('sensor.volume_cuve_litre') | int) -
           (states('input_number.volume_changement_filtre_cuve_2_litre') | int)
           }} Litres
         start_date: |
           {{ now().date() }}
         end_date: |
           {{ now().date() + timedelta(days=1) }}
     - action: input_select.select_option
       metadata: {}
       data:
         option: "{{states('input_select.liste_type_filtre_eau_cuve_2_nouveau')}}"
       target:
         entity_id: input_select.liste_type_filtre_eau_cuve_2_courant
     - action: input_button.press
       target:
         entity_id: input_button.sensor_date_filtre_eau_cuve_2
       data: {}
     - action: input_number.set_value
       target:
         entity_id: input_number.volume_changement_filtre_cuve_2_litre
       data:
         value: "{{ states('sensor.volume_cuve_litre') }}"
description: Creer une entrée agenda pour le changement des filtre eau de Cuve 1 et 2
icon: mdi:calendar-check-outline


4 et 5/ Et enfin, le code de la carte associée, le code est chargé parce qu'il y a pas mal de mise en forme conditionnelle pour les statuts d'alertes. Sans mise en forme il est tout petit.
J'ai conditionné, pour l'instant et de manière arbitraire le cubage à 10m3, il sera certainement plus haut par la suite. Par contre j'ai également mis une condition de temps, j'estime qu'à 6 mois, le filtre doit être changé pour des raisons d'hygiène évidente.
Il y a une demande de validation avec le choix du filtre, pas d'erreur de manip possible
Le code de la tuile concernée (ici double étage de filtration toujours)
Code :
         - type: custom:mushroom-template-card
           icon: mdi:air-filter
           icon_color: blue
           name: Filtre changé ?
           layout: vertical
           primary: Etat filtres eau de cuve
           tap_action:
             action: fire-dom-event
             browser_mod:
               service: browser_mod.popup
               data:
                 title: Changement des filtres d'eau de cuve
                 content:
                   type: custom:vertical-stack-in-card
                   cards:
                     - type: horizontal-stack
                       cards:
                         - type: vertical-stack
                           cards:
                             - type: custom:mushroom-title-card
                               title: null
                               subtitle: >-
                                 Choisir les types de filtres qui seront
                                 utilisés pour le remplacement puis valider.
                               card_mod:
                                 style: |
                                   ha-card {
                                     margin-left: 30px;
                                     margin-right: 30px;
                                   }
                             - type: custom:mushroom-select-card
                               entity: >-
                                 input_select.liste_type_filtre_eau_cuve_1_nouveau
                               name: >-
                                 Type de filtre qui sera installé en première
                                 filtration ?
                               secondary_info: none
                               card_mod:
                                 style: |
                                   ha-card {
                                     margin-left: 30px;
                                     margin-right: 30px;
                                   }
                             - type: custom:mushroom-select-card
                               entity: >-
                                 input_select.liste_type_filtre_eau_cuve_2_nouveau
                               name: >-
                                 Type de filtre qui sera installé en seconde
                                 filtration ?
                               secondary_info: none
                               card_mod:
                                 style: |
                                   ha-card {
                                     margin-left: 30px;
                                     margin-right: 30px;
                                   }
                             - type: horizontal-stack
                               cards:
                                 - type: custom:gap-card
                                 - type: custom:mushroom-template-card
                                   icon: mdi:tooltip-check-outline
                                   primary: Valider
                                   fill_container: false
                                   icon_color: green
                                   tap_action:
                                     action: call-service
                                     confirmation:
                                       text: >-
                                         Valider le changement du/des filtre(s)
                                         d'eau de cuve maintenant ?
                                     service: script.set_change_filtres_cuve1_2
                                   card_mod:
                                     style:
                                       .: |
                                         ha-card {
                                           margin-top: 30px;
                                           margin-bottom: 30px;
                                         }
                                 - type: custom:gap-card
           secondary: "{% if ((now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days > 180) and ((now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days > 180) %}\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\n  Vie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³\n  Filtre à changer !\n{% elif ((now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days > 180) %}\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\n  Vie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³\n  Filtre 1 à changer !\n{% elif ((now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days > 180) %}\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\n  Vie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³\n  Filtre 2 à changer !\n{% elif ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) > 10000 ) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) > 10000 ) %}\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\n  Vie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³\n  Filtre à changer !\n{% elif ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) > 10000 ) %}\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\n  Vie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³\n  Filtre 1 à changer !\n{% elif ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) > 10000 ) %}\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\n  Vie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³\n  Filtre 2 à changer !\n{% elif ((((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) < 10000) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) > 8000))) or ((((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) < 10000) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) > 8000))) %}\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\n  Vie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³\n  Changement Filtres à prévoir\n{% elif (((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) < 10000) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) > 8000)) %}\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\n  Vie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³\n  Changement Filtre 1 à prévoir\n{% elif (((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) < 10000) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) > 8000)) %}\t\t\t\t\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\nVie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³ Changement Filtre 2 à prévoir     {% else %}\n  Vie filtre 1 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int)) / 1000) }} m³\nVie filtre 2 : {{ (now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days }} jour(s) / {{ '%0.2f' | format(((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int)) / 1000) }} m³ {% endif %}\n"
           badge_icon: >
             {% if ((now() -
             states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
             > 180) and ((now() -
             states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
             > 180) %}
               mdi:alert
             {% elif ((now() -
             states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
             > 180) %}
               mdi:alert
             {% elif ((now() -
             states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
             > 180) %}
               mdi:alert
             {% elif ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) > 10000 ) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) > 10000 ) %}
               mdi:alert
             {% elif ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) > 10000 ) %}
               mdi:alert
             {% elif ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) > 10000 ) %}
               mdi:alert
             {% elif ((((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) < 10000) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) > 8000))) or ((((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) < 10000) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) > 8000))) %}
               mdi:information-symbol
             {% elif (((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) < 10000) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) > 8000)) %}
               mdi:information-symbol
             {% elif (((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) < 10000) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) > 8000)) %}
               mdi:information-symbol
             {% endif %}
           badge_color: >
             {% if ((now() -
             states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
             > 180) and ((now() -
             states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
             > 180) %}
               red
             {% elif ((now() -
             states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
             > 180) %}
               red
             {% elif ((now() -
             states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
             > 180) %}
               red
             {% elif ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) > 10000 ) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) > 10000 ) %}
               red
             {% elif ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) > 10000 ) %}
               red
             {% elif ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) > 10000 ) %}
               red
             {% elif ((((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) < 10000) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) > 8000))) or ((((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) < 10000) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) > 8000))) %}
               amber
             {% elif (((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) < 10000) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_1_litre') |
             int) > 8000)) %}
               amber
             {% elif (((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) < 10000) and ((states('sensor.volume_cuve_litre') | int) -
             (states('input_number.volume_changement_filtre_cuve_2_litre') |
             int) > 8000)) %}
               amber
             {% endif %}
           multiline_secondary: true
           card_mod:
             style:
               .: >
                 {% if ((now() -
                 states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
                 > 180) and ((now() -
                 states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
                 > 180) %}

                 ha-card {
                   animation: ping 1s infinite;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     70% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((now() -
                 states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
                 > 180) %}

                 ha-card {
                   animation: ping 1s infinite;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     70% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((now() -
                 states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
                 > 180) %}

                 ha-card {
                   animation: ping 1s infinite;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     70% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((states('sensor.volume_cuve_litre') | int) -
                 (states('input_number.volume_changement_filtre_cuve_1_litre')
                 | int) > 10000 ) and ((states('sensor.volume_cuve_litre') |
                 int) -
                 (states('input_number.volume_changement_filtre_cuve_2_litre')
                 | int) > 10000 ) %}

                 ha-card {
                   animation: ping 1s infinite;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     70% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((states('sensor.volume_cuve_litre') | int) -
                 (states('input_number.volume_changement_filtre_cuve_1_litre')
                 | int) > 10000 ) %}

                 ha-card {
                   animation: ping 1s infinite;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     70% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((states('sensor.volume_cuve_litre') | int) -
                 (states('input_number.volume_changement_filtre_cuve_2_litre')
                 | int) > 10000 ) %}

                 ha-card {
                   animation: ping 1s infinite;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     70% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }                  

                 {% else %}
                   
                 ha-card {
                   padding-bottom: 15px !important;
                 }  

                 {% endif %}
               mushroom-badge-icon$: >
                 {% if ((now() -
                 states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
                 > 180) and ((now() -
                 states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
                 > 180) %}

                 .badge {
                   animation: ping 1s infinite;
                   --badge-icon-size: 22px;
                   --badge-size: 30px;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     50% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((now() -
                 states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days
                 > 180) %}

                 .badge {
                   animation: ping 1s infinite;
                   --badge-icon-size: 22px;
                   --badge-size: 30px;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     50% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((now() -
                 states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days
                 > 180) %}

                 .badge {
                   animation: ping 1s infinite;
                   --badge-icon-size: 22px;
                   --badge-size: 30px;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     50% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((states('sensor.volume_cuve_litre') | int) -
                 (states('input_number.volume_changement_filtre_cuve_1_litre')
                 | int) > 10000 ) and ((states('sensor.volume_cuve_litre') |
                 int) -
                 (states('input_number.volume_changement_filtre_cuve_2_litre')
                 | int) > 10000 ) %}

                 .badge {
                   animation: ping 1s infinite;
                   --badge-icon-size: 22px;
                   --badge-size: 30px;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     50% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((states('sensor.volume_cuve_litre') | int) -
                 (states('input_number.volume_changement_filtre_cuve_1_litre')
                 | int) > 10000 ) %}

                 .badge {
                   animation: ping 1s infinite;
                   --badge-icon-size: 22px;
                   --badge-size: 30px;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     50% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((states('sensor.volume_cuve_litre') | int) -
                 (states('input_number.volume_changement_filtre_cuve_2_litre')
                 | int) > 10000 ) %}

                 .badge {
                   animation: ping 1s infinite;
                   --badge-icon-size: 22px;
                   --badge-size: 30px;
                 }

                 @keyframes ping {
                     0% {box-shadow: 0 0 0 0 rgba(var(--rgb-red), 0.7);}
                     50% {box-shadow: 0 0 0 10px transparent;}
                     100% {box-shadow: 0 0 0 0 transparent;}
                 }

                 {% elif ((((states('sensor.volume_cuve_litre') | int) -
                 (states('input_number.volume_changement_filtre_cuve_1_litre')
                 | int) < 10000) and ((states('sensor.volume_cuve_litre') |
                 int) -
                 (states('input_number.volume_changement_filtre_cuve_1_litre')
                 | int) > 8000))) or ((((states('sensor.volume_cuve_litre') |
                 int) -
                 (states('input_number.volume_changement_filtre_cuve_2_litre')
                 | int) < 10000) and ((states('sensor.volume_cuve_litre') |
                 int) -
                 (states('input_number.volume_changement_filtre_cuve_2_litre')
                 | int) > 8000))) %}

                 .badge {
                   --badge-icon-size: 40px;
                   --badge-size: 30px;

                 {% elif (((states('sensor.volume_cuve_litre') | int) -
                 (states('input_number.volume_changement_filtre_cuve_1_litre')
                 | int) < 10000) and ((states('sensor.volume_cuve_litre') |
                 int) -
                 (states('input_number.volume_changement_filtre_cuve_1_litre')
                 | int) > 8000)) %}

                 .badge {
                   --badge-icon-size: 40px;
                   --badge-size: 30px;

                 {% elif (((states('sensor.volume_cuve_litre') | int) -
                 (states('input_number.volume_changement_filtre_cuve_2_litre')
                 | int) < 10000) and ((states('sensor.volume_cuve_litre') |
                 int) -
                 (states('input_number.volume_changement_filtre_cuve_2_litre')
                 | int) > 8000)) %}

                 .badge {
                   --badge-icon-size: 40px;
                   --badge-size: 30px;

                 {% endif %}
               mushroom-shape-icon$: |
                 .shape {
                   --icon-symbol-size: 40px;
                   --icon-size: 60px;
                 }
               mushroom-state-info$: "{% if ((now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days > 180) and ((now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days > 180) %}\n.container {\n  --card-secondary-color: red;\n}\n{% elif ((now() - states('input_button.sensor_date_filtre_eau_cuve_1')|as_datetime).days > 180) %}\n.container {\n  --card-secondary-color: red;\n}\n{% elif ((now() - states('input_button.sensor_date_filtre_eau_cuve_2')|as_datetime).days > 180) %}\n.container {\n  --card-secondary-color: red;\n}\n{% elif ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) > 10000 ) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) > 10000 ) %}\n.container {\n  --card-secondary-color: red;\n}\n{% elif ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) > 10000 ) %}\n.container {\n  --card-secondary-color: red;\n}\n{% elif ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) > 10000 ) %}\n.container {\n  --card-secondary-color: red;\n}\n{% elif ((((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) < 10000) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) > 8000))) or ((((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) < 10000) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) > 8000))) %}\n.container {\n  --card-secondary-color: orange;\n}\n{% elif (((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) < 10000) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_1_litre') | int) > 8000)) %}\n.container {\n  --card-secondary-color: orange;\n}\n{% elif (((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) < 10000) and ((states('sensor.volume_cuve_litre') | int) - (states('input_number.volume_changement_filtre_cuve_2_litre') | int) > 8000)) %}\t\t\t\t\n.container {\n  --card-secondary-color: orange;\n}\n{% endif %}\n"


Voilà !
Répondre


Messages dans ce sujet
RE: Tuto: Notification et acquittement d'un entretien périodique (Low Code) - par XeNo - 12/02/2025, 19:05:00

Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)