Présentation + [Mon Dashboard] BBE

Bonjour à tous.

Je me rend compte que je n’ai pas encore fait ma présentation alors que je suis sur le forum depuis un certain temps…

Vu que mon dashboard commence à ressembler à quelque chose et à être assez stable, je ferai ainsi d’une pierre deux coups…

Installés à proximité de Toulouse, nous sommes dans une maison, avec Madame et nos 3 enfants (2010, 2012 et 2015). Maison classique avec quelques volets Somfy RTS, du chauffage électrique avec fil pilote, une clim chaud/froid à l’étage et un tarif Tempo.
La domotique m’intéresse depuis longtemps, mais je n’avais jamais franchi le pas.

Note: je vous ai mis beaucoup de balises afin que ce soit plus lisible, n’hésitez pas à cliquer pour afficher le contenu supplémentaire.

Les débuts

Nous avons progressé tout doucement.
D’abord avec une Amazon Echo (gen4) pour Noël 2021 qui nous a permis de brancher quelques équipements zigbee (prise pilotées et smart light) grace à son HUB Zigbee, et réaliser les premières automatisations.
Une box TostCorp début 2022 a rejoint la maison et nous a permis de prendre le contrôle des volets RTS à la voix avec Alexa (mode easy, fourni par tostcorp, plug & play via un skill) et de jouer avec des automatisations.
Ceci a conquis rapidement le reste de la famille!

Puis via un collègue, un prêt de RasberryPi 3 en octobre 2022 et premières tentatives avec HAOS et la découverte du forum. Et là c’est le drame, l’escalade, et les soirées passées sur le forum pour comprendre, améliorer, étendre… Bref la boule de neige a alors très rapidement grossi, avec de plus en plus de modules, d’intégrations, d’automations, etc…

Le virus a très rapidement pris, et le forum a été d’une grande aide…

Quelques lignes directrices

Nous avons essayé (à quelques exceptions près) de réduire notre dépendance au cloud (mais nous ne sommes qu’à 50% local) et de respecter les principes suivants:

  • Tous les automatismes sont déconnectables et surpassables (même si je ne suis pas là).
  • Tout ce qui est contrôlable par la domotique doit rester contrôlable aussi sans réseau (si passage par le cloud, par exemple Mel Cloud, Echo)
  • Tout ce qui est contrôlable par la domotique doit aussi rester contrôlable si HA ou Z2M est cassé.
  • Tout ce qui est allumé automatiquement devra aussi être éteint automatiquement

Si on fait un premier bilan fin 2023, Nous avons l’installation domotique suivante:

Coté matériel :

Matériel
  • HAOS hébergé sur un minipc lenovo (récit de l’installation ici : migration Rpi → miniPC
  • Clef Zigbee USB Sonoff (model P)
  • Un certain nombres de devices Zigbee:
    • Zlinky de lixee pour récupérer la téléinfo du Linky (indispensable en Tempo)
    • prises connectées (Sonoff, Ikea, leroy merlin, frient)
    • smartlight (ikea, ruban led lidl)
    • modules Zigbee Sonoff ZBMINI-L
    • quelques capteurs de mouvement (sonoff, lidl)
    • quelques capteurs de porte (sonoff)
    • quelques « télécommandes » (ikea tradfri on/off)
    • un module pour volet roulant filaire
  • Un « Echo-système » d’amazon echo (1 Echo (gen4) et 5 Echo dot (gen3, gen4 et gen5) répartis un peu partout), qui servent d’enceinte pour la musique, pour des notifications, de capteur de présence, de capteur de température, et de contrôle vocal.
  • Une Tost Box pour gérer les volets RTS (passé en mode « expert » avec le MQTT de HAOS depuis le passage à HA)
  • Un boitier wifi Mitsubishi pour avoir le contrôle de la PAC via MELCloud et l’intégration associée
  • Un BLE proxy sur base d’ESP32
  • Un capteur Miflora pour une plante
  • Une vielle tablette android qui fait dashboard dans le bureau gràce à l’appli android wallpanel

Coté logiciel:
Home assistant installé en HAOS « pur » et plein d’intégration qui n’étaient pas prévues mais qui se sont rajoutées car disponibles dans HA et connectables simplement sans matériel supplémentaire.

Intégrations
  • MELCloud pour la clim
  • Meteo France
  • la prise en compte des brosse à dent OralB
  • la Gestion du Roomba
Modules complémentaires HA
  • Mosquitto
  • Zigbee2MQTT
  • googleDrive backup
  • Let’sEncrypt
  • ESPHome
  • VisualStudio Code
HACS
Automatisations

Nous avons mis en place progressivement un nombre toujours plus grand d’automatisations voir quelques post ci-dessous pour les explications et le code
Les principales étant:

  • Gestion de la PAC en mode clim ou chauffage, fonction de l’heure et du tarif (tempo)
  • Gestion auto des volets (finalement désactivé, Madame n’aime pas…)
  • notification de fin de lave-linge et sèche-linge via des prises connectées avec mesure de conso.
  • gestion des lumières:
    • extinction automatique en cas d’absence prolongée dans une piece
    • allumage automatique (par présence ou par géolocalisation) la nuit
    • gestion des télécommandes ikea par blueprint (pour avoir double appui et appui long => jusqu’à 6 possibilités avec une télécommande à 10€)
    • mode eclairage adaptatif sur les lumières le permettant (smart bulb et rubans led)
    • quelques gadgets pour les enfants (mode discothèque du ruban led, utilisation du ruban pour des notifications etc…)
  • Un certain nombre de notifications vers les téléphones (pronote, lave-linge, sèche-linge, tarif EDF, état du système, surveillance conso d’eau, oubli lumières, surveillance crues etc…)

Interfaces :
Chez nous la principale interface avec la domotique ce sont les Amazon Echo disposées un peu partout. Elles sont utilisées à la fois:

Pour du contrôle vocal

Nous sommes passé par le tuto "les Alexiens" pour installer Alexa sans passer par NabuCasa, il y a quelques lourdeurs, mais globalement ça marche bien.
Il y a ensuite un peu de gestion à faire:

  • Pour filtrer ce qui remonte dans l’appli Alexa et ne pas avoir TOUTES les entités HA disponibles dans Alexa. Ici le forum m’a bien aidé: tri des informations dans Alexa!
  • Pour définir des groupes par pièces dans l’application ALEXA: on peut ensuite dire à Alexa « allume la lumière » et elle n’allumera que la lumière de la pièce dans laquelle est situé l’Echo qui capte la commande, c’est redoutable, ou encore « Alexa ouvre la cuisine » et elle n’ouvrira que les volets présents dans le groupe cuisine…
  • Pour créer des routines Amazon pour avoir un déclenchement sur des phrases simples ou pour lancer des scenarios ou des scènes (les scripts HA remontent comme des scènes dans ALEXA, les possibilités sont infinies).
Pour des notifications

Nous utilisons Alexa media player pour ajouter nos amazon echo en tant que média player dans HA. Ceci nous permet notament de les utiliser pour des notifications.
On utilise beaucoup les fonctionnalités de prosody offertes par Alexa, comme détaillé dans ce post, pour adapter le volume des notifications à l’heure de la journée.

Le dashboard:
Le dashboard, dont je suis finalement le principal utilisateur car la plupart des informations vraiment utiles arrivent via des notifications, et les contrôles sont le plus souvent fait à la voix.
Notre dashboard est très sobre (certains le trouveront trop sobre).
Nous avons une même base de cartes mushroom, déclinée en 2 colonnes et 4 colonnes, l’un pour un affichage plutôt dédié smartphone et l’autre plutôt dédié tablette ou PC, accessibles dans le bandeau supérieur (pas de détection automatique).

La vue Smartphone:

la vue complète prise sur PC pour voir les 4 derniers boutons accessibles en scrollant

La vue Tablette / PC:

13 « J'aime »

La « room card » mushroom.

Le dashboard est basé depuis le tout début sur les cartes mushroom que j’apprécie pour leur facilité et leur possibilité de personnalisation. Ceci m’a permis de modifier progressivement mon dashboard vers des choses de plus en plus personnalisées, mais « en douceur ». J’en profite pour faire un grand merci à @piitaya pour cette famille de cartes magnifique et qui permettent de se faire un superbe dashboard très simplement.

Cependant, même si les cartes mushroom sont géniales, j’ai eu finalement besoin d’une carte de synthèse pour compacter un peu le dashboard, je vous la présente avec l’exemple de la carte de synthèse du salon:
image

Avant - Après

Par exemple pour le salon et la cuisine on passe de ça (avec une ligne de mushroom chips et 12 cartes mushroom « standard »):
image

à ça avec deux « room card », plus compactes, un peu plus standardisées et avec plus de fonctions intégrées:
image

La « room card » mushroom est faite de la façon suivante: il s’agit de la fusion (stack in) d’une carte mushroom template et d’une ligne de 4 mushroom chips.
Son élaboration progressive est décrite ici mise en forme de la room card.

Aucune de mes pièce n’a pour le moment eu besoin de plus de 4 mini icônes. Mais il est toujours possible de remplacer les chips « template » que j’ai utilisé par des chips « conditionnal » histoire de n’afficher que les chips utiles…

bien sur disponible en thème clair et en thème sombre

image
image

Il y a un peu de card_mod pour avoir des espacements plus jolis sur la ligne de chips, mais on peut faire sans si on veut simplifier (les chips sont alors collés à la bordure)…

Pilotage par l'Interface graphique - UI

Parce que c’est l’ADN de mushroom, j’ai cherché à conserver le plus possible un pilotage par l’UI, ce qui limite aussi certains choix de mise en page de cette carte. On peut faire plus beau, ou plus compact, mais en général on passe en full YAML, et il existe d’autres cartes qui sont peut être plus adaptées que mushroom.

J’ai remarqué que tant qu’on reste en stack-in vertical, on conserve le mode graphique et on n’est pas obligé de passer en full YAML, ce qui reste donc cohérent de la philosophie des cartes mushroom qui sont totalement personnalisables dans l’interface graphique:
image

Les pop ups sont gérés par des « fire-dom-event » qui sont écrits en YAML dans la description des « tap-actions ». Il y a des pop-up sur tous les chips, bien sûr on peut largement simplifier, surtout si on veut être 100% compatible de l’interface graphique… Il faut alors enlever tous les « fire-dom-event », mais on perd beaucoup en ergonomie…
Cependant (là encore c’est une bizarrerie que je ne m’explique pas), l’interface graphique reste disponible. Tant qu’on ne modifie pas l’appui court, ce qu’on a définit en YAML reste actif, et le reste est modifiable dans l’interface graphique. On n’est forcé de passer en YAML que on veut modifier le pop-up du chip, et on peut revenir ensuite à l’interface graphique…
image

Pop Ups

La carte fait usage de pop up pour chaque appui court sur les chips (les doubles appui ou appui long permettent un usage rapide, ou des raccourcis spécifiques, voir fonctionnalités détaillées ci dessous):
sur la lumière :
image
Sur les volets:
image
Sur le player:
image
Et même sur la plante :
image

Fonctions détaillées

Ci dessous la description détaillée de la carte salon. On s’appuie entierement sur les possibilités offertes par la carte mushroom template et les mushroom chips.

  • L’icône de la carte template (canapé) : son comportement (icône et couleur) est entièrement pilotable via l’UI, en particulier sa couleur dépend de l’état des lumières dans la pièce (c’est géré par un template dans l’UI)
  • Le titre est fixe, mais est entièrement définissable dans l’UI c’est l’info principale de la carte template (il pourrait être dynamique puisque c’est une carte template).
  • L’info secondaire affiche via un template la température dans la pièce (contrôlé par l’UI)
  • le badge de l’icône permet d’afficher l’état des détecteurs de mouvements (icône et couleur gérés par un template dans l’UI de la carte template), d’autre utilisations seraient possibles, mode de chauffage, alertes varièes, mode auto/manuel, etc…
  • L’appui court sur l’icône du canapé (en fait sur toute la carte en dehors des chips…) est un raccourci vers une autre page dédiée à la pièce (contrôlé par l’UI) menant à une sous vue dédiée au salon.
  • L’appui long sur l’icône du canapé (en fait sur toute la carte…) fait basculer (toggle) le group « light » de la pièce (contrôlé par l’UI).
  • La ligne de « chips » permet d’afficher des boutons supplémentaires :
  • L’appui court sur l’icône d’ampoule ouvre un pop-up (basé sur browser mod) avec toutes les lumières de la pièce (contrôlé en YAML)
  • L’appui long sur l’icône d’ampoule fait basculer (toggle) la lumière principale de la pièce (contrôlé avec l’UI)
  • L’appui court sur l’icône de volet ouvre un pop-up (basé sur browser mod) avec tous les volets de la pièce (contrôlé en YAML)
  • L’appui long sur l’icône de volets fait basculer (toggle) le groupe des volets de la pièce (contrôlé avec l’UI)
  • L’appui court sur l’icône media ouvre un pop-up (basé sur browser mod) avec un mini mediaplayer avec tous les raccourcis qui vont bien pour gérer l’amazon echo de la pièce et les raccourcis pour envoyer certains types de musique en multiroom (contrôlé en YAML)
  • L’appui court sur l’icône de fleur ouvre un pop-up (basé sur browser mod) avec toutes les info du capteur miflora (contrôlé en YAML)
  • je n’ai pas joué avec les double clics (sauf une ou deux exception uniquement pour moi pour appeler des sous-vues très spécifiques), mais ils sont bien entendu disponibles sur la carte (via la carte mushroom template) et sur les mini icônes (via les mushroom chips)…
Le code

Le code utilise les dépendances suivantes (facultatives pour la plupart…):

  • les mushroom cards (template et chips en basique, light et cover dans les pop ups)
  • card-mod (pour la mise en forme des chips, facultatif)
  • vertical stack-in-card pour fusionner ensemble la carte template et les chips
  • browser-mod (utilisé pour tous les pop up)
  • mini-media (facultatif, pour le pop up du media player)
  • cutom flower card (facultatif, pour le pop up du mi-flora)
type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    entity: group.lumieres_salon
    icon: mdi:sofa
    icon_color: |
      {% if is_state(entity, 'on') %}
        #03A9F4
      {% else %}  
        grey
      {% endif %}
    primary: Salon
    secondary: '{{ states(''sensor.echo_jeanne_temperature'') }}°C'
    layout: horizontal
    tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/salon
    double_tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/salon
    hold_action:
      action: toggle
    badge_icon: |
      {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
        mdi:motion-sensor
      {% else %}  
        mdi:motion-sensor-off
      {% endif %}
    badge_color: |
      {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
        orange
      {% else %}  
        grey
      {% endif %}
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: plant.alocatia
        icon: mdi:flower
        icon_color: |-
          {% if is_state(entity, 'problem') %} 
           orange
          {% else %}
           grey
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Plante Marsupilami
              content:
                type: custom:mod-card
                card:
                  type: custom:flower-card
                  entity: plant.alocatia
                  show_bars:
                    - moisture
                    - temperature
                    - illuminance
                    - conductivity
                  battery_sensor: sensor.alocasia_zebrina_battery
      - type: template
        entity: media_player.echo_jeanne
        icon: mdi:play-pause
        icon_color: |-
          {% if is_state(entity, 'playing') %} 
            #03A9F4
          {% else %}
           grey
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Echo salon
              content:
                type: custom:stack-in-card
                cards:
                  - type: custom:mini-media-player
                    entity: media_player.echo_jeanne
                    source: full
                    volume_stateless: false
                    group: true
                    artwork: full-cover
                    tts:
                      platform: alexa
                      entity_id: media_player.echo_jeanne
                      type: announce
                    shortcuts:
                      hide_when_off: true
                      columns: 3
                      buttons:
                        - name: Playlist Jeanne
                          type: AMAZON_MUSIC
                          id: Playlist Jeanne
                        - name: RTL2
                          type: custom
                          id: joue la station RTL deux
                        - name: Pop- Rock
                          type: custom
                          id: joue du pop rock
                        - name: Rock
                          type: custom
                          id: joue du rock
                        - name: Musique douce
                          type: custom
                          id: joue de la musique douce
                        - name: Piano
                          type: custom
                          id: joue de la musique au piano
                        - name: Queen
                          type: custom
                          id: joue du Queen
                        - name: Vianney
                          type: custom
                          id: joue du Vianney
                        - name: Louane
                          type: custom
                          id: joue du Louane
                        - name: Playlist Jeanne
                          type: AMAZON_MUSIC
                          id: Playlist Jeanne sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: RTL2
                          type: custom
                          id: >-
                            joue la station RTL deux sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Pop- Rock
                          type: custom
                          id: joue du pop rock sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Rock
                          type: custom
                          id: joue du rock sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Musique douce
                          type: custom
                          id: >-
                            joue de la musique douce sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Piano
                          type: custom
                          id: >-
                            joue de la musique au piano sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Queen
                          type: custom
                          id: joue du Queen sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Vianney
                          type: custom
                          id: joue du Vianney sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Louane
                          type: custom
                          id: joue du Louane sur le groupe rez_de_chaussee
                          icon: mdi:multicast
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/echo
      - type: template
        entity: cover.salon
        hold_action:
          action: toggle
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Volets du salon
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-cover-card
                    entity: cover.volet_du_salon_apero
                    name: Volet Apero
                    show_position_control: true
                    show_tilt_position_control: false
                    show_buttons_control: true
                  - type: custom:mushroom-cover-card
                    entity: cover.volet_du_salon_tv
                    name: Volet TV
                    show_position_control: true
                    show_tilt_position_control: false
                    show_buttons_control: true
        icon: |-
          {% if is_state(entity, 'open') %} 
           mdi:window-shutter-open
          {% elif is_state(entity, 'closed') %} 
           mdi:window-shutter
          {% else %}
           mdi:window-shutter-alert
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'open') %} 
           grey
          {% elif is_state(entity, 'closed') %} 
           grey
          {% else %}
           orange
          {% endif %}
      - type: template
        entity: light.0x84ba20fffe4b2581
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Lumières salon
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-light-card
                    entity: light.0x84ba20fffe4b2581
                    name: Petite Lampe
                    use_light_color: true
                    show_brightness_control: true
                    show_color_temp_control: true
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.prise_lampadaire
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.prise_elephants
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.prise_cerisier
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.prise_tradfri
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
        icon: mdi:lightbulb
        hold_action:
          action: toggle
        icon_color: |-
          {% if is_state(entity, 'on') %} 
           orange
          {% elif is_state(entity, 'off') %} 
           grey
          {% else %}
           grey
          {% endif %}
    alignment: end
    card_mod:
      style:
        style: |
          ha-card {
            padding-top: 0px;
            margin-top: -8px;
            padding-bottom: 8px;
            padding-left: 8px;
            padding-right: 8px;
          }

Variante Horizontale

J’ai fait d’autres tests qui peuvent intéresser car on a là aussi un rendu très « mushroom » :

image

Cependant ici, avec le stackin horizontal, on perd la capacité à passer par l’interface graphique et on passe en full YAML, ce qui est dommage car l’idée de mushroom est justement de rester graphique.

le code
  • les mushroom cards (template et chips en basique, light et cover dans les pop ups)
  • card-mod
  • vertical stack-in-card
  • browser-mod ( facultatif, utilisé pour tous les pop up)
  • mini-media (facultatif, pour le pop up du media player)
  • cutom flower card (facultatif, pour le pop up du mi-flora)
type: custom:vertical-stack-in-card
horizontal: true
cards:
  - type: custom:mushroom-template-card
    entity: group.lumieres_salon
    icon: mdi:sofa
    icon_color: |
      {% if is_state(entity, 'on') %}
        #03A9F4
      {% else %}  
        grey
      {% endif %}
    primary: Salon
    secondary: '{{ states(''sensor.echo_jeanne_temperature'') }}°C'
    layout: horizontal
    tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/salon
    double_tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/salon
    hold_action:
      action: toggle
    badge_icon: |
      {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
        mdi:motion-sensor
      {% else %}  
        mdi:motion-sensor-off
      {% endif %}
    badge_color: |
      {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
        orange
      {% else %}  
        grey
      {% endif %}
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: plant.alocatia
        icon: mdi:flower
        icon_color: |-
          {% if is_state(entity, 'problem') %} 
           orange
          {% else %}
           grey
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Plante Marsupilami
              content:
                type: custom:mod-card
                card:
                  type: custom:flower-card
                  entity: plant.alocatia
                  show_bars:
                    - moisture
                    - temperature
                    - illuminance
                    - conductivity
                  battery_sensor: sensor.alocasia_zebrina_battery
      - type: template
        entity: media_player.echo_jeanne
        icon: mdi:play-pause
        icon_color: |-
          {% if is_state(entity, 'playing') %} 
            #03A9F4
          {% else %}
           grey
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Echo salon
              content:
                type: custom:stack-in-card
                cards:
                  - type: custom:mini-media-player
                    entity: media_player.echo_jeanne
                    source: full
                    volume_stateless: false
                    group: true
                    artwork: full-cover
                    tts:
                      platform: alexa
                      entity_id: media_player.echo_jeanne
                      type: announce
                    shortcuts:
                      hide_when_off: true
                      columns: 3
                      buttons:
                        - name: Playlist Jeanne
                          type: AMAZON_MUSIC
                          id: Playlist Jeanne
                        - name: RTL2
                          type: custom
                          id: joue la station RTL deux
                        - name: Pop- Rock
                          type: custom
                          id: joue du pop rock
                        - name: Rock
                          type: custom
                          id: joue du rock
                        - name: Musique douce
                          type: custom
                          id: joue de la musique douce
                        - name: Piano
                          type: custom
                          id: joue de la musique au piano
                        - name: Queen
                          type: custom
                          id: joue du Queen
                        - name: Vianney
                          type: custom
                          id: joue du Vianney
                        - name: Louane
                          type: custom
                          id: joue du Louane
                        - name: Playlist Jeanne
                          type: AMAZON_MUSIC
                          id: Playlist Jeanne sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: RTL2
                          type: custom
                          id: >-
                            joue la station RTL deux sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Pop- Rock
                          type: custom
                          id: joue du pop rock sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Rock
                          type: custom
                          id: joue du rock sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Musique douce
                          type: custom
                          id: >-
                            joue de la musique douce sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Piano
                          type: custom
                          id: >-
                            joue de la musique au piano sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Queen
                          type: custom
                          id: joue du Queen sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Vianney
                          type: custom
                          id: joue du Vianney sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Louane
                          type: custom
                          id: joue du Louane sur le groupe rez_de_chaussee
                          icon: mdi:multicast
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/echo
      - type: template
        entity: cover.salon
        hold_action:
          action: toggle
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Volets du salon
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-cover-card
                    entity: cover.volet_du_salon_apero
                    name: Volet Apero
                    show_position_control: true
                    show_tilt_position_control: false
                    show_buttons_control: true
                  - type: custom:mushroom-cover-card
                    entity: cover.volet_du_salon_tv
                    name: Volet TV
                    show_position_control: true
                    show_tilt_position_control: false
                    show_buttons_control: true
        icon: |-
          {% if is_state(entity, 'open') %} 
           mdi:window-shutter-open
          {% elif is_state(entity, 'closed') %} 
           mdi:window-shutter
          {% else %}
           mdi:window-shutter-alert
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'open') %} 
           grey
          {% elif is_state(entity, 'closed') %} 
           grey
          {% else %}
           orange
          {% endif %}
      - type: template
        entity: light.0x84ba20fffe4b2581
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Lumières salon
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-light-card
                    entity: light.0x84ba20fffe4b2581
                    name: Petite Lampe
                    use_light_color: true
                    show_brightness_control: true
                    show_color_temp_control: true
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.prise_lampadaire
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.prise_elephants
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.prise_cerisier
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
        icon: mdi:lightbulb
        hold_action:
          action: toggle
        icon_color: |-
          {% if is_state(entity, 'on') %} 
           orange
          {% elif is_state(entity, 'off') %} 
           grey
          {% else %}
           grey
          {% endif %}
    alignment: end
    style: |
      ha-card {
        padding-top: 15px;
        padding-bottom: 15px;
        margin-left: -50px;
        padding-left: -150px;
        padding-right: 15px;
      }


Variante Carré

Cette variante ci ressemble plus à la carte « minimalist ». C’était mon option préférée durant un bon moment:

image

Ici on utilise beaucoup Card Mod pour mettre en forme la carte, et je n’étais pas sur de la pérennité ni de la facilité à maintenir cette carte à long terme. Cependant, visuellement, ça marche très bien !
Finalement je suis revenu à quelque chose de plus proche de mushroom, à la fois visuellement, et aussi pour simplifier un peu le code (moins de card_mod), mais cette option mérite aussi qu’on s’y intéresse…

le code
type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    entity: group.lumieres_salon
    icon: mdi:sofa
    icon_color: |
      {% if is_state(entity, 'on') %}
        #03A9F4
      {% else %}  
        grey
      {% endif %}
    primary: Salon
    secondary: '{{ states(''sensor.echo_jeanne_temperature'') }}°C'
    layout: horizontal
    tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/salon
    double_tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/salon
    hold_action:
      action: toggle
    badge_icon: |
      {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
        mdi:motion-sensor
      {% else %}  
        mdi:motion-sensor-off
      {% endif %}
    badge_color: |
      {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
        orange
      {% else %}  
        grey
      {% endif %}
    card_mod:
      style:
        mushroom-state-info$: |
          .primary {
            font-size: 16px !important;
            position: relative;
            top: -50px;
            left: -155px;
            overflow: visible !important;
            white-space: normal !important;
          }
          .secondary {
            position: relative;
            overflow: visible !important;
            top: -52px;
            left: -155px;
          }
        mushroom-shape-icon$: |
          .shape {
            position: relative;
            left: -43px;
            top: 55px;
          }
        .: |
          :host {
            --mush-icon-size: 146px;
          }
        style: |
          mushroom-badge-icon {
            left: 60px;
            top: 25px;
          }
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: light.0x84ba20fffe4b2581
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Lumières salon
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-light-card
                    entity: light.0x84ba20fffe4b2581
                    name: Petite Lampe
                    use_light_color: true
                    show_brightness_control: true
                    show_color_temp_control: true
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.lampadaire
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.elephants
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.cerisier
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
        icon: mdi:lightbulb
        hold_action:
          action: toggle
        icon_color: |-
          {% if is_state(entity, 'on') %} 
           orange
          {% elif is_state(entity, 'off') %} 
           grey
          {% else %}
           grey
          {% endif %}
      - type: template
        entity: cover.salon
        hold_action:
          action: toggle
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Volets du salon
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-cover-card
                    entity: cover.volet_du_salon_apero
                    name: Volet Apero
                    show_position_control: true
                    show_tilt_position_control: false
                    show_buttons_control: true
                  - type: custom:mushroom-cover-card
                    entity: cover.volet_du_salon_tv
                    name: Volet TV
                    show_position_control: true
                    show_tilt_position_control: false
                    show_buttons_control: true
        icon: |-
          {% if is_state(entity, 'open') %} 
           mdi:window-shutter-open
          {% elif is_state(entity, 'closed') %} 
           mdi:window-shutter
          {% else %}
           mdi:window-shutter-alert
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'open') %} 
           grey
          {% elif is_state(entity, 'closed') %} 
           grey
          {% else %}
           orange
          {% endif %}
      - type: template
        entity: media_player.echo_jeanne
        icon: mdi:play-pause
        icon_color: |-
          {% if is_state(entity, 'playing') %} 
            #03A9F4
          {% else %}
           grey
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Echo salon
              content:
                type: custom:stack-in-card
                cards:
                  - type: custom:mini-media-player
                    entity: media_player.echo_jeanne
                    source: full
                    volume_stateless: false
                    group: true
                    artwork: full-cover
                    tts:
                      platform: alexa
                      entity_id: media_player.echo_jeanne
                      type: announce
                    shortcuts:
                      hide_when_off: true
                      columns: 3
                      buttons:
                        - name: Playlist Jeanne
                          type: AMAZON_MUSIC
                          id: Playlist Jeanne
                        - name: RTL2
                          type: custom
                          id: joue la station RTL deux
                        - name: Pop- Rock
                          type: custom
                          id: joue du pop rock
                        - name: Rock
                          type: custom
                          id: joue du rock
                        - name: Musique douce
                          type: custom
                          id: joue de la musique douce
                        - name: Piano
                          type: custom
                          id: joue de la musique au piano
                        - name: Queen
                          type: custom
                          id: joue du Queen
                        - name: Vianney
                          type: custom
                          id: joue du Vianney
                        - name: Louane
                          type: custom
                          id: joue du Louane
                        - name: Playlist Jeanne
                          type: AMAZON_MUSIC
                          id: Playlist Jeanne sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: RTL2
                          type: custom
                          id: >-
                            joue la station RTL deux sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Pop- Rock
                          type: custom
                          id: joue du pop rock sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Rock
                          type: custom
                          id: joue du rock sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Musique douce
                          type: custom
                          id: >-
                            joue de la musique douce sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Piano
                          type: custom
                          id: >-
                            joue de la musique au piano sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Queen
                          type: custom
                          id: joue du Queen sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Vianney
                          type: custom
                          id: joue du Vianney sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Louane
                          type: custom
                          id: joue du Louane sur le groupe rez_de_chaussee
                          icon: mdi:multicast
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/echo
      - type: template
        entity: plant.alocatia
        icon: mdi:flower
        icon_color: |-
          {% if is_state(entity, 'problem') %} 
           orange
          {% else %}
           grey
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Plante Marsupilami
              content:
                type: custom:mod-card
                card:
                  type: custom:flower-card
                  entity: plant.alocatia
                  show_bars:
                    - moisture
                    - temperature
                    - illuminance
                    - conductivity
                  battery_sensor: sensor.alocasia_zebrina_battery
    card_mod:
      style:
        .: |
          ha-card {
            width: 66px;
            margin-left: 80%;
            top: -170px;
            background: none;
            --chip-border-width: 0;
          }
card_mod:
  style: |
    ha-card {
      height: 178px ;

      margin-left: auto;
      margin-right: auto;
    }
Version Hyper-simplifiée

Ci dessous une version hyper simplifiée pour ceux qui voudraient se lancer sans oser trop. Tout est faisable en interface graphique, pas besoin de mettre les doigts dans le YAML…

image

Coté dépendances, Il n’y a qu’à installer (vias HACS par exemple):

Pas besoin de card mod, pas de browser mod pour les pop up (on appelle le more info de l’entité à la place). Il n’y a plus qu’à faire copier coller et mettre vos lumières, vos volets, vos capteurs etc, avec l’interface graphique, sans YAML.

le code simplifié

Copier-coller ce code dans une carte « vierge » en mode YAML, puis enregistrer, puis ré-ouvrir la carte pour modifier avec l’interface graphique…

type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    entity: light.votre_lumière
    icon: mdi:sofa
    icon_color: |
      {% if is_state(entity, 'on') %}
        yelow
      {% else %}  
        grey
      {% endif %}
    primary: Salon
    secondary: '{{ states(''sensor.votre_capteur_temperature'') }}°C'
    layout: horizontal
    tap_action:
      action: navigate
      navigation_path: /votre_url_salon
    double_tap_action:
      action: navigate
      navigation_path: /votre_url_salon
    hold_action:
      action: toggle
    badge_icon: |
      {% if is_state('binary_sensor.votre_capteur_mouvement', 'on') %}
        mdi:motion-sensor
      {% else %}  
        mdi:motion-sensor-off
      {% endif %}
    badge_color: |
      {% if is_state('binary_sensor.votre_capteur__mouvement', 'on') %}
        orange
      {% else %}  
        grey
      {% endif %}
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: media_player.votre_media_player
        icon: mdi:play-pause
        icon_color: |-
          {% if is_state(entity, 'playing') %} 
            green
          {% else %}
           grey
          {% endif %}
        tap_action:
          action: more-info
      - type: template
        entity: cover.votre_volet_salon
        hold_action:
          action: toggle
        tap_action:
          action: more-info
        icon: |-
          {% if is_state(entity, 'open') %} 
           mdi:window-shutter-open
          {% elif is_state(entity, 'closed') %} 
           mdi:window-shutter
          {% else %}
           mdi:window-shutter-alert
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'open') %} 
           grey
          {% elif is_state(entity, 'closed') %} 
           grey
          {% else %}
           orange
          {% endif %}
      - type: template
        entity: light.votre_lumiere
        icon: mdi:lightbulb
        hold_action:
          action: toggle
        icon_color: |-
          {% if is_state(entity, 'on') %} 
           orange
          {% elif is_state(entity, 'off') %} 
           grey
          {% else %}
           grey
          {% endif %}
    alignment: end

Card_Mod et Mushroom

Et pour finir pour ceux qui veulent jouer avec cardmod pour modifier des cartes mushroom, je suis tombé sur cet excellent post sur le forum anglophone, qui liste TOUTES les modifications possibles sur les cartes mushroom… une mine d’or:

https://community.home-assistant.io/t/mushroom-cards-card-mod-styling-config-guide/600472

6 « J'aime »

Les pop up et infos des « room » cartes

Au delà des pop up génériques (Lumière, Volets et Media player) et des infos (température et présence) de la vue salon, que l’on retrouve sur beaucoup de cartes, il y en a quelques autres qui sont intéressants sur les autres cartes:

Carte escalier:
image

pop up PAC

le clic sur la flamme (icône et couleur fonction du mode de la PAC, ici OFF) affiche un pop up qui permet d’activer désactiver les modes auto de la PAC (été ou hivers) et de régler le thermostat si nécessaire.

pop up Roomba

Le clic sur l’icône de l’aspi (couleur et icône dépendant du mode) affiche une carte mushroom « vacuum »
image

Carte cellier:
image

les chips sont ici utilisés pour l’affichage des machines et sèche linge en cours et l’état de la porte entre le cellier et le garage, pas de boutons actifs ici.

Carte enfants:
image
image

affichage de l’heure de début des cours, aujourd’hui et demain, et d’un /!\ si modif d’agenda sur le jour considéré pour les collégiens avec Pronote, de l’heure de reveil programmé sur Alexa sinon.

pop up oral B

Le clic sur le petit Numéro 1 (compteur de brossage de dent) affiche les infos de la brosse à dent
image

Carte bureau:
image

pop up imprimante

Le clic sur la petite goutte affiche les infos de l’imprimante avec des cartes mushroom entity

Carte Salle de bain:
image

pop up brossage des dents

Le clic sur la petite brosse à dent (orange car le fiston ne s’est pas lavé les dents ce matin…) affiche les infos des brosses à dent OralB via des cartes mushroom template

Carte Jardin
image

pop up météo

Le clic sur l’icône météo affiche la météo:

pop up crues

Le clic sur l’icône vague (couleur fonction du niveau de menace) affiche les infos de la station du cour d’eau proche grace à ce tuto - suivi des cours d’eau et les infos de VigieCrue grace à ce post: Récupérer le niveau d’alerte VigiCrue
image

pop up pollens

Le clic sur l’icône fleur (couleur fonction du niveau de menace) affiche les pollens (avec une carte automatique) et les info générales et des allergènes intéressant la famille tirés de l’intégration pollens:
image

Carte Home Assistant
image

Affichage de la perfo du Mini PC.
Icône colorée et badge vert si update HA core, HA os ou HACS disponible

pop up piles

Le clic sur l’icône pile affiche la liste des batteries des senseurs domotiques à pile (avec le type de pile dans le friendly name) trouvée iciCarte automatique pour le suivi des batteries:

Les sous vues:

Les simple clics sur les cartes « rooms » amènent vers des sous vues spécifiques. Si celle des pièces (un simple listing de toutes les entités présentes a base de cartes mushroom) sont de moins en moins utilisées au fur et à mesure de la généralisation des pop-ups, les vues spécifiques sont elles plus souvent utilisées, les voici toutes:

Vue pièce:
Simple listing des entités présentes dans la piece avec des cartes mushroom « simples »:

Exemple avec encore le salon

Vue salon :

Vue Météo:

le clic sur la chip Météo emmène vers une vue spécifique

Chip météo dans le dashboard:
image
Vue météo:

Vue Carte:

le clic long sur une chip personne emmène vers une vue carte spécifique

Chips « personnes » dans le dashboard:
image
Vue carte:

Vue Lumières:
:warning: en chantier Encore en projet…

le clic sur la carte Lumières emmène vers une vue spécifique

carte lumière (mushroom template) :
image
Vue lumière contenant toutes les lumières (mushroom light et mushroom template suivant les cas):

Vue Volets:

le clic sur la carte Volets emmène vers une vue spécifique

carte volets (mushroom template) :
image
Vue volet contenant tous les volets (mushroom chips, mushroom cover et mushroom template):

Vue Sécurité:

le clic sur la carte secu emmène vers une vue spécifique

Carte sécurité (mushroom template):
image
Vue sécurité contenant les présences, tous les capteurs de porte et les detecteur de mouvement/présence (mushroom chips, mushroom person et mushroom entity):

Vue EDF:

le clic sur la carte EDF emmène vers une vue spécifique

carte edf (mushroom template):
image
Vues EDF (mushroom entity, mushroom template et cartes energy):

Vue Home Assistant:

le clic sur la carte HA emmène vers une vue spécifique

carte HA (mushroom template):
image
Vue système avec les info de mise à jour HA, la dispo de certains equipement, les cartes auto pour le niveau des piles des equipements domotiques et les niveau de reception BLE :

Vue Enfant (collège): :warning: en chantier
Encore en projet, à peaufiner suite à l’installation de l’intégration pronote…

le clic sur la carte pitchoun emmène vers une vue spécifique

la carte pitchoom (« mushroom room card » voir post au dessus) :
image
La vue « pièce » des chambres des enfants avec les equipements de leur chambre plus quelques infos issues de pronote (partie encore en élaboration):

Vue Pronote: :warning: en chantier
Encore en projet, à peaufiner suite à l’installation de l’intégration pronote…

le clic sur la carte pronote de la vue pitchoun emmène vers une vue spécifique

la carte pronote de la sous-vue pièce enfant (mushroom template):


La sous vue pronote d’un des collégiens avec un lien vers la sous vue de l’autre, et des cartes pour visualiser les principales info pronote (agenda, notes, moyennes, devoirs, évaluations, absences, retards, etc…):

Page de synthese pronote: :warning: en chantier
accessible depuis les notifications du smartphone (voir ci dessous les automatisations) et par double clic sur la carte « pitchoun », elle est en passe de devenir la vue « principale » quand je trouve le temps de me remettre à l’architecture des sous vues…

clic depuis la notif vers synthese

le double clic sur la carte pitchoom (« mushroom room card » voir post au dessus) :
image
ou le clic sur la notification encas de nouvelle note, amène sur la carte « synthèse » pronote contenant une carte mushroom template de synthèse et des cartes pronote avec les notes:


Un clic sur la carte mushroom de synthèse ramène sur la carte pronote complète de l’enfant montrée juste avant…

1 « J'aime »

Quelques automatisations

Note: La plupart du temps (sauf rares exceptions) je continue à générer plusieurs automatisations pour un même sujet plutôt que de les regrouper dans une seule avec un choose.

Il serait tout à fait possible dans les exemples qui vont suivre de regrouper plusieurs automatisations en une en renommant les triggers et en utilisant un choose. Je ne l’ai pas fait afin d’avoir des automatisations plus simples, mais avec l’inconvenient de ne pas tout avoir dans la même automatisation pour chaque sujet.
Je fais alors attention au nommage afin que mes automations restent ensemble dans la longue liste. J’utilise la nomenclature suivante: Sujet - Piece - Automatisation ou Sujet - Automatisation. ce qui me permet de grouper toutes mes automatisations par Sujets (Lumières, Machines, PAC, Pronote, Surveillance, Tempo, Ventilation, Volets, etc…) puis par Pièce ou par thème.

Gestion de lumières avec détecteur:
Un exemple d’automatisme pour gérer les lumières de l’escalier avec un détecteur de mouvement, tout en laissant un contrôle manuel.
J’utilise 4 automatisations et un timer (mais la 4ème automatisation est facultative).
Ca peut paraitre compliqué, mais une fois mis en place on n’y touche plus… et la complexité initiale s’oublie…
Le but est de pouvoir fonctionner à la fois en automatique ET en manuel:

  • On doit pouvoir allumer la lumière et l’éteindre manuellement sans que l’automatisme ne vienne gêner (sauf la la 4eme automatisation, qui est une « sécurité », qui éteint s’il n’y a pas de détection depuis 15min).
  • Si on détecte une présence (durant les plages horaires « nuit ») on déclenche la lumière pour la durée du timer
  • Le timer se relance en cas de nouvelle détection pour ne pas éteindre si quelqu’un est là, et se coupe si on décide d’éteindre manuellement.

Pour faire ça il faut savoir si l’allumage de la lampe a été fait en automatique ou en manuel. J’utilise un test sur l’état du timer qui me sert de booléen pour savoir si l’allumage a été automatique ou non. Avant de procéder ainsi (test sur l’état du Timer) j’utilisais l’astuce suivante avec les smart light dimables : on peut contourner le problème en allumant en automatique à un niveau <100% et en testant le niveau de la lampe dans l’automatisation d’extinction avant d’éteindre. Mais ça ne marchait pas pour les micro modules on/off…
Tout ceci bien sur suite à d’excellentes suggestions sur le forum comme d’habitude!

Allumage sur détection

En cas de détection

  • si les lampes sont éteintes, on lance le timer et on allume les lampes
  • sinon, si le timer est actif on le relance (l’allumage était automatique, donc on prolonge le timer), sinon on ne fait rien (l’allumage était manuel, on ne lance pas le timer)
alias: Lumières - Escalier - allumage automatique
description: >-
  lorsqu'un mouvement est détecté entre 20h30 et 7h15, l'escalier s'allume
  progressivement jusqu'à 20%, et on (re)lance un timer de 5min
trigger:
  - type: motion
    platform: device
    device_id: 7d6027b34d3c07135a9d64de7b41074e
    entity_id: binary_sensor.0x00124b00246e9df7_occupancy
    domain: binary_sensor
condition:
  - condition: time
    after: "20:30:00"
    before: "07:15:00"
action:
  - if:
      - condition: state
        entity_id: light.0x385b44fffe20eb24
        state: "off"
      - condition: state
        entity_id: light.0x84b4dbfffec93621
        state: "off"
    then:
      - service: timer.start
        data: {}
        target:
          entity_id: timer.alumage_escalier
      - service: light.turn_on
        data: {}
        target:
          entity_id:
            - light.0x84b4dbfffec93621
            - light.0x385b44fffe20eb24
    else: []
  - if:
      - condition: state
        entity_id: timer.alumage_escalier
        state: active
    then:
      - service: timer.start
        data: {}
        target:
          entity_id: timer.alumage_escalier
mode: single
Gestion du Timer - cas de l'extinction manuelle

Si on éteint manuellement les lampes, il faut penser à arrêter le timer (sinon le « mode auto » reste enclenché…

alias: Lumières - Escalier - gestion timer
description: annule le timer quand la lumière est off
trigger:
  - platform: state
    entity_id:
      - light.0x385b44fffe20eb24
    to: "off"
  - platform: state
    entity_id:
      - light.0x84b4dbfffec93621
    to: "off"
condition: []
action:
  - service: timer.cancel
    data: {}
    target:
      entity_id: timer.alumage_escalier
mode: single
Extinction automatique par le Timer

Quand le timer s’arrête, on éteint les lampes (sauf s’il y a toujours une présence, auquel cas on relance le timer).

alias: Lumières - Escalier - extinction auto timer
description: >-
  extinction auto de l'escalier à la fin du timer si inoccupé
trigger:
  - platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.alumage_escalier
condition: []
action:
  - if:
      - condition: state
        entity_id: binary_sensor.0x00124b00246e9df7_occupancy
        state: "on"
    then:
      - service: timer.start
        data: {}
        target:
          entity_id: timer.alumage_escalier
    else:
      - type: turn_off
        device_id: 018e42fdc39d185cce19b42e99393c11
        entity_id: light.0x84b4dbfffec93621
        domain: light
      - type: turn_off
        device_id: aa09ecec8161b872f6cde279c5aae1eb
        entity_id: light.0x385b44fffe20eb24
        domain: light
mode: single
Extinction automatique si pas de mouvement 15min

Dans tous les cas (mais normalement ça ne peut se produire qu’en mode manuel car le timer est <5min) lorsqu’il n’y a pas de présence durant 15min, on éteint les lampes.

alias: Lumières - Escalier - extinction auto inoccupé
description: >-
  extinction auto de l'escalier en absence de mouvement 15min si allumé
trigger:
  - platform: state
    entity_id:
      - binary_sensor.0x00124b00246e9df7_occupancy
    to: "off"
    for:
      hours: 0
      minutes: 15
      seconds: 0
condition:
  - condition: or
    conditions:
      - condition: state
        entity_id: light.0x385b44fffe20eb24
        state: "on"
      - condition: state
        entity_id: light.0x84b4dbfffec93621
        state: "on"
action:
  - type: turn_off
    device_id: 018e42fdc39d185cce19b42e99393c11
    entity_id: light.0x84b4dbfffec93621
    domain: light
  - type: turn_off
    device_id: aa09ecec8161b872f6cde279c5aae1eb
    entity_id: light.0x385b44fffe20eb24
    domain: light
mode: single

Gestion du tarif Tempo:
Nous avons un tarif EDF Tempo qui nécessite d’adapter notre consommation en jours rouge. Ceci implique en particulier de mettre en place des détections de tarif. Nous récupérons les infos de la téléinfo grace à un module Zlinky de Lixee. A partir de là quelques automatisations très basiques sont assez utiles:

Gestion d'un booléen tarif rouge

Ce booléen est plus pratique à utiliser dans les automatisations et le dashboard que des tests sur le tarif en cours. En outre, on peut en modifiant uniquement cette automatisation changer le niveau de tarif dans lequel on veut réduire la consommation pour toutes les automatisations, notifications et le dashboard.

alias: TEMPO - Gestion booléen Tarif Rouge
description: |-
  Gestion du booléen "tarif rouge":
  - Active le booléen tarif rouge lors du passage HPJR
  - Désactive le booléen tarif rouge lorsque HPJR se termine
trigger:
  - platform: state
    entity_id:
      - sensor.0x00158d0005007002_current_tarif
    from: HPJR
    attribute: active_register_tier_delivered
    for:
      hours: 0
      minutes: 0
      seconds: 10
    id: fin
  - platform: state
    entity_id:
      - sensor.0x00158d0005007002_current_tarif
    attribute: active_register_tier_delivered
    for:
      hours: 0
      minutes: 0
      seconds: 10
    id: debut
    to: HPJR
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - fin
          - condition: state
            entity_id: input_boolean.tarif_rouge
            state: "on"
        sequence:
          - service: input_boolean.turn_off
            data: {}
            target:
              entity_id: input_boolean.tarif_rouge
      - conditions:
          - condition: trigger
            id:
              - debut
        sequence:
          - service: input_boolean.turn_on
            data: {}
            target:
              entity_id: input_boolean.tarif_rouge
mode: single
Gestion de la couleur du lendemain

On vient modifier à 20h05 et 6h un input text qui permettra d’afficher en clair la couleur du lendemain quand elle est disponible. Celui ci est alors dispo pour de l’affichage et pour des automatisations. eventuelles.

alias: TEMPO - Gestion couleur lendemain
description: Mise à jour de la couleur du lendemain à 20h05 et 6h00
trigger:
  - platform: time
    at: "20:05:00"
    id: set
  - platform: time
    at: "06:00:00"
    id: reset
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - set
        sequence:
          - choose:
              - conditions:
                  - condition: state
                    entity_id: sensor.0x00158d0005007002_tomorrow_color
                    state: BLAN
                sequence:
                  - service: input_text.set_value
                    data:
                      value: BLANC
                    target:
                      entity_id: input_text.couleur_demain
              - conditions:
                  - condition: state
                    entity_id: sensor.0x00158d0005007002_tomorrow_color
                    state: ROUG
                sequence:
                  - service: input_text.set_value
                    data:
                      value: ROUGE
                    target:
                      entity_id: input_text.couleur_demain
              - conditions:
                  - condition: state
                    entity_id: sensor.0x00158d0005007002_tomorrow_color
                    state: "----"
                sequence:
                  - service: input_text.set_value
                    data:
                      value: BLEU
                    target:
                      entity_id: input_text.couleur_demain
            default:
              - service: input_text.set_value
                data:
                  value: ERREUR
                target:
                  entity_id: input_text.couleur_demain
      - conditions:
          - condition: trigger
            id:
              - reset
        sequence:
          - service: input_text.set_value
            data:
              value: INCONNU
            target:
              entity_id: input_text.couleur_demain
mode: single

Notification si demain est un jour rouge

Basé sur l’input text présenté juste au dessus, un exemple de notification en cas de tarif rouge le lendemain (il faudra penser à rentrer du bois pour poêle…).

alias: TEMPO - notification demain jour rouge
description: Les Alexas (Salon SdB Cuisine) annoncent que demain sera rouge vers 20h05
trigger:
  - platform: state
    entity_id:
      - input_text.couleur_demain
    to: ROUGE
    for:
      hours: 0
      minutes: 0
      seconds: 5
condition:
  - condition: time
    after: "19:30:00"
    before: "20:30:00"
action:
  - service: notify.alexa_media
    data:
      message: Attention ! Demain sera un jour rouge.
      target:
        - media_player.echo_dot_jeanne
        - media_player.echo_jeanne
        - media_player.jeanne_echo_dot
      data:
        type: tts
      title: Annonce jour rouge
mode: single

Gestion de la PAC:
C’est un gros morceau, et je m’appuie sur les ressources suivantes:

  • Des booléens:
    • tarif rouge (voir ci dessus)
    • Mode auto et mode temporaire (pour activer ou désactiver l’automatisme depuis le dashboard)
    • saison chauffage et saison climatisation (avec une petite automatisation pour ne jamais être dans les deux à la fois)
  • deux shedulers: planning chauffage et planning climatisation, qui gèrent les plages de fonctionnement durant la semaine
  • Des input number pour les différentes températures cible (ce qui permet de les régler depuis un dashboard, sans avoir à ouvrir l’automatisation)
Gestion du mode été ou hiver

L’activation d’un mode désactive l’autre pour qu’on ne soit jamais dans les deux modes à la fois. On peut par contre n’être ni en clim, ni en chauffage en intersaison.

alias: PAC - gestion mode chauffage vers clim
description: desactive le chauffage lorsqu'on passe en mode clim
trigger:
  - platform: state
    entity_id:
      - input_boolean.saison_climatistion
    from: "off"
    to: "on"
condition: []
action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.saison_chauffage
mode: single

alias: PAC - gestion mode clim vers chauffage
description: desactive le mode clim lors du passage en mode chauffage
trigger:
  - platform: state
    entity_id:
      - input_boolean.saison_chauffage
    from: "off"
    to: "on"
condition: []
action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.saison_climatistion
mode: single

Gestion du mode temporaire

L’idée de ce mode est de basculer en manuel (donc désactiver la gestion automatique) mais seulement jusqu’au prochain changement d’état du scheduler qui permet alors de repasser en automatique. On peut ainsi couper le chauffage ou l’allumer temporairement pour palier aux défauts du scheduler (présence inhabituelle, télétravail occasionnel, etc…) sans repasser en manuel. Cette idée est reprise de notre Calybox de Deltadore qui offre la même fonction, à l’usage c’est redoutable d’efficacité !

alias: PAC - reset override temporaire hiver
description: Reset l'override temporaire au changement d'état du planning chauffage
trigger:
  - platform: state
    entity_id:
      - schedule.planning_chauffage
    from: "on"
    to: "off"
  - platform: state
    entity_id:
      - schedule.planning_chauffage
    from: "off"
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.saison_chauffage
    state: "on"
action:
  - service: homeassistant.turn_off
    data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
mode: single


alias: PAC - reset override temporaire été
description: Reset l'override temporaire au changement d'état du planning climatisation
trigger:
  - platform: state
    entity_id:
      - schedule.planning_climatisation
    from: "on"
    to: "off"
  - platform: state
    entity_id:
      - schedule.planning_climatisation
    from: "off"
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.saison_climatistion
    state: "on"
action:
  - service: homeassistant.turn_off
    data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
mode: single

Gestion auto chauffage

La grosse automatisation, qui vient tester toutes les 10 min l’état des booléens, et en fonction gère le chauffage.

alias: PAC - gestion auto chauffage
description: >-
  En saison de chauffage.

  En mode auto et sans override temporaire.

  => Chauffe à la temperature de consigne si planifié, sinon a la temperature
  réduite ou off. Si tarif rouge => PAC off.
trigger:
  - platform: time_pattern
    minutes: /10
  - platform: state
    entity_id:
      - input_boolean.chauffage_mode_auto
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.chauffage_mode_auto
    state: "on"
  - condition: state
    entity_id: input_boolean.saison_chauffage
    state: "on"
  - condition: state
    entity_id: input_boolean.pac_override_temporaire
    state: "off"
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.tarif_rouge
            state: "off"
        sequence:
          - choose:
              - conditions:
                  - condition: state
                    entity_id: schedule.planning_chauffage
                    state: "on"
                sequence:
                  - device_id: 5b89093e82e42fe555148e26a107faba
                    domain: climate
                    entity_id: fe8907573739d862acee9459abe1c731
                    type: set_hvac_mode
                    hvac_mode: heat
                  - service: climate.set_temperature
                    data:
                      temperature: "{{states('input_number.temperature_confort_hiver')|int}}"
                    target:
                      entity_id: climate.pac
              - conditions:
                  - condition: state
                    entity_id: schedule.planning_chauffage
                    state: "off"
                sequence:
                  - device_id: 5b89093e82e42fe555148e26a107faba
                    domain: climate
                    entity_id: fe8907573739d862acee9459abe1c731
                    type: set_hvac_mode
                    hvac_mode: "off"
      - conditions:
          - condition: state
            entity_id: input_boolean.tarif_rouge
            state: "on"
        sequence:
          - device_id: 5b89093e82e42fe555148e26a107faba
            domain: climate
            entity_id: climate.pac
            type: set_hvac_mode
            hvac_mode: "off"
mode: single

Gestion auto climatisation

La soeur jumelle pour l’été.

alias: PAC - Gestion auto climatisation
description: |
  En saison de climatisation . 
  Si mode auto et si pas d'override temporaire.
  => Climatise à la température de consigne si planifié, sinon PAC OFF.
trigger:
  - platform: time_pattern
    minutes: /10
  - platform: state
    entity_id:
      - input_boolean.chauffage_mode_auto
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.chauffage_mode_auto
    state: "on"
  - condition: state
    entity_id: input_boolean.saison_climatistion
    state: "on"
  - condition: state
    entity_id: input_boolean.pac_override_temporaire
    state: "off"
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: schedule.planning_climatisation
            state: "on"
        sequence:
          - device_id: 5b89093e82e42fe555148e26a107faba
            domain: climate
            entity_id: climate.pac
            type: set_hvac_mode
            hvac_mode: cool
          - service: climate.set_temperature
            data:
              temperature: "{{states('input_number.temperature_cible_climatisation')|int }}"
            target:
              entity_id: climate.pac
      - conditions:
          - condition: state
            entity_id: schedule.planning_climatisation
            state: "off"
        sequence:
          - device_id: 5b89093e82e42fe555148e26a107faba
            domain: climate
            entity_id: climate.pac
            type: set_hvac_mode
            hvac_mode: "off"
mode: single

Les scripts

Pour pouvoir lancer le chauffage ou la climatisation, ou le couper, depuis le dashboard. Au passage on passe en mode « temporaire », donc cet état perdurera jusqu’au prochain changement du scheduler. Comme c’est un script, on peut l’activer à la voix avec Alexa qui identifie les scripts comme des scènes, donc avec une routine on peut dire « Alexa allume le chauffage » pour lancer le script (plus agréable que dire « Alexa allume allumer_chauffage » sans routine…).

alias: Allumer_chauffage
sequence:
  - service: homeassistant.turn_on
    data: {}
    target:
      entity_id: input_boolean.saison_chauffage
  - service: homeassistant.turn_on
    data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
  - service: climate.set_temperature
    data:
      hvac_mode: heat
      temperature: "{{states('input_number.temperature_confort_hiver')|int}}"
    target:
      entity_id: climate.pac
mode: single
icon: mdi:fire


alias: Allumer_climatisation
sequence:
  - service: homeassistant.turn_on
    data: {}
    target:
      entity_id: input_boolean.saison_climatistion
  - service: homeassistant.turn_on
    data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
  - service: climate.set_temperature
    data:
      hvac_mode: cool
      temperature: "{{states('input_number.temperature_cible_climatisation')|int }}"
    target:
      entity_id: climate.pac
mode: single
icon: mdi:snowflake


alias: Eteindre pac
sequence:
  - service: homeassistant.turn_on
    data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
  - device_id: 5b89093e82e42fe555148e26a107faba
    domain: climate
    entity_id: fe8907573739d862acee9459abe1c731
    type: set_hvac_mode
    hvac_mode: "off"
mode: single
icon: mdi:stop-circle-outline

Suivi des machines et du sèche linge:
Avec 3 enfants, enchainer les machines demande de bien savoir quand elles se terminent… Avec deux prises connectées pour mesurer la conso du lave linge et du seche linge, et la création de deux booléens « machine en cour » et « séchage en cours », on peut faire des choses sympa, y compris des notification adaptables en fonction de l’état des machines en cours et de l’heure pour ne pas reveiller toute la maison!

Démarrage lave linge

Active le booléen machine en cours au démarrage du lave linge

alias: MACHINES - Lave linge en cours - init
description: initialise le booléen Machine en cour
trigger:
  - type: power
    platform: device
    device_id: 959e72fb1a31ef1be0f1d1c3de0a3cd0
    entity_id: sensor.0x94deb8fffe6e2623_power
    domain: sensor
    above: 500
    for:
      hours: 0
      minutes: 0
      seconds: 30
condition:
  - condition: state
    entity_id: input_boolean.machine_en_cour
    state: "off"
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.machine_en_cour
mode: single
Démarrage Séche linge

Active le booléen séchage en cours au démarrage du sèche linge

alias: MACHINES - Séchage en cours - init
description: Initialise le booléen Séchage en cours
trigger:
  - type: power
    platform: device
    device_id: c2eb8aeb1c8259c313010a991fe58b25
    entity_id: sensor.0x94deb8fffe6e1c3f_power
    domain: sensor
    above: 500
    for:
      hours: 0
      minutes: 0
      seconds: 10
condition:
  - condition: state
    entity_id: input_boolean.sechage_en_cours
    state: "off"
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.sechage_en_cours
mode: single

Arrêt Sèche Linge

Notification (Alexa et Smartphone) de fin de sèche linge et reset du booléen séchage en cour lorsque la prise connectée détecte la fin du séchage:

alias: "MACHINES - Sèche linge Terminé "
description: >-
  Notification en fin de sèche linge envoyée sur smartphone Doudou et Jeanne et
  echo salon (Alexa chuchote entre 20h et 9h)
trigger:
  - type: power
    platform: device
    device_id: c2eb8aeb1c8259c313010a991fe58b25
    entity_id: sensor.0x94deb8fffe6e1c3f_power
    domain: sensor
    below: 4
    for:
      hours: 0
      minutes: 0
      seconds: 45
condition:
  - condition: state
    entity_id: input_boolean.sechage_en_cours
    state: "on"
action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.sechage_en_cours
  - choose:
      - conditions:
          - condition: time
            after: "20:00:00"
            before: "09:00:00"
        sequence:
          - service: notify.mobile_app_smartphone_doudou
            data:
              title: SECHE LINGE
              message: Le séchage est terminé
          - service: notify.alexa_media
            data:
              message: >-
                <amazon:effect name="whispered">Le sèche linge est
                terminé</amazon:effect>
              target:
                - media_player.echo_dot_jeanne
                - media_player.echo_jeanne
                - media_player.jeanne_echo_dot
              data:
                type: tts
              title: Annonce sechage fini chuchotté
          - service: notify.mobile_app_smartphone_jeanne
            data:
              message: Le sèchage est terminé
              title: SECHE LINGE
      - conditions:
          - condition: time
            after: "09:00:00"
            before: "20:00:00"
        sequence:
          - service: notify.mobile_app_smartphone_doudou
            data:
              title: SECHE LINGE
              message: Le séchage est terminé
          - service: notify.alexa_media
            data:
              message: <prosody volume="soft">Le sèche linge est terminé</prosody>
              target:
                - media_player.echo_dot_jeanne
                - media_player.echo_jeanne
                - media_player.jeanne_echo_dot
              data:
                type: tts
              title: Annonce fin sechage
          - service: notify.mobile_app_smartphone_jeanne
            data:
              message: Le sèchage est terminé
              title: SECHE LINGE
mode: single

Arrêt du Lave linge

Lorsque la prise connectée détecte la fin du lavage:

  • Reset du booléen lavage en cour
  • Notification (Alexa et Smartphone) de fin de lave linge, si le sèche linge est disponible, sinon attente de la fin du sèche linge:
alias: MACHINES - lave linge terminé
description: >-
  Notifie sur smartphones Doudou et Jeanne et Echo salon (chuchotte entre 20h et
  9h) la fin du lave linge. Notification différée pour attendre la fin du
  séchage en cours le cas échéant.
trigger:
  - type: power
    platform: device
    device_id: 959e72fb1a31ef1be0f1d1c3de0a3cd0
    entity_id: sensor.0x94deb8fffe6e2623_power
    domain: sensor
    below: 4
    for:
      hours: 0
      minutes: 1
      seconds: 0
condition:
  - condition: state
    entity_id: input_boolean.machine_en_cour
    state: "on"
action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.machine_en_cour
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.sechage_en_cours
            state: "off"
        sequence:
          - service: notify.mobile_app_smartphone_doudou
            data:
              title: LAVE LINGE
              message: La lessive est terminée.
          - service: notify.mobile_app_smartphone_jeanne
            data:
              message: La lessive est terminée
              title: LAVE LINGE
          - choose:
              - conditions:
                  - condition: time
                    after: "20:00:00"
                    before: "09:00:00"
                sequence:
                  - service: notify.alexa_media
                    data:
                      message: >-
                        <amazon:effect name="whispered">La machine à laver est
                        terminée</amazon:effect>
                      target:
                        - media_player.echo_dot_jeanne
                        - media_player.echo_jeanne
                        - media_player.jeanne_echo_dot
                      data:
                        type: tts
                      title: Annonce lavage fini chuchotté
              - conditions:
                  - condition: time
                    after: "09:00:00"
                    before: "20:00:00"
                sequence:
                  - service: notify.alexa_media
                    data:
                      message: >-
                        <prosody volume="soft">La machine à laver est termninée,
                        vous pouvez la mettre au sèche linge</prosody>
                      target:
                        - media_player.echo_dot_jeanne
                        - media_player.echo_jeanne
                        - media_player.jeanne_echo_dot
                      data:
                        type: tts
                      title: Annonce lavage fini
      - conditions:
          - condition: state
            entity_id: input_boolean.sechage_en_cours
            state: "on"
        sequence:
          - wait_for_trigger:
              - platform: state
                entity_id:
                  - input_boolean.sechage_en_cours
                from: "on"
                to: "off"
          - service: notify.mobile_app_smartphone_doudou
            data:
              message: La lessive est terminée
              title: LAVE LINGE
          - service: notify.mobile_app_smartphone_jeanne
            data:
              message: La lessive est terminée
              title: LAVE LINGE
          - choose:
              - conditions:
                  - condition: time
                    after: "20:00:00"
                    before: "09:00:00"
                sequence:
                  - service: notify.alexa_media
                    data:
                      message: >-
                        <amazon:effect name="whispered">La machine à laver est
                        terminée</amazon:effect>
                      target:
                        - media_player.echo_dot_jeanne
                        - media_player.echo_jeanne
                        - media_player.jeanne_echo_dot
                      data:
                        type: tts
                      title: Annonce lavage fini chuchotté
              - conditions:
                  - condition: time
                    after: "09:00:00"
                    before: "20:00:00"
                sequence:
                  - service: notify.alexa_media
                    data:
                      message: >-
                        <prosody volume="soft">La machine à laver est termninée,
                        vous pouvez la mettre au sèche linge</prosody>
                      target:
                        - media_player.echo_dot_jeanne
                        - media_player.echo_jeanne
                        - media_player.jeanne_echo_dot
                      data:
                        type: tts
                      title: Annonce lavage fini
mode: single

Notification de nouvelle note sur Pronote:
En s’appuyant sur l’intégration pronote.

Résumé

Notification sur le smartphone des parents de la nouvelle note dispo:

« Nouvelle Note pour xxxx »
« Matière : X/Y (Commentaire) »
Et direction la sous vue pronote en cas de clic sur la notification.

alias: Pronote - notification nouvelle note
description: >-
  Notification smartphone parents en cas de nouvelle note sur le pronote d'un
  enfant
trigger:
  - platform: event
    event_type: pronote_event
    event_data:
      type: new_grade
action:
  - service: notify.mobile_app_smartphone_doudou
    data:
      message: >-
        {{ trigger.event.data.data.subject }} : {{
        trigger.event.data.data.grade_out_of }} ({{
        trigger.event.data.data.comment }})
      title: Nouvelle note pour {{ trigger.event.data.child_name }}
      data:
        clickAction: /lovelace-smartphone/pronote
        url: /lovelace-smartphone/pronote
  - service: notify.mobile_app_smartphone_jeanne
    data:
      message: >-
        {{ trigger.event.data.data.subject }} : {{
        trigger.event.data.data.grade_out_of }} ({{
        trigger.event.data.data.comment }})
      title: Nouvelle note pour {{ trigger.event.data.child_name }}
      data:
        clickAction: /lovelace-smartphone/pronote
        url: /lovelace-smartphone/pronote

5 « J'aime »

Bienvenue sur HACF l’ancien
:wink:

Mieux vaut tard que jamais

1 « J'aime »

Bonjour BBE,

magnifique dashboard. Intelligent et bien conçu.
Serait il possible (sans abuser) d’avoir le code complet?
Encore bravo! je suis fan

La version smartphone:

Code
type: vertical-stack
cards:
  - type: custom:mushroom-chips-card
    chips:
      - type: weather
        entity: weather.tournefeuille
        show_conditions: true
        show_temperature: true
        double_tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/meteo
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/meteo
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/meteo
      - type: entity
        entity: person.bernard
        use_entity_picture: true
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
      - type: entity
        entity: person.jeanne
        use_entity_picture: true
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
      - type: entity
        entity: person.thibault
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
        use_entity_picture: true
      - type: entity
        entity: person.louise
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
        use_entity_picture: true
      - type: entity
        entity: person.justine
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
        use_entity_picture: true
    alignment: center
  - square: false
    columns: 2
    type: grid
    cards:
      - type: custom:mushroom-template-card
        primary: Lumières
        secondary: |
          {% set all = expand(entity)| list -%}
          {% set ND1 = all | selectattr('state','eq','on')|list|count%}
          {% set D1 = all | selectattr('state','eq','off')|list|count%}
          Allumées : {{ND1}}
          Eteintes : {{D1}}
        icon: |
          {% if is_state(entity, 'on') %} 
            mdi:lightbulb-group
          {% else %}
            mdi:lightbulb-group-off
          {% endif %}
        icon_color: |
          {% if is_state(entity,'on') %}
            orange
          {% else %}
            grey
          {% endif %}
        badge_icon: |-
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','on')|list|count%}
          {% if open1 <= 9 %}
            mdi:numeric-{{open1}}
          {% elif open1 >= 10 %}
            mdi:numeric-9-plus
          {% else %}
            none
          {% endif %}
        badge_color: |
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','on')|list|count%}
          {% if open1 == 0 %}
            grey
          {% else %}
            orange
          {% endif %}
        entity: light.toutes_les_lumieres
        layout: horizontal
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/lumieres
        hold_action:
          action: call-service
          service: homeassistant.turn_off
          data: {}
          target:
            entity_id:
              - group.lumieres_toutes
              - switch.prise_tradfri_1
        double_tap_action:
          action: more-info
        multiline_secondary: true
        fill_container: false
      - type: custom:mushroom-template-card
        primary: Volets
        secondary: |
          {% set all = expand(entity)| list -%}
          {% set ND1 = all | selectattr('state','eq','open')|list|count%}
          {% set D1 = all | selectattr('state','eq','closed')|list|count%}
          Ouverts : {{ND1}} 
          Fermés : {{D1}}
        icon: |
          {% if is_state(entity, 'open') %} 
            mdi:window-shutter-open
          {% else %}
            mdi:window-shutter
          {% endif %}
        icon_color: |
          {% if is_state(entity,'open') %}
            light-blue
          {% else %}
            green
          {% endif %}
        badge_icon: |-
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','open')|list|count%}
          {% if open1 <= 9 %}
            mdi:numeric-{{open1}}
          {% elif open1 >= 10 %}
            mdi:numeric-9-plus
          {% else %}
            none
          {% endif %}
        badge_color: |
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','open')|list|count%}
          {% if open1 == 0 %}
            green
          {% else %}
            orange
          {% endif %}
        entity: cover.tous_les_volets
        layout: horizontal
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/volets
        double_tap_action:
          action: more-info
        multiline_secondary: true
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/volets
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: group.lumieres_salon
            icon: mdi:sofa
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Salon
            secondary: '{{ states(''sensor.echo_jeanne_temperature'') }}°C'
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/salon
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/salon
            hold_action:
              action: toggle
            badge_icon: |
              {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: plant.alocatia
                icon: mdi:flower
                icon_color: |-
                  {% if is_state(entity, 'problem') %} 
                   orange
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Plante Marsupilami
                      content:
                        type: custom:mod-card
                        card:
                          type: custom:flower-card
                          entity: plant.alocatia
                          show_bars:
                            - moisture
                            - temperature
                            - illuminance
                            - conductivity
                          battery_sensor: sensor.alocasia_zebrina_battery
              - type: template
                entity: media_player.echo_jeanne
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo salon
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_jeanne
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_jeanne
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: RTL2
                                  type: custom
                                  id: joue la station RTL deux
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Jeanne sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: RTL2
                                  type: custom
                                  id: >-
                                    joue la station RTL deux sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Pop- Rock
                                  type: custom
                                  id: >-
                                    joue du pop rock sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Rock
                                  type: custom
                                  id: joue du rock sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Musique douce
                                  type: custom
                                  id: >-
                                    joue de la musique douce sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Piano
                                  type: custom
                                  id: >-
                                    joue de la musique au piano sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Queen
                                  type: custom
                                  id: joue du Queen sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Vianney
                                  type: custom
                                  id: >-
                                    joue du Vianney sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Louane
                                  type: custom
                                  id: joue du Louane sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.salon
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets du salon
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_du_salon_apero
                            name: Volet Apero
                            show_position_control: true
                            show_tilt_position_control: false
                            show_buttons_control: true
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_du_salon_tv
                            name: Volet TV
                            show_position_control: true
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.0x84ba20fffe4b2581
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières salon
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.0x84ba20fffe4b2581
                            name: Petite Lampe
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: true
                          - type: custom:mushroom-light-card
                            entity: light.prise_lampadaire
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                          - type: custom:mushroom-light-card
                            entity: light.prise_elephants
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                          - type: custom:mushroom-light-card
                            entity: light.prise_cerisier
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                          - type: custom:mushroom-light-card
                            entity: light.prise_tradfri
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            icon: mdi:countertop
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Cuisine
            secondary: '{{ states(''sensor.echo_dot_cuisine_temperature'') }}°C'
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/cuisine
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/cuisine
            hold_action:
              action: toggle
            badge_icon: |
              {% if is_state('binary_sensor.echo_cuisine_mouvement', 'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_cuisine_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
            entity: light.led_cuisine
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: media_player.echo_dot_jeanne
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo dot cuisine
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_dot_jeanne
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_dot_jeanne
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Playlist Top Doudou
                                  type: AMAZON_MUSIC
                                  id: Playlist Top Doudou
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Jeanne sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Playlist Top Doudou
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Top Doudou sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Pop- Rock
                                  type: custom
                                  id: >-
                                    joue du pop rock sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Rock
                                  type: custom
                                  id: joue du rock sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Musique douce
                                  type: custom
                                  id: >-
                                    joue de la musique douce sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Piano
                                  type: custom
                                  id: >-
                                    joue de la musique au piano sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Queen
                                  type: custom
                                  id: joue du Queen sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Vianney
                                  type: custom
                                  id: >-
                                    joue du Vianney sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Louane
                                  type: custom
                                  id: joue du Louane sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.volet_cuisine
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volet Cuisine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_cuisine
                            name: Volet cuisine
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.led_cuisine
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières cuisine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.led_cuisine
                            name: LED cuisine
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: true
                            collapsible_controls: true
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% else %}
                   grey
                  {% endif %}
                double_tap_action:
                  action: none
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.ampoule_bureau
            icon: mdi:desk
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Bureau
            secondary: ...
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/imprimante
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/imprimante
            hold_action:
              action: toggle
            badge_icon: >
              {% if
              is_state('binary_sensor.detecteur_presence_bureau_occupancy',
              'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: >
              {% if
              is_state('binary_sensor.detecteur_presence_bureau_occupancy',
              'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                icon: mdi:water
                icon_color: |-
                  {% if is_state(entity, 'printing') %} 
                   green
                  {% elif is_state(entity, 'stopped') %} 
                   orange
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Imprimante
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-entity-card
                            entity: sensor.imprimante_bureau_canonmx520
                            name: Etat
                            layout: vertical
                          - type: custom:mushroom-entity-card
                            entity: sensor.imprimante_bureau_canonmx520_black
                            name: Cartouche Noir
                            layout: vertical
                            icon_color: black
                          - type: custom:mushroom-entity-card
                            entity: sensor.imprimante_bureau_canonmx520_color
                            name: Cartouche couleur
                            layout: vertical
                entity: sensor.imprimante_bureau_canonmx520
              - type: template
                entity: cover.volet_du_bureau
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volet Bureau
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_du_bureau
                            name: Volet bureau
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                hold_action:
                  action: toggle
              - type: template
                entity: light.ampoule_bureau
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières bureau
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.ampoule_bureau
                            name: Plafonnier Bureau
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: true
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: group.lumieres_escalier
            icon: mdi:stairs
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Escalier
            secondary: '{{ states(''sensor.pac_room_temperature'') }}°C'
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/escalier
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/escalier
            hold_action:
              action: toggle
            badge_icon: >
              {% if is_state('binary_sensor.0x00124b00246e9df7_occupancy', 'on')
              %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: >
              {% if is_state('binary_sensor.0x00124b00246e9df7_occupancy', 'on')
              %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: climate.pac
                icon: >-
                  {% if is_state(entity, 'heat') %} 

                  mdi:fire

                  {% elif is_state(entity, 'cool') %} 

                  mdi:snowflake

                  {% elif is_state('input_boolean.saison_chauffage', 'on') %} 

                  mdi:fire

                  {% elif is_state('input_boolean.saison_climatistion', 'on')
                  %} 

                  mdi:snowflake

                  {% else %}

                  mdi:fan

                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: PAC etage
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-chips-card
                            chips:
                              - type: template
                                entity: input_boolean.chauffage_mode_auto
                                icon: >-
                                  {% if
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'on') %} 
                                   mdi:cog-refresh
                                  {% elif
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'off') %} 
                                    mdi:cog-off
                                  {% else %}
                                    mdi:comment-question
                                  {% endif %}
                                icon_color: >-
                                  {% if
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'on') %} 

                                  green

                                  {% elif
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'off') %} 

                                  red

                                  {% else %}

                                  orange

                                  {% endif %}
                                content: >-
                                  {% if
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'on') %} 

                                  Mode général: Auto

                                  {% elif
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'off') %} 

                                  Mode général: Manuel

                                  {% else %}

                                  Inconnu

                                  {% endif %}
                                tap_action:
                                  action: toggle
                                hold_action:
                                  action: more-info
                              - type: template
                                entity: input_boolean.pac_override_temporaire
                                icon: >-
                                  {% if
                                  is_state('input_boolean.pac_override_temporaire',
                                  'on') %} 
                                   mdi:cog-pause
                                  {% elif
                                  is_state('input_boolean.pac_override_temporaire',
                                  'off') %} 
                                    mdi:cog-refresh
                                  {% else %}
                                    mdi:comment-question
                                  {% endif %}
                                icon_color: >-
                                  {% if
                                  is_state('input_boolean.pac_override_temporaire',
                                  'on') %} 
                                   orange
                                  {% elif
                                  is_state('input_boolean.pac_override_temporaire',
                                  'off') %} 
                                    green
                                  {% else %}
                                    orange
                                  {% endif %}
                                content: >-
                                  {% if
                                  is_state('input_boolean.pac_override_temporaire',
                                  'on') %} 
                                   Mode temporaire: Manuel
                                  {% elif
                                  is_state('input_boolean.pac_override_temporaire',
                                  'off') %} 
                                   Mode temporaire: Auto
                                  {% else %}
                                    Inconnu
                                  {% endif %}
                              - type: conditional
                                conditions:
                                  - entity: input_boolean.saison_chauffage
                                    state: 'on'
                                chip:
                                  type: template
                                  double_tap_action:
                                    action: more-info
                                  entity: schedule.planning_chauffage
                                  icon: >-
                                    {% if
                                    is_state('schedule.planning_chauffage',
                                    'on') %} 
                                     mdi:fire
                                    {% elif
                                    is_state('schedule.planning_chauffage',
                                    'off') %} 
                                      mdi:fire-off
                                    {% else %}
                                      mdi:comment-question
                                    {% endif %}
                                  icon_color: >-
                                    {% if
                                    is_state('schedule.planning_chauffage',
                                    'on') %} 
                                     yellow
                                    {% elif
                                    is_state('schedule.planning_chauffage',
                                    'off') %} 
                                      grey
                                    {% else %}
                                      orange
                                    {% endif %}
                                  content: >-
                                    {% if
                                    is_state('schedule.planning_chauffage',
                                    'on') %} 
                                     Cible mode auto: confort
                                    {% elif
                                    is_state('schedule.planning_chauffage',
                                    'off') %} 
                                      Cible mode auto: off
                                    {% else %}
                                      Inconnu
                                    {% endif %}
                                  tap_action:
                                    action: more-info
                                  hold_action:
                                    action: more-info
                              - type: conditional
                                conditions:
                                  - entity: input_boolean.saison_climatistion
                                    state: 'on'
                                chip:
                                  type: template
                                  entity: schedule.planning_climatisation
                                  icon: >-
                                    {% if
                                    is_state('schedule.planning_climatisation',
                                    'on') %} 
                                     mdi:snowflake
                                    {% elif
                                    is_state('schedule.planning_climatisation',
                                    'off') %} 
                                      mdi:snowflake-off
                                    {% else %}
                                      mdi:comment-question
                                    {% endif %}
                                  icon_color: >-
                                    {% if
                                    is_state('schedule.planning_climatisation',
                                    'on') %} 
                                     light-blue
                                    {% elif
                                    is_state('schedule.planning_climatisation',
                                    'off') %} 
                                      grey
                                    {% else %}
                                      orange
                                    {% endif %}
                                  content: >-
                                    {% if
                                    is_state('schedule.planning_climatisation',
                                    'on') %} 
                                     Cible mode auto: confort
                                    {% elif
                                    is_state('schedule.planning_climatisation',
                                    'off') %} 
                                      Cible mode auto: off
                                    {% else %}
                                      Inconnu
                                    {% endif %}
                              - type: entity
                                entity: input_boolean.tarif_rouge
                                icon_color: red
                                content_info: name
                              - type: action
                                icon_color: red
                                tap_action:
                                  action: none
                                hold_action:
                                  action: call-service
                                  service: script.allumer_chauffage
                                  target: {}
                                double_tap_action:
                                  action: none
                                icon: mdi:fire
                              - type: action
                                tap_action:
                                  action: none
                                hold_action:
                                  action: call-service
                                  service: script.allumer_climatisation
                                  target: {}
                                double_tap_action:
                                  action: none
                                icon: mdi:snowflake
                                icon_color: light-blue
                              - type: action
                                tap_action:
                                  action: none
                                hold_action:
                                  action: call-service
                                  service: script.eteindre_pac
                                  target: {}
                                double_tap_action:
                                  action: none
                                icon: mdi:stop-circle-outline
                                icon_color: red
                            alignment: start
                          - type: thermostat
                            entity: climate.pac
                icon_color: |-
                  {% if is_state(entity, 'heat') %} 
                  orange
                  {% elif is_state(entity, 'cool') %} 
                  blue
                  {% elif is_state(entity, 'off') %} 
                  grey
                  {% else %}
                    grey
                  {% endif %}
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/gestion-pac-gainable
                double_tap_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/gestion-pac-gainable
              - type: template
                entity: vacuum.roomba
                icon: |-
                  {% if is_state(entity, 'cleaning') %} 
                   mdi:robot-vacuum
                  {% elif is_state(entity, 'docked') %} 
                   mdi:robot-vacuum
                  {% else %}
                   mdi:robot-vacuum-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'cleaning') %} 
                   blue
                  {% elif is_state(entity, 'docked') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Roomba
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-vacuum-card
                            entity: vacuum.roomba
                            commands:
                              - start_pause
                              - stop
                              - locate
                              - return_home
              - type: template
                entity: cover.volet_de_la_mezzanine
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets Escalier
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_de_la_mezzanine
                            name: Volet Mezzanine
                            show_position_control: true
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: group.lumieres_escalier
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières Escalier
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.0x385b44fffe20eb24
                            name: Sous escalier
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: false
                          - type: custom:mushroom-light-card
                            entity: light.0x84b4dbfffec93621
                            name: Mezzanine
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: false
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            icon: mdi:washing-machine
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% elif is_state('input_boolean.sechage_en_cours', 'on') %} 
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Cellier
            secondary: >
              {% if is_state(entity, 'on') %} lavage {% endif %} .

              {% if is_state('input_boolean.sechage_en_cours', 'on') %} séchage
              {% endif %}
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            hold_action:
              action: none
            badge_icon: |+

            badge_color: |+

            entity: input_boolean.machine_en_cour
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: binary_sensor.0x00124b0028941c36_contact
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:door-open
                  {% elif is_state(entity, 'off') %} 
                   mdi:door-closed
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   red
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                tap_action:
                  action: none
              - type: template
                entity: input_boolean.machine_en_cour
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:washing-machine
                  {% elif is_state(entity, 'off') %} 
                   mdi:washing-machine-off
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   green
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                double_tap_action:
                  action: none
                tap_action:
                  action: none
              - type: template
                entity: input_boolean.sechage_en_cours
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:tumble-dryer
                  {% elif is_state(entity, 'off') %} 
                   mdi:tumble-dryer-off
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   green
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                tap_action:
                  action: none
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: group.lumieres_jardin
            icon: mdi:tree
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Jardin
            secondary: '{{states(''sensor.tournefeuille_temperature'') }}°C'
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            hold_action:
              action: toggle
            badge_icon: |+

            badge_color: |+


          - type: custom:mushroom-chips-card
            chips:
              - type: weather
                entity: weather.tournefeuille
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Météo
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:meteofrance-weather-card
                            entity: weather.tournefeuille
                            number_of_forecasts: '3'
                            details: true
                            current: true
                            one_hour_forecast: true
                            alert_forecast: true
                            rainForecastEntity: sensor.tournefeuille_next_rain
                            rainChanceEntity: sensor.tournefeuille_rain_chance
                            uvEntity: sensor.tournefeuille_uv
                            cloudCoverEntity: sensor.tournefeuille_cloud_cover
                            freezeChanceEntity: sensor.tournefeuille_freeze_chance
                            snowChanceEntity: sensor.tournefeuille_snow_chance
                            alertEntity: sensor.31_weather_alert
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/meteo
              - type: template
                entity: sensor.pollens_31_risklevel
                icon: mdi:flower-pollen
                hold_action:
                  action: toggle
                icon_color: >-
                  {% if is_state(entity, '2') %} 
                   orange
                  {% elif is_state(entity, '3') %} 
                   red
                  {% elif
                  is_state('sensor.pollens_31_ambroisies',['00','2','3']) %} 

                  red

                  {% elif is_state('sensor.pollens_31_armoise',['1','2','3'])
                  %} 

                  red

                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Pollens
                      content:
                        type: vertical-stack
                        cards:
                          - type: horizontal-stack
                            cards:
                              - type: custom:mushroom-template-card
                                primary: Haute Garonne
                                secondary: 'Risque: {{ states(entity)}}'
                                icon: |-
                                  {% if is_state(entity, '3') %} 
                                    mdi:flower-pollen
                                  {% else %}
                                    mdi:flower-pollen-outline
                                  {% endif %}
                                entity: sensor.pollens_31_risklevel
                                icon_color: |
                                  {% if is_state(entity, '0') %} 
                                    green
                                  {% elif is_state(entity, '1') %} 
                                    yellow
                                  {% elif is_state(entity, '2') %} 
                                    orange
                                  {% elif is_state(entity, '3') %} 
                                    red
                                  {% else %}
                                    grey
                                  {% endif %}
                              - type: custom:mushroom-template-card
                                primary: Ambroisie
                                secondary: 'Risque: {{ states(entity)}}'
                                icon: |-
                                  {% if is_state(entity, '3') %} 
                                    mdi:grass
                                  {% else %}
                                    mdi:grass
                                  {% endif %}
                                entity: sensor.pollens_31_ambroisies
                                icon_color: |
                                  {% if is_state(entity, '0') %} 
                                    green
                                  {% elif is_state(entity, '1') %} 
                                    yellow
                                  {% elif is_state(entity, '2') %} 
                                    orange
                                  {% elif is_state(entity, '3') %} 
                                    red
                                  {% else %}
                                    grey
                                  {% endif %}
                              - type: custom:mushroom-template-card
                                primary: Armoise
                                secondary: 'Risque: {{ states(entity)}}'
                                icon: |-
                                  {% if is_state(entity, '3') %} 
                                    mdi:grass
                                  {% else %}
                                    mdi:grass
                                  {% endif %}
                                entity: sensor.pollens_31_armoise
                                icon_color: |
                                  {% if is_state(entity, '0') %} 
                                    green
                                  {% elif is_state(entity, '1') %} 
                                    yellow
                                  {% elif is_state(entity, '2') %} 
                                    orange
                                  {% elif is_state(entity, '3') %} 
                                    red
                                  {% else %}
                                    grey
                                  {% endif %}
                          - type: custom:auto-entities
                            filter:
                              include: null
                              template: |
                                {%  set ALTNAME = 'd'-%} 
                                {% for state in states.sensor -%}
                                  {%- if state.entity_id | regex_match('sensor.pollens_31_',ignorecase=False) -%}
                                  {%- set NAME = state_attr(state.entity_id,"pollen_name") -%}
                                    {{
                                      { 'entity': state.entity_id,
                                        'name': NAME,
                                      } }},
                                  {%- endif -%}
                                {%- endfor %}
                              exclude:
                                - state: <1
                                - entity_id: sensor.pollens_31_risklevel
                            sort:
                              numeric: true
                              reverse: true
                              method: state
                            card:
                              type: custom:bar-card
                              title: Pollens en alerte dans le 31
                              min: 0
                              max: 3
                              positions:
                                name: outside
                              width: 70%
                              style: |-
                                bar-card-value {
                                  margin-right: 5px;
                                  font-size: 15px;
                                  font-weight: bold;
                                  text-shadow: 1px 1px #000000;
                                }
                              severity:
                                - color: grey
                                  from: 0
                                  to: 0
                                - color: yellow
                                  from: 1
                                  to: 1
                                - color: orange
                                  from: 2
                                  to: 2
                                - color: red
                                  from: 3
                                  to: 3
              - type: template
                entity: light.inter_lumiere_terrasse
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières jardin
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.inter_lumiere_terrasse
                            name: Terrasse
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: true
                          - type: custom:mushroom-light-card
                            entity: light.inter_lumiere_piscine
                            name: Piscine
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.led_thibault
            icon: mdi:bed
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Thibault
            secondary: >-
              Ce jour:{% if
              states('sensor.pronote_thibault_timetable_today') !=
              'unavailable' %} {{
              state_attr('sensor.pronote_thibault_timetable_today','day_start_at').strftime('%H:%M')}}{%
              if
              state_attr('sensor.pronote_thibault_timetable_today','canceled_lessons_counter')
              >= 1 %} /!\{% endif %} {% else %} pas cours {% endif %}

              Demain:{% if
              states('sensor.pronote_thibault_timetable_tomorrow') !=
              'unavailable' %} {{
              state_attr('sensor.pronote_thibault_timetable_tomorrow','day_start_at').strftime('%H:%M')}}{%
              if
              state_attr('sensor.pronote_thibault_timetable_tomorrow','canceled_lessons_counter')
              >= 1 %} /!\{% endif %} {% else %} pas cours {% endif %}
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /smartphone-enfants/chambres thibault
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/pronote
            hold_action:
              action: toggle
            badge_icon: |
              {% if is_state('binary_sensor.echo_thibault_mouvement', 'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_thibault_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
            multiline_secondary: true
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: counter.brossage_thibault
                icon: |-
                  {% if is_state(entity, '0') %}
                    mdi:numeric-0
                  {% elif is_state(entity, '1') %}
                    mdi:numeric-1
                  {% elif is_state(entity, '2') %}
                    mdi:numeric-2
                  {% elif is_state(entity, '3') %}
                    mdi:numeric-3
                  {% else %}
                    mdi:chat-question
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, '0') %}
                    red
                  {% elif is_state(entity, '1') %}
                    orange
                  {% elif is_state(entity, '2') %}
                    green
                  {% elif is_state(entity, '3') %}
                    green
                  {% else %}
                    grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Brosse a dent de Thibault
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-template-card
                            primary: Brosse a dent de Thibault
                            secondary: >-
                              {% if is_state(entity, 'running') %}Brosse depuis
                              {{states('sensor.brosse_a_dent_thibault_time',)}}
                              s{% else %}Etat : {{states(entity)}} %{% endif %}

                              Batterie :
                              {{states('sensor.brosse_a_dent_thibault_battery',)}}
                              %

                              {{states('counter.brossage_thibault')}} brossage{%
                              if states('counter.brossage_thibault') >= '2'%}s{%
                              endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_thibault_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_icon: >-
                              {% if is_state('counter.brossage_thibault', '0')
                              %}
                                mdi:numeric-0
                              {% elif is_state('counter.brossage_thibault', '1')
                              %}
                                mdi:numeric-1
                              {% elif is_state('counter.brossage_thibault', '2')
                              %}
                                mdi:numeric-2
                              {% elif is_state('counter.brossage_thibault', '3')
                              %}
                                mdi:numeric-3
                              {% else %}
                                mdi:chat-question
                              {% endif %}
                            badge_color: >-
                              {% if is_state('counter.brossage_thibault', '0')
                              %}
                                red
                              {% elif is_state('counter.brossage_thibault', '1')
                              %}
                                orange
                              {% elif is_state('counter.brossage_thibault', '2')
                              %}
                                green
                              {% elif is_state('counter.brossage_thibault', '3')
                              %}
                                green
                              {% else %}
                                grey
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
              - type: template
                entity: media_player.echo_dot_thibault
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo Thibault
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_dot_thibault
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_dot_thibault
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.volet_de_la_chambre_de_thibault
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets de Thibault
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_de_la_chambre_de_thibault
                            name: Volet Thibault
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.led_thibault
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières Thibault
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.led_thibault
                            name: LED Thibault
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: true
                            collapsible_controls: false
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.led_louise
            icon: mdi:bed
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Louise
            secondary: >-
              Ce jour:{% if
              states('sensor.pronote_louise_timetable_today') !=
              'unavailable' %} {{
              state_attr('sensor.pronote_louise_timetable_today','day_start_at').strftime('%H:%M')}}{%
              if
              state_attr('sensor.pronote_louise_timetable_today','canceled_lessons_counter')
              >= 1 %} /!\{% endif %} {% else %} pas cours {% endif %}

              Demain:{% if
              states('sensor.pronote_louise_timetable_tomorrow') !=
              'unavailable' %} {{
              state_attr('sensor.pronote_louise_timetable_tomorrow','day_start_at').strftime('%H:%M')}}{%
              if
              state_attr('sensor.pronote_louise_timetable_tomorrow','canceled_lessons_counter')
              >= 1 %} /!\{% endif %} {% else %} pas cours {% endif %}
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /smartphone-enfants/chambres Louise
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/pronote
            hold_action:
              action: toggle
            badge_icon: |
              {% if is_state('binary_sensor.echo_louise_mouvement', 'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_louise_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
            multiline_secondary: true
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: counter.brossage_louise
                icon: |-
                  {% if is_state(entity, '0') %}
                    mdi:numeric-0
                  {% elif is_state(entity, '1') %}
                    mdi:numeric-1
                  {% elif is_state(entity, '2') %}
                    mdi:numeric-2
                  {% elif is_state(entity, '3') %}
                    mdi:numeric-3
                  {% else %}
                    mdi:chat-question
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, '0') %}
                    red
                  {% elif is_state(entity, '1') %}
                    orange
                  {% elif is_state(entity, '2') %}
                    green
                  {% elif is_state(entity, '3') %}
                    green
                  {% else %}
                    grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Brosse a dent de Louise
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-template-card
                            primary: Brosse de Louise
                            secondary: >-
                              {% if is_state(entity, 'running') %}Brosse depuis
                              {{states('sensor.brosse_a_dent_louise_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              Batterie :
                              {{states('sensor.brosse_a_dent_louise_battery',)}}
                              %

                              {{states('counter.brossage_louise')}} brossage{%
                              if states('counter.brossage_louise') >= '2'%}s{%
                              endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_louise_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_color: >-
                              {% if is_state('counter.brossage_louise', '0') %}
                                red
                              {% elif is_state('counter.brossage_louise', '1')
                              %}
                                orange
                              {% elif is_state('counter.brossage_louise', '2')
                              %}
                                green
                              {% elif is_state('counter.brossage_louise', '3')
                              %}
                                green
                              {% else %}
                                grey
                              {% endif %}
                            badge_icon: >-
                              {% if is_state('counter.brossage_louise', '0') %}
                                mdi:numeric-0
                              {% elif is_state('counter.brossage_louise', '1')
                              %}
                                mdi:numeric-1
                              {% elif is_state('counter.brossage_louise', '2')
                              %}
                                mdi:numeric-2
                              {% elif is_state('counter.brossage_louise', '3')
                              %}
                                mdi:numeric-3
                              {% else %}
                                mdi:chat-question
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
              - type: template
                entity: media_player.echo_dot_louise
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo Louise
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_dot_louise
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_dot_louise
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.volet_de_la_chambre_de_louise
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets de Louise
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_de_la_chambre_de_louise
                            name: Volet Louise
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.led_louise
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières Louise
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.led_louise
                            name: LED Louise
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: true
                            collapsible_controls: false
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.led_justine
            icon: mdi:bed
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Justine
            secondary: ..
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /smartphone-enfants/chambres Justine
            double_tap_action:
              action: navigate
              navigation_path: /smartphone-enfants/chambres Justine
            hold_action:
              action: toggle
            badge_icon: >
              {% if is_state('binary_sensor.echo_justine_mouvement_mouvement',
              'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_justine_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: counter.brossage_justine
                icon: |-
                  {% if is_state(entity, '0') %}
                    mdi:numeric-0
                  {% elif is_state(entity, '1') %}
                    mdi:numeric-1
                  {% elif is_state(entity, '2') %}
                    mdi:numeric-2
                  {% elif is_state(entity, '3') %}
                    mdi:numeric-3
                  {% else %}
                    mdi:chat-question
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, '0') %}
                    red
                  {% elif is_state(entity, '1') %}
                    orange
                  {% elif is_state(entity, '2') %}
                    green
                  {% elif is_state(entity, '3') %}
                    green
                  {% else %}
                    grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Brosse a dent de Justine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-template-card
                            primary: Brosse a dent de Justine
                            secondary: >-
                              {% if is_state(entity, 'running') %}Brosse depuis
                              {{states('sensor.brosse_a_dent_justine_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              Batterie :
                              {{states('sensor.brosse_a_dent_justine_battery',)}}
                              %

                              {{states('counter.brossage_justine')}} brossage{%
                              if states('counter.brossage_justine') >= '2'%}s{%
                              endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_justine_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_color: >-
                              {% if is_state('counter.brossage_justine', '0') %}
                                red
                              {% elif is_state('counter.brossage_justine', '1')
                              %}
                                orange
                              {% elif is_state('counter.brossage_justine', '2')
                              %}
                                green
                              {% elif is_state('counter.brossage_justine', '3')
                              %}
                                green
                              {% else %}
                                grey
                              {% endif %}
                            badge_icon: >-
                              {% if is_state('counter.brossage_justine', '0') %}
                                mdi:numeric-0
                              {% elif is_state('counter.brossage_justine', '1')
                              %}
                                mdi:numeric-1
                              {% elif is_state('counter.brossage_justine', '2')
                              %}
                                mdi:numeric-2
                              {% elif is_state('counter.brossage_justine', '3')
                              %}
                                mdi:numeric-3
                              {% else %}
                                mdi:chat-question
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
              - type: template
                entity: media_player.echo_dot_justine
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo Justine
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_dot_justine
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_dot_justine
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Aldebert
                                  type: custom
                                  id: joue du Aldebert
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.volet_de_la_chambre_de_justine
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets de Justine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_de_la_chambre_de_justine
                            name: Volet Justine
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.led_justine
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières Justine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.led_justine
                            name: LED Justine
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: true
                            collapsible_controls: false
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.inter_lumiere_garage
            icon: mdi:tools
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Garage
            secondary: ..
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            hold_action:
              action: toggle
            badge_icon: >
              {% if
              is_state('binary_sensor.detecteur_presence_garage_occupancy',
              'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: >
              {% if
              is_state('binary_sensor.detecteur_presence_garage_occupancy',
              'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: binary_sensor.0x00124b0028943f14_contact
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:garage-open-variant
                  {% elif is_state(entity, 'off') %} 
                   mdi:garage-variant
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   red
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                tap_action:
                  action: none
              - type: template
                entity: binary_sensor.0x00124b0028941c36_contact
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:door-open
                  {% elif is_state(entity, 'off') %} 
                   mdi:door-closed
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   red
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                tap_action:
                  action: none
              - type: template
                entity: light.inter_lumiere_garage
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières garage
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.inter_lumiere_garage
                            name: lumière garage
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: true
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: media_player.jeanne_echo_dot
            icon: mdi:bathtub
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Bain
            secondary: ..
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/salles-de-bains
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/salles-de-bains
            hold_action:
              action: toggle
            badge_icon: |+

            badge_color: |+


          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: input_boolean.alerte_brossage
                icon: mdi:toothbrush-electric
                icon_color: |-
                  {% if states(entity) == 'on' %}
                    orange
                  {% else %}
                    grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Brosses à dent
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-template-card
                            primary: Bernard
                            secondary: >-
                              Brosse à dent:

                              - {% if is_state(entity, 'running') %}Brosse
                              depuis
                              {{states('sensor.brosse_a_dent_bernard_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              - Batterie :
                              {{states('sensor.brosse_a_dent_bernard_battery',)}}
                              %

                              - {{states('counter.brossage_bernard')}}
                              brossage{% if states('counter.brossage_bernard')
                              >= '2'%}s{% endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_bernard_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_icon: >-
                              {% if
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-75
                              %}
                                mdi:signal-cellular-3
                              {% elif
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-95
                              %}
                                mdi:signal-cellular-2
                              {% elif
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-125
                              %}
                                mdi:signal-cellular-1
                              {% else %}
                                mdi:signal-cellular-outline
                              {% endif %}
                            badge_color: >-
                              {% if
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-75
                              %}
                                green
                              {% elif
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-95
                              %}
                                light-green
                              {% elif
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-125
                              %}
                                orange
                              {% else %}
                                red
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
                          - type: custom:mushroom-template-card
                            primary: Thibault
                            secondary: >-
                              Brosse a dent:

                              - {% if is_state(entity, 'running') %}Brosse
                              depuis
                              {{states('sensor.brosse_a_dent_thibault_time',)}}
                              s{% else %}Etat : {{states(entity)}} %{% endif %}

                              - Batterie :
                              {{states('sensor.brosse_a_dent_thibault_battery',)}}
                              %

                              - {{states('counter.brossage_thibault')}}
                              brossage{% if states('counter.brossage_thibault')
                              >= '2'%}s{% endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_thibault_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_icon: >-
                              {% if
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-75
                              %}
                                mdi:signal-cellular-3
                              {% elif
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-95
                              %}
                                mdi:signal-cellular-2
                              {% elif
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-125
                              %}
                                mdi:signal-cellular-1
                              {% else %}
                                mdi:signal-cellular-outline
                              {% endif %}
                            badge_color: >-
                              {% if
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-75
                              %}
                                green
                              {% elif
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-95
                              %}
                                light-green
                              {% elif
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-125
                              %}
                                orange
                              {% else %}
                                red
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
                          - type: custom:mushroom-template-card
                            primary: Louise
                            secondary: >-
                              Brosse à dent:

                              - {% if is_state(entity, 'running') %}Brosse
                              depuis
                              {{states('sensor.brosse_a_dent_louise_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              - Batterie :
                              {{states('sensor.brosse_a_dent_louise_battery',)}}
                              %

                              - {{states('counter.brossage_louise')}} brossage{%
                              if states('counter.brossage_louise') >= '2'%}s{%
                              endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_louise_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_color: >-
                              {% if
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-75
                              %}
                                green
                              {% elif
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-95
                              %}
                                light-green
                              {% elif
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-125
                              %}
                                orange
                              {% else %}
                                red
                              {% endif %}
                            badge_icon: >-
                              {% if
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-75
                              %}
                                mdi:signal-cellular-3
                              {% elif
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-95
                              %}
                                mdi:signal-cellular-2
                              {% elif
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-125
                              %}
                                mdi:signal-cellular-1
                              {% else %}
                                mdi:signal-cellular-outline
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
                          - type: custom:mushroom-template-card
                            primary: Justine
                            secondary: >-
                              Brosse a dent:

                              - {% if is_state(entity, 'running') %}Brosse
                              depuis
                              {{states('sensor.brosse_a_dent_justine_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              - Batterie :
                              {{states('sensor.brosse_a_dent_justine_battery',)}}
                              %

                              - {{states('counter.brossage_justine')}}
                              brossage{% if states('counter.brossage_justine')
                              >= '2'%}s{% endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_justine_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_color: >-
                              {% if
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-75
                              %}
                                green
                              {% elif
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-95
                              %}
                                light-green
                              {% elif
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-125
                              %}
                                orange
                              {% else %}
                                red
                              {% endif %}
                            badge_icon: >-
                              {% if
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-75
                              %}
                                mdi:signal-cellular-3
                              {% elif
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-95
                              %}
                                mdi:signal-cellular-2
                              {% elif
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-125
                              %}
                                mdi:signal-cellular-1
                              {% else %}
                                mdi:signal-cellular-outline
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
              - type: template
                entity: media_player.jeanne_echo_dot
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo salle de bain
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.jeanne_echo_dot
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.jeanne_echo_dot
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Playlist Top Doudou
                                  type: AMAZON_MUSIC
                                  id: Playlist Top Doudou
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Jeanne sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Playlist Top Doudou
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Top Doudou sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Pop- Rock
                                  type: custom
                                  id: >-
                                    joue du pop rock sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Rock
                                  type: custom
                                  id: joue du rock sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Musique douce
                                  type: custom
                                  id: >-
                                    joue de la musique douce sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Piano
                                  type: custom
                                  id: >-
                                    joue de la musique au piano sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Queen
                                  type: custom
                                  id: joue du Queen sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Vianney
                                  type: custom
                                  id: >-
                                    joue du Vianney sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Louane
                                  type: custom
                                  id: joue du Louane sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            icon: mdi:home-assistant
            icon_color: >
              {% if is_state(entity, 'on') %}
                light-blue
              {% elif is_state('update.home_assistant_operating_system_update',
              'on') %}
                light-blue
              {% elif states('sensor.hacs') >= '1' %}
                orange
              {% else %}  
                grey
              {% endif %}
            primary: Home assistant
            secondary: >-
              RAM{{ states('sensor.memory_use_percent')|int }}% CPU{{
              states('sensor.processor_use') }}%
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/systeme
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/systeme
            hold_action:
              action: toggle
            badge_icon: >
              {% if is_state(entity, 'on') %}
                mdi:arrow-up
              {% elif is_state('update.home_assistant_operating_system_update',
              'on') %}
                mdi:arrow-up
              {% elif states('sensor.hacs') >= '1' %}
                mdi:arrow-up
              {% else %}  
                none
              {% endif %}
            badge_color: >+
              {% if is_state(entity, 'on') %}
                green
              {% elif is_state('update.home_assistant_operating_system_update',
              'on') %}
                green
              {% elif states('sensor.hacs') >= '1' %}
                green
              {% else %}  
                none
              {% endif %}

            entity: update.home_assistant_core_update
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Etat des piles
                      content:
                        type: custom:auto-entities
                        card:
                          type: custom:bar-card
                          title_position: inside
                          height: 38
                          positions:
                            icon: none
                            indicator: inside
                            name: inside
                            value: inside
                          show_icon: true
                          align: split
                          columns: '1'
                          max: 100
                          unit_of_measurement: '%'
                          severity:
                            - color: '#d11e1e'
                              to: '5'
                              from: '0'
                            - color: '#cf2d11'
                              from: '6'
                              to: '10'
                            - color: '#cc3900'
                              from: '11'
                              to: '15'
                            - color: '#c84400'
                              from: '16'
                              to: '20'
                            - color: '#c44d00'
                              from: '21'
                              to: '25'
                            - color: '#bf5600'
                              from: '26'
                              to: '30'
                            - color: '#b95f00'
                              from: '31'
                              to: '35'
                            - color: '#b36600'
                              from: '36'
                              to: '40'
                            - color: '#ac6e00'
                              from: '41'
                              to: '45'
                            - color: '#a57500'
                              from: '46'
                              to: '50'
                            - color: '#9d7b00'
                              from: '51'
                              to: '55'
                            - color: '#948100'
                              from: '56'
                              to: '60'
                            - color: '#8b8700'
                              from: '61'
                              to: '65'
                            - color: '#818d00'
                              from: '66'
                              to: '70'
                            - color: '#769200'
                              from: '71'
                              to: '75'
                            - color: '#6a9700'
                              from: '76'
                              to: '80'
                            - color: '#5d9c00'
                              from: '81'
                              to: '85'
                            - color: '#4da100'
                              from: '86'
                              to: '90'
                            - color: '#39a500'
                              from: '91'
                              to: '95'
                            - color: '#15a911'
                              from: '96'
                              to: '100'
                        filter:
                          exclude:
                            - entity_id: ^sensor.brosse*$
                            - entity_id: ^sensor.huawei*$
                            - entity_id: ^sensor.ipad*$
                            - entity_id: ^sensor.moto*$
                            - entity_id: ^sensor.pc*$
                            - entity_id: ^sensor.smart*$
                            - entity_id: ^sensor.tablette*$
                            - entity_id: ^sensor.roomba*$
                          include:
                            - entity_id: ^sensor.*_battery_level$
                            - entity_id: ^sensor.*_battery$
                            - entity_id: ^sensor.*_batt$
                            - entity_id: ^sensor.*_battery_charge$
                        sort:
                          method: state
                          numeric: true
                        show_empty: false
                icon: mdi:battery
                hold_action:
                  action: none
                icon_color: grey
                double_tap_action:
                  action: none
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:mushroom-template-card
        primary: Securité
        secondary: |
          {% set all = expand(entity)| list -%}
          {% set ND1 = all | selectattr('state','eq','off')|list|count%}
          {% set D1 = all | selectattr('state','eq','on')|list|count%}
          {% set all2 = expand('binary_sensor.ouverture')| list -%}
          {% set ND2 = all2 | selectattr('state','eq','off')|list|count%}
          {% set D2 = all2 | selectattr('state','eq','on')|list|count%}
          Présence: {{D1}} / {{D1+ND1}}
          Ouvertures : {{D2}} / {{D2+ND2}}
        icon: |
          {% if is_state(entity, 'on') %} 
            mdi:motion-sensor
          {% elif is_state('binary_sensor.ouverture', 'on') %} 
            mdi:door-open
          {% else %}
            mdi:thumb-up
          {% endif %}
        icon_color: |
          {% if is_state(entity,'on') %}
            red
          {% elif is_state('binary_sensor.ouverture', 'on') %} 
            red
          {% else %}
            green
          {% endif %}
        badge_icon: |-
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','on')|list|count%}
          {% set all2 = expand('binary_sensor.ouverture')| list -%} 
          {% set open2 = all2 | selectattr('state','eq','on')|list|count%}
          {% if open1+open2 <= 9 %}
            mdi:numeric-{{open1+open2}}
          {% elif open1+open2 >= 10 %}
            mdi:numeric-9-plus
          {% else %}
            none
          {% endif %}
        badge_color: |
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','on')|list|count%}
          {% set all2 = expand('binary_sensor.ouverture')| list -%} 
          {% set open2 = all2 | selectattr('state','eq','on')|list|count%}
          {% if open1+open2 == 0 %}
            green
          {% else %}
            red
          {% endif %}
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/securite
        layout: horizontal
        multiline_secondary: true
        entity: binary_sensor.presence
        fill_container: false
      - type: custom:mushroom-template-card
        primary: >-
          Tarif

          {% if
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJB') %} 
            HP Bleu
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJB') %} 
            HC Bleu
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJW') %} 
            HP Blanc
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJW') %} 
            HC Blanc
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJR') %} 
            HP Rouge
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJR') %} 
            HC Rouge
          {% else %}
            Inconnu
          {% endif %}
        secondary: |-
          P: {{ states('sensor.0x00158d0005007002_papp')}} VA
          Demain : {{ states('input_text.couleur_demain')}}
        multiline_secondary: true
        icon: >-
          {% if
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJB') %} 
           mdi:flash
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJB') %} 
            mdi:flash 
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJW') %} 
            mdi:flash-outline 
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJW') %} 
            mdi:flash-outline
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJR') %} 
            mdi:flash-alert
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJR') %} 
            mdi:flash-alert
          {% else %}
            mdi:lightning-bolt
          {% endif %}
        icon_color: >-
          {% if
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJB') %} 
            light-blue
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJB') %} 
            light-blue
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJW') %} 
            grey
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJW') %} 
            grey
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJR') %} 
            red
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJR') %} 
            red
          {% else %}
            orange
          {% endif %}
        badge_icon: mdi:currency-eur
        badge_color: >-
          {% if
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJB') %} 
            green
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJB') %} 
            green
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJW') %} 
            orange
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJW') %} 
            green
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJR') %} 
            red
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJR') %} 
            green
          {% else %}
            orange
          {% endif %}
        entity: sensor.0x00158d0005007002_active_register_tier_delivered
        layout: horizontal
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/electricite
    view_layout:
      position: main

Dans les deux cas, tout le dashboard est regroupé en une grosse carte pour maitriser l’affichage (je ne me fait pas au placement « aléatoire » des tuiles…)

Version tablette:

code
type: vertical-stack
cards:
  - type: custom:mushroom-chips-card
    chips:
      - type: weather
        entity: weather.tournefeuille
        show_conditions: true
        show_temperature: true
        double_tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/meteo
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/meteo
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/meteo
      - type: entity
        entity: person.bernard
        use_entity_picture: true
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
      - type: entity
        entity: person.jeanne
        use_entity_picture: true
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
      - type: entity
        entity: person.thibault
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
        use_entity_picture: true
      - type: entity
        entity: person.louise
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
        use_entity_picture: true
      - type: entity
        entity: person.justine
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/carte
        use_entity_picture: true
    alignment: center
  - square: false
    columns: 4
    type: grid
    cards:
      - type: custom:mushroom-template-card
        primary: Lumières
        secondary: |
          {% set all = expand(entity)| list -%}
          {% set ND1 = all | selectattr('state','eq','on')|list|count%}
          {% set D1 = all | selectattr('state','eq','off')|list|count%}
          Allumées : {{ND1}}
          Eteintes : {{D1}}
        icon: |
          {% if is_state(entity, 'on') %} 
            mdi:lightbulb-group
          {% else %}
            mdi:lightbulb-group-off
          {% endif %}
        icon_color: |
          {% if is_state(entity,'on') %}
            orange
          {% else %}
            grey
          {% endif %}
        badge_icon: |-
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','on')|list|count%}
          {% if open1 <= 9 %}
            mdi:numeric-{{open1}}
          {% elif open1 >= 10 %}
            mdi:numeric-9-plus
          {% else %}
            none
          {% endif %}
        badge_color: |
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','on')|list|count%}
          {% if open1 == 0 %}
            grey
          {% else %}
            orange
          {% endif %}
        entity: light.toutes_les_lumieres
        layout: horizontal
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/lumieres
        hold_action:
          action: call-service
          service: homeassistant.turn_off
          data: {}
          target:
            entity_id:
              - group.lumieres_toutes
              - switch.prise_tradfri_1
        double_tap_action:
          action: more-info
        multiline_secondary: true
        fill_container: false
      - type: custom:mushroom-template-card
        primary: Volets
        secondary: |
          {% set all = expand(entity)| list -%}
          {% set ND1 = all | selectattr('state','eq','open')|list|count%}
          {% set D1 = all | selectattr('state','eq','closed')|list|count%}
          Ouverts : {{ND1}} 
          Fermés : {{D1}}
        icon: |
          {% if is_state(entity, 'open') %} 
            mdi:window-shutter-open
          {% else %}
            mdi:window-shutter
          {% endif %}
        icon_color: |
          {% if is_state(entity,'open') %}
            light-blue
          {% else %}
            green
          {% endif %}
        badge_icon: |-
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','open')|list|count%}
          {% if open1 <= 9 %}
            mdi:numeric-{{open1}}
          {% elif open1 >= 10 %}
            mdi:numeric-9-plus
          {% else %}
            none
          {% endif %}
        badge_color: |
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','open')|list|count%}
          {% if open1 == 0 %}
            green
          {% else %}
            orange
          {% endif %}
        entity: cover.tous_les_volets
        layout: horizontal
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/volets
        double_tap_action:
          action: more-info
        multiline_secondary: true
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/volets
      - type: custom:mushroom-template-card
        primary: Securité
        secondary: |
          {% set all = expand(entity)| list -%}
          {% set ND1 = all | selectattr('state','eq','off')|list|count%}
          {% set D1 = all | selectattr('state','eq','on')|list|count%}
          {% set all2 = expand('binary_sensor.ouverture')| list -%}
          {% set ND2 = all2 | selectattr('state','eq','off')|list|count%}
          {% set D2 = all2 | selectattr('state','eq','on')|list|count%}
          Présence: {{D1}} / {{D1+ND1}}
          Ouvertures : {{D2}} / {{D2+ND2}}
        icon: |
          {% if is_state(entity, 'on') %} 
            mdi:motion-sensor
          {% elif is_state('binary_sensor.ouverture', 'on') %} 
            mdi:door-open
          {% else %}
            mdi:thumb-up
          {% endif %}
        icon_color: |
          {% if is_state(entity,'on') %}
            red
          {% elif is_state('binary_sensor.ouverture', 'on') %} 
            red
          {% else %}
            green
          {% endif %}
        badge_icon: |-
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','on')|list|count%}
          {% set all2 = expand('binary_sensor.ouverture')| list -%} 
          {% set open2 = all2 | selectattr('state','eq','on')|list|count%}
          {% if open1+open2 <= 9 %}
            mdi:numeric-{{open1+open2}}
          {% elif open1+open2 >= 10 %}
            mdi:numeric-9-plus
          {% else %}
            none
          {% endif %}
        badge_color: |
          {% set all = expand(entity)| list -%} 
          {% set open1 = all | selectattr('state','eq','on')|list|count%}
          {% set all2 = expand('binary_sensor.ouverture')| list -%} 
          {% set open2 = all2 | selectattr('state','eq','on')|list|count%}
          {% if open1+open2 == 0 %}
            green
          {% else %}
            red
          {% endif %}
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/securite
        layout: horizontal
        multiline_secondary: true
        entity: binary_sensor.presence
        fill_container: false
      - type: custom:mushroom-template-card
        primary: >-
          Tarif

          {% if
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJB') %} 
            HP Bleu
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJB') %} 
            HC Bleu
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJW') %} 
            HP Blanc
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJW') %} 
            HC Blanc
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJR') %} 
            HP Rouge
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJR') %} 
            HC Rouge
          {% else %}
            Inconnu
          {% endif %}
        secondary: |-
          P: {{ states('sensor.0x00158d0005007002_papp')}} VA
          Demain : {{ states('input_text.couleur_demain')}}
        multiline_secondary: true
        icon: >-
          {% if
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJB') %} 
           mdi:flash
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJB') %} 
            mdi:flash 
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJW') %} 
            mdi:flash-outline 
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJW') %} 
            mdi:flash-outline
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJR') %} 
            mdi:flash-alert
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJR') %} 
            mdi:flash-alert
          {% else %}
            mdi:lightning-bolt
          {% endif %}
        icon_color: >-
          {% if
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJB') %} 
            light-blue
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJB') %} 
            light-blue
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJW') %} 
            grey
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJW') %} 
            grey
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJR') %} 
            red
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJR') %} 
            red
          {% else %}
            orange
          {% endif %}
        badge_icon: mdi:currency-eur
        badge_color: >-
          {% if
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJB') %} 
            green
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJB') %} 
            green
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJW') %} 
            orange
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJW') %} 
            green
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HPJR') %} 
            red
          {% elif
          is_state('sensor.0x00158d0005007002_active_register_tier_delivered',
          'HCJR') %} 
            green
          {% else %}
            orange
          {% endif %}
        entity: sensor.0x00158d0005007002_active_register_tier_delivered
        layout: horizontal
        tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/electricite
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: group.lumieres_salon
            icon: mdi:sofa
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Salon
            secondary: '{{ states(''sensor.echo_jeanne_temperature'') }}°C'
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/salon
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/salon
            hold_action:
              action: toggle
            badge_icon: |
              {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: plant.alocatia
                icon: mdi:flower
                icon_color: |-
                  {% if is_state(entity, 'problem') %} 
                   orange
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Plante Marsupilami
                      content:
                        type: custom:mod-card
                        card:
                          type: custom:flower-card
                          entity: plant.alocatia
                          show_bars:
                            - moisture
                            - temperature
                            - illuminance
                            - conductivity
                          battery_sensor: sensor.alocasia_zebrina_battery
              - type: template
                entity: media_player.echo_jeanne
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo salon
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_jeanne
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_jeanne
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: RTL2
                                  type: custom
                                  id: joue la station RTL deux
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Jeanne sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: RTL2
                                  type: custom
                                  id: >-
                                    joue la station RTL deux sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Pop- Rock
                                  type: custom
                                  id: >-
                                    joue du pop rock sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Rock
                                  type: custom
                                  id: joue du rock sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Musique douce
                                  type: custom
                                  id: >-
                                    joue de la musique douce sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Piano
                                  type: custom
                                  id: >-
                                    joue de la musique au piano sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Queen
                                  type: custom
                                  id: joue du Queen sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Vianney
                                  type: custom
                                  id: >-
                                    joue du Vianney sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Louane
                                  type: custom
                                  id: joue du Louane sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.salon
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets du salon
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_du_salon_apero
                            name: Volet Apero
                            show_position_control: true
                            show_tilt_position_control: false
                            show_buttons_control: true
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_du_salon_tv
                            name: Volet TV
                            show_position_control: true
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.0x84ba20fffe4b2581
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières salon
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.0x84ba20fffe4b2581
                            name: Petite Lampe
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: true
                            tap_action:
                              action: toggle
                          - type: custom:mushroom-light-card
                            entity: light.prise_lampadaire
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                            tap_action:
                              action: toggle
                          - type: custom:mushroom-light-card
                            entity: light.prise_elephants
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                            tap_action:
                              action: toggle
                          - type: custom:mushroom-light-card
                            entity: light.prise_cerisier
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                            tap_action:
                              action: toggle
                          - type: custom:mushroom-light-card
                            entity: light.prise_tradfri
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                            tap_action:
                              action: toggle
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            icon: mdi:countertop
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Cuisine
            secondary: '{{ states(''sensor.echo_dot_cuisine_temperature'') }}°C'
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/cuisine
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/cuisine
            hold_action:
              action: toggle
            badge_icon: |
              {% if is_state('binary_sensor.echo_cuisine_mouvement', 'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_cuisine_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
            entity: light.led_cuisine
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: media_player.echo_dot_jeanne
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo dot cuisine
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_dot_jeanne
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_dot_jeanne
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Playlist Top Doudou
                                  type: AMAZON_MUSIC
                                  id: Playlist Top Doudou
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Jeanne sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Playlist Top Doudou
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Top Doudou sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Pop- Rock
                                  type: custom
                                  id: >-
                                    joue du pop rock sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Rock
                                  type: custom
                                  id: joue du rock sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Musique douce
                                  type: custom
                                  id: >-
                                    joue de la musique douce sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Piano
                                  type: custom
                                  id: >-
                                    joue de la musique au piano sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Queen
                                  type: custom
                                  id: joue du Queen sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Vianney
                                  type: custom
                                  id: >-
                                    joue du Vianney sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Louane
                                  type: custom
                                  id: joue du Louane sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.volet_cuisine
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volet Cuisine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_cuisine
                            name: Volet cuisine
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.led_cuisine
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières cuisine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.led_cuisine
                            name: LED cuisine
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: true
                            collapsible_controls: true
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% else %}
                   grey
                  {% endif %}
                double_tap_action:
                  action: none
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.ampoule_bureau
            icon: mdi:desk
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Bureau
            secondary: ...
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/imprimante
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/imprimante
            hold_action:
              action: toggle
            badge_icon: >
              {% if
              is_state('binary_sensor.detecteur_presence_bureau_occupancy',
              'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: >
              {% if
              is_state('binary_sensor.detecteur_presence_bureau_occupancy',
              'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                icon: mdi:water
                icon_color: |-
                  {% if is_state(entity, 'printing') %} 
                   green
                  {% elif is_state(entity, 'stopped') %} 
                   orange
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Imprimante
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-entity-card
                            entity: sensor.imprimante_bureau_canonmx520
                            name: Etat
                            layout: vertical
                          - type: custom:mushroom-entity-card
                            entity: sensor.imprimante_bureau_canonmx520_black
                            name: Cartouche Noir
                            layout: vertical
                            icon_color: black
                          - type: custom:mushroom-entity-card
                            entity: sensor.imprimante_bureau_canonmx520_color
                            name: Cartouche couleur
                            layout: vertical
                entity: sensor.imprimante_bureau_canonmx520
              - type: template
                entity: cover.volet_du_bureau
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volet Bureau
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_du_bureau
                            name: Volet bureau
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                hold_action:
                  action: toggle
              - type: template
                entity: light.ampoule_bureau
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières bureau
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.ampoule_bureau
                            name: Plafonnier Bureau
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: true
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: group.lumieres_escalier
            icon: mdi:stairs
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Escalier
            secondary: '{{ states(''sensor.pac_room_temperature'') }}°C'
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/escalier
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/escalier
            hold_action:
              action: toggle
            badge_icon: >
              {% if is_state('binary_sensor.0x00124b00246e9df7_occupancy', 'on')
              %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: >
              {% if is_state('binary_sensor.0x00124b00246e9df7_occupancy', 'on')
              %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: climate.pac
                icon: >-
                  {% if is_state(entity, 'heat') %} 

                  mdi:fire

                  {% elif is_state(entity, 'cool') %} 

                  mdi:snowflake

                  {% elif is_state('input_boolean.saison_chauffage', 'on') %} 

                  mdi:fire

                  {% elif is_state('input_boolean.saison_climatistion', 'on')
                  %} 

                  mdi:snowflake

                  {% else %}

                  mdi:fan

                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: PAC etage
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-chips-card
                            chips:
                              - type: template
                                entity: input_boolean.chauffage_mode_auto
                                icon: >-
                                  {% if
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'on') %} 
                                   mdi:cog-refresh
                                  {% elif
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'off') %} 
                                    mdi:cog-off
                                  {% else %}
                                    mdi:comment-question
                                  {% endif %}
                                icon_color: >-
                                  {% if
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'on') %} 

                                  green

                                  {% elif
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'off') %} 

                                  red

                                  {% else %}

                                  orange

                                  {% endif %}
                                content: >-
                                  {% if
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'on') %} 

                                  Mode général: Auto

                                  {% elif
                                  is_state('input_boolean.chauffage_mode_auto',
                                  'off') %} 

                                  Mode général: Manuel

                                  {% else %}

                                  Inconnu

                                  {% endif %}
                                tap_action:
                                  action: toggle
                                hold_action:
                                  action: more-info
                              - type: template
                                entity: input_boolean.pac_override_temporaire
                                icon: >-
                                  {% if
                                  is_state('input_boolean.pac_override_temporaire',
                                  'on') %} 
                                   mdi:cog-pause
                                  {% elif
                                  is_state('input_boolean.pac_override_temporaire',
                                  'off') %} 
                                    mdi:cog-refresh
                                  {% else %}
                                    mdi:comment-question
                                  {% endif %}
                                icon_color: >-
                                  {% if
                                  is_state('input_boolean.pac_override_temporaire',
                                  'on') %} 
                                   orange
                                  {% elif
                                  is_state('input_boolean.pac_override_temporaire',
                                  'off') %} 
                                    green
                                  {% else %}
                                    orange
                                  {% endif %}
                                content: >-
                                  {% if
                                  is_state('input_boolean.pac_override_temporaire',
                                  'on') %} 
                                   Mode temporaire: Manuel
                                  {% elif
                                  is_state('input_boolean.pac_override_temporaire',
                                  'off') %} 
                                   Mode temporaire: Auto
                                  {% else %}
                                    Inconnu
                                  {% endif %}
                              - type: conditional
                                conditions:
                                  - entity: input_boolean.saison_chauffage
                                    state: 'on'
                                chip:
                                  type: template
                                  double_tap_action:
                                    action: more-info
                                  entity: schedule.planning_chauffage
                                  icon: >-
                                    {% if
                                    is_state('schedule.planning_chauffage',
                                    'on') %} 
                                     mdi:fire
                                    {% elif
                                    is_state('schedule.planning_chauffage',
                                    'off') %} 
                                      mdi:fire-off
                                    {% else %}
                                      mdi:comment-question
                                    {% endif %}
                                  icon_color: >-
                                    {% if
                                    is_state('schedule.planning_chauffage',
                                    'on') %} 
                                     yellow
                                    {% elif
                                    is_state('schedule.planning_chauffage',
                                    'off') %} 
                                      grey
                                    {% else %}
                                      orange
                                    {% endif %}
                                  content: >-
                                    {% if
                                    is_state('schedule.planning_chauffage',
                                    'on') %} 
                                     Cible mode auto: confort
                                    {% elif
                                    is_state('schedule.planning_chauffage',
                                    'off') %} 
                                      Cible mode auto: off
                                    {% else %}
                                      Inconnu
                                    {% endif %}
                                  tap_action:
                                    action: more-info
                                  hold_action:
                                    action: more-info
                              - type: conditional
                                conditions:
                                  - entity: input_boolean.saison_climatistion
                                    state: 'on'
                                chip:
                                  type: template
                                  entity: schedule.planning_climatisation
                                  icon: >-
                                    {% if
                                    is_state('schedule.planning_climatisation',
                                    'on') %} 
                                     mdi:snowflake
                                    {% elif
                                    is_state('schedule.planning_climatisation',
                                    'off') %} 
                                      mdi:snowflake-off
                                    {% else %}
                                      mdi:comment-question
                                    {% endif %}
                                  icon_color: >-
                                    {% if
                                    is_state('schedule.planning_climatisation',
                                    'on') %} 
                                     light-blue
                                    {% elif
                                    is_state('schedule.planning_climatisation',
                                    'off') %} 
                                      grey
                                    {% else %}
                                      orange
                                    {% endif %}
                                  content: >-
                                    {% if
                                    is_state('schedule.planning_climatisation',
                                    'on') %} 
                                     Cible mode auto: confort
                                    {% elif
                                    is_state('schedule.planning_climatisation',
                                    'off') %} 
                                      Cible mode auto: off
                                    {% else %}
                                      Inconnu
                                    {% endif %}
                              - type: entity
                                entity: input_boolean.tarif_rouge
                                icon_color: red
                                content_info: name
                              - type: action
                                icon_color: red
                                tap_action:
                                  action: none
                                hold_action:
                                  action: call-service
                                  service: script.allumer_chauffage
                                  target: {}
                                double_tap_action:
                                  action: none
                                icon: mdi:fire
                              - type: action
                                tap_action:
                                  action: none
                                hold_action:
                                  action: call-service
                                  service: script.allumer_climatisation
                                  target: {}
                                double_tap_action:
                                  action: none
                                icon: mdi:snowflake
                                icon_color: light-blue
                              - type: action
                                tap_action:
                                  action: none
                                hold_action:
                                  action: call-service
                                  service: script.eteindre_pac
                                  target: {}
                                double_tap_action:
                                  action: none
                                icon: mdi:stop-circle-outline
                                icon_color: red
                            alignment: start
                          - type: thermostat
                            entity: climate.pac
                icon_color: |-
                  {% if is_state(entity, 'heat') %} 
                  orange
                  {% elif is_state(entity, 'cool') %} 
                  blue
                  {% elif is_state(entity, 'off') %} 
                  grey
                  {% else %}
                    grey
                  {% endif %}
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/gestion-pac-gainable
                double_tap_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/gestion-pac-gainable
              - type: template
                entity: vacuum.roomba
                icon: |-
                  {% if is_state(entity, 'cleaning') %} 
                   mdi:robot-vacuum
                  {% elif is_state(entity, 'docked') %} 
                   mdi:robot-vacuum
                  {% else %}
                   mdi:robot-vacuum-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'cleaning') %} 
                   blue
                  {% elif is_state(entity, 'docked') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Roomba
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-vacuum-card
                            entity: vacuum.roomba
                            commands:
                              - start_pause
                              - stop
                              - locate
                              - return_home
              - type: template
                entity: cover.volet_de_la_mezzanine
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets Escalier
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_de_la_mezzanine
                            name: Volet Mezzanine
                            show_position_control: true
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: group.lumieres_escalier
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières Escalier
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.0x385b44fffe20eb24
                            name: Sous escalier
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: false
                          - type: custom:mushroom-light-card
                            entity: light.0x84b4dbfffec93621
                            name: Mezzanine
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: false
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            icon: mdi:washing-machine
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% elif is_state('input_boolean.sechage_en_cours', 'on') %} 
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Cellier
            secondary: >-
              {% if is_state(entity, 'on') %} lavage {% endif %}

              {% if is_state('input_boolean.sechage_en_cours', 'on') %} sechage
              {% endif %}

              {% if is_state(entity, 'on') %} en cours {% elif
              is_state('input_boolean.sechage_en_cours', 'on') %} en cours {%
              endif %}
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            hold_action:
              action: none
            badge_icon: |+

            badge_color: |+

            entity: input_boolean.machine_en_cour
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: binary_sensor.0x00124b0028941c36_contact
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:door-open
                  {% elif is_state(entity, 'off') %} 
                   mdi:door-closed
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   red
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                tap_action:
                  action: none
              - type: template
                entity: input_boolean.machine_en_cour
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:washing-machine
                  {% elif is_state(entity, 'off') %} 
                   mdi:washing-machine-off
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   green
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                double_tap_action:
                  action: none
                tap_action:
                  action: none
              - type: template
                entity: input_boolean.sechage_en_cours
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:tumble-dryer
                  {% elif is_state(entity, 'off') %} 
                   mdi:tumble-dryer-off
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   green
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                tap_action:
                  action: none
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.led_thibault
            icon: mdi:bed
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Thibault
            secondary: >-
              Ce jour:{% if
              states('sensor.pronote_b_thibault_timetable_today') !=
              'unavailable' %} {{
              state_attr('sensor.pronote_b_thibault_timetable_today','day_start_at').strftime('%H:%M')}}{%
              if
              state_attr('sensor.pronote_b_thibault_timetable_today','canceled_lessons_counter')
              >= 1 %} /!\{% endif %} {% else %} pas cours {% endif %} /
              Demain:{% if
              states('sensor.pronote_b_thibault_timetable_tomorrow') !=
              'unavailable' %} {{
              state_attr('sensor.pronote_bthibault_timetable_tomorrow','day_start_at').strftime('%H:%M')}}{%
              if
              state_attr('sensor.pronote_b_thibault_timetable_tomorrow','canceled_lessons_counter')
              >= 1 %} /!\{% endif %} {% else %} pas cours {% endif %}
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /smartphone-enfants/chambres thibault
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/pronote
            hold_action:
              action: toggle
            badge_icon: |
              {% if is_state('binary_sensor.echo_thibault_mouvement', 'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_thibault_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
            multiline_secondary: false
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: counter.brossage_thibault
                icon: |-
                  {% if is_state(entity, '0') %}
                    mdi:numeric-0
                  {% elif is_state(entity, '1') %}
                    mdi:numeric-1
                  {% elif is_state(entity, '2') %}
                    mdi:numeric-2
                  {% elif is_state(entity, '3') %}
                    mdi:numeric-3
                  {% else %}
                    mdi:chat-question
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, '0') %}
                    red
                  {% elif is_state(entity, '1') %}
                    orange
                  {% elif is_state(entity, '2') %}
                    green
                  {% elif is_state(entity, '3') %}
                    green
                  {% else %}
                    grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Brosse a dent de Thibault
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-template-card
                            primary: Brosse a dent de Thibault
                            secondary: >-
                              {% if is_state(entity, 'running') %}Brosse depuis
                              {{states('sensor.brosse_a_dent_thibault_time',)}}
                              s{% else %}Etat : {{states(entity)}} %{% endif %}

                              Batterie :
                              {{states('sensor.brosse_a_dent_thibault_battery',)}}
                              %

                              {{states('counter.brossage_thibault')}} brossage{%
                              if states('counter.brossage_thibault') >= '2'%}s{%
                              endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_thibault_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_icon: >-
                              {% if is_state('counter.brossage_thibault', '0')
                              %}
                                mdi:numeric-0
                              {% elif is_state('counter.brossage_thibault', '1')
                              %}
                                mdi:numeric-1
                              {% elif is_state('counter.brossage_thibault', '2')
                              %}
                                mdi:numeric-2
                              {% elif is_state('counter.brossage_thibault', '3')
                              %}
                                mdi:numeric-3
                              {% else %}
                                mdi:chat-question
                              {% endif %}
                            badge_color: >-
                              {% if is_state('counter.brossage_thibault', '0')
                              %}
                                red
                              {% elif is_state('counter.brossage_thibault', '1')
                              %}
                                orange
                              {% elif is_state('counter.brossage_thibault', '2')
                              %}
                                green
                              {% elif is_state('counter.brossage_thibault', '3')
                              %}
                                green
                              {% else %}
                                grey
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
              - type: template
                entity: media_player.echo_dot_thibault
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo Thibault
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_dot_thibault
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_dot_thibault
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.volet_de_la_chambre_de_thibault
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets de Thibault
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_de_la_chambre_de_thibault
                            name: Volet Thibault
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.led_thibault
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières Thibault
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.led_thibault
                            name: LED Thibault
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: true
                            collapsible_controls: false
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.led_louise
            icon: mdi:bed
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Louise
            secondary: >-
              Ce jour:{% if
              states('sensor.pronote_b_louise_timetable_today') !=
              'unavailable' %} {{
              state_attr('sensor.pronote_b_louise_timetable_today','day_start_at').strftime('%H:%M')}}{%
              if
              state_attr('sensor.pronote_b_louise_timetable_today','canceled_lessons_counter')
              >= 1 %} /!\{% endif %} {% else %} pas cours{% endif %} / Demain:{%
              if states('sensor.pronote_b_louise_timetable_tomorrow') !=
              'unavailable' %} {{
              state_attr('sensor.pronote_b_louise_timetable_tomorrow','day_start_at').strftime('%H:%M')}}{%
              if
              state_attr('sensor.pronote_b_louise_timetable_tomorrow','canceled_lessons_counter')
              >= 1 %} /!\{% endif %} {% else %} pas cours {% endif %}
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /smartphone-enfants/chambres Louise
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/pronote
            hold_action:
              action: toggle
            badge_icon: |
              {% if is_state('binary_sensor.echo_louise_mouvement', 'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_louise_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: counter.brossage_louise
                icon: |-
                  {% if is_state(entity, '0') %}
                    mdi:numeric-0
                  {% elif is_state(entity, '1') %}
                    mdi:numeric-1
                  {% elif is_state(entity, '2') %}
                    mdi:numeric-2
                  {% elif is_state(entity, '3') %}
                    mdi:numeric-3
                  {% else %}
                    mdi:chat-question
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, '0') %}
                    red
                  {% elif is_state(entity, '1') %}
                    orange
                  {% elif is_state(entity, '2') %}
                    green
                  {% elif is_state(entity, '3') %}
                    green
                  {% else %}
                    grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Brosse a dent de Louise
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-template-card
                            primary: Brosse de Louise
                            secondary: >-
                              {% if is_state(entity, 'running') %}Brosse depuis
                              {{states('sensor.brosse_a_dent_louise_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              Batterie :
                              {{states('sensor.brosse_a_dent_louise_battery',)}}
                              %

                              {{states('counter.brossage_louise')}} brossage{%
                              if states('counter.brossage_louise') >= '2'%}s{%
                              endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_louise_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_color: >-
                              {% if is_state('counter.brossage_louise', '0') %}
                                red
                              {% elif is_state('counter.brossage_louise', '1')
                              %}
                                orange
                              {% elif is_state('counter.brossage_louise', '2')
                              %}
                                green
                              {% elif is_state('counter.brossage_louise', '3')
                              %}
                                green
                              {% else %}
                                grey
                              {% endif %}
                            badge_icon: >-
                              {% if is_state('counter.brossage_louise', '0') %}
                                mdi:numeric-0
                              {% elif is_state('counter.brossage_louise', '1')
                              %}
                                mdi:numeric-1
                              {% elif is_state('counter.brossage_louise', '2')
                              %}
                                mdi:numeric-2
                              {% elif is_state('counter.brossage_louise', '3')
                              %}
                                mdi:numeric-3
                              {% else %}
                                mdi:chat-question
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
              - type: template
                entity: media_player.echo_dot_louise
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo Louise
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_dot_louise
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_dot_louise
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.volet_de_la_chambre_de_louise
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets de Louise
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_de_la_chambre_de_louise
                            name: Volet Louise
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.led_louise
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières Louise
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.led_louise
                            name: LED Louise
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: true
                            collapsible_controls: false
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.led_justine
            icon: mdi:bed
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Justine
            secondary: ..
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /smartphone-enfants/chambres Justine
            double_tap_action:
              action: navigate
              navigation_path: /smartphone-enfants/chambres Justine
            hold_action:
              action: toggle
            badge_icon: >
              {% if is_state('binary_sensor.echo_justine_mouvement_mouvement',
              'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: |
              {% if is_state('binary_sensor.echo_justine_mouvement', 'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: counter.brossage_justine
                icon: |-
                  {% if is_state(entity, '0') %}
                    mdi:numeric-0
                  {% elif is_state(entity, '1') %}
                    mdi:numeric-1
                  {% elif is_state(entity, '2') %}
                    mdi:numeric-2
                  {% elif is_state(entity, '3') %}
                    mdi:numeric-3
                  {% else %}
                    mdi:chat-question
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, '0') %}
                    red
                  {% elif is_state(entity, '1') %}
                    orange
                  {% elif is_state(entity, '2') %}
                    green
                  {% elif is_state(entity, '3') %}
                    green
                  {% else %}
                    grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Brosse a dent de Justine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-template-card
                            primary: Brosse a dent de Justine
                            secondary: >-
                              {% if is_state(entity, 'running') %}Brosse depuis
                              {{states('sensor.brosse_a_dent_justine_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              Batterie :
                              {{states('sensor.brosse_a_dent_justine_battery',)}}
                              %

                              {{states('counter.brossage_justine')}} brossage{%
                              if states('counter.brossage_justine') >= '2'%}s{%
                              endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_justine_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_color: >-
                              {% if is_state('counter.brossage_justine', '0') %}
                                red
                              {% elif is_state('counter.brossage_justine', '1')
                              %}
                                orange
                              {% elif is_state('counter.brossage_justine', '2')
                              %}
                                green
                              {% elif is_state('counter.brossage_justine', '3')
                              %}
                                green
                              {% else %}
                                grey
                              {% endif %}
                            badge_icon: >-
                              {% if is_state('counter.brossage_justine', '0') %}
                                mdi:numeric-0
                              {% elif is_state('counter.brossage_justine', '1')
                              %}
                                mdi:numeric-1
                              {% elif is_state('counter.brossage_justine', '2')
                              %}
                                mdi:numeric-2
                              {% elif is_state('counter.brossage_justine', '3')
                              %}
                                mdi:numeric-3
                              {% else %}
                                mdi:chat-question
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
              - type: template
                entity: media_player.echo_dot_justine
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo Justine
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.echo_dot_justine
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.echo_dot_justine
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Aldebert
                                  type: custom
                                  id: joue du Aldebert
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
              - type: template
                entity: cover.volet_de_la_chambre_de_justine
                hold_action:
                  action: toggle
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Volets de Justine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-cover-card
                            entity: cover.volet_de_la_chambre_de_justine
                            name: Volet Justine
                            show_position_control: false
                            show_tilt_position_control: false
                            show_buttons_control: true
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   grey
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}
              - type: template
                entity: light.led_justine
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières Justine
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.led_justine
                            name: LED Justine
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: true
                            collapsible_controls: false
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: media_player.jeanne_echo_dot
            icon: mdi:bathtub
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Bain
            secondary: ..
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/salles-de-bains
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/salles-de-bains
            hold_action:
              action: toggle
            badge_icon: |+

            badge_color: |+


          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: input_boolean.alerte_brossage
                icon: mdi:toothbrush-electric
                icon_color: |-
                  {% if states(entity) == 'on' %}
                    orange
                  {% else %}
                    grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Brosses à dent
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-template-card
                            primary: Bernard
                            secondary: >-
                              Brosse à dent:

                              - {% if is_state(entity, 'running') %}Brosse
                              depuis
                              {{states('sensor.brosse_a_dent_bernard_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              - Batterie :
                              {{states('sensor.brosse_a_dent_bernard_battery',)}}
                              %

                              - {{states('counter.brossage_bernard')}}
                              brossage{% if states('counter.brossage_bernard')
                              >= '2'%}s{% endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_bernard_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_icon: >-
                              {% if
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-75
                              %}
                                mdi:signal-cellular-3
                              {% elif
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-95
                              %}
                                mdi:signal-cellular-2
                              {% elif
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-125
                              %}
                                mdi:signal-cellular-1
                              {% else %}
                                mdi:signal-cellular-outline
                              {% endif %}
                            badge_color: >-
                              {% if
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-75
                              %}
                                green
                              {% elif
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-95
                              %}
                                light-green
                              {% elif
                              states('sensor.brosse_a_dent_bernard_signal_strength',)|int>=-125
                              %}
                                orange
                              {% else %}
                                red
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
                          - type: custom:mushroom-template-card
                            primary: Thibault
                            secondary: >-
                              Brosse a dent:

                              - {% if is_state(entity, 'running') %}Brosse
                              depuis
                              {{states('sensor.brosse_a_dent_thibault_time',)}}
                              s{% else %}Etat : {{states(entity)}} %{% endif %}

                              - Batterie :
                              {{states('sensor.brosse_a_dent_thibault_battery',)}}
                              %

                              - {{states('counter.brossage_thibault')}}
                              brossage{% if states('counter.brossage_thibault')
                              >= '2'%}s{% endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_thibault_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_icon: >-
                              {% if
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-75
                              %}
                                mdi:signal-cellular-3
                              {% elif
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-95
                              %}
                                mdi:signal-cellular-2
                              {% elif
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-125
                              %}
                                mdi:signal-cellular-1
                              {% else %}
                                mdi:signal-cellular-outline
                              {% endif %}
                            badge_color: >-
                              {% if
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-75
                              %}
                                green
                              {% elif
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-95
                              %}
                                light-green
                              {% elif
                              states('sensor.brosse_a_dent_thibault_signal_strength',)|int>=-125
                              %}
                                orange
                              {% else %}
                                red
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
                          - type: custom:mushroom-template-card
                            primary: Louise
                            secondary: >-
                              Brosse à dent:

                              - {% if is_state(entity, 'running') %}Brosse
                              depuis
                              {{states('sensor.brosse_a_dent_louise_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              - Batterie :
                              {{states('sensor.brosse_a_dent_louise_battery',)}}
                              %

                              - {{states('counter.brossage_louise')}} brossage{%
                              if states('counter.brossage_louise') >= '2'%}s{%
                              endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_louise_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_color: >-
                              {% if
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-75
                              %}
                                green
                              {% elif
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-95
                              %}
                                light-green
                              {% elif
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-125
                              %}
                                orange
                              {% else %}
                                red
                              {% endif %}
                            badge_icon: >-
                              {% if
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-75
                              %}
                                mdi:signal-cellular-3
                              {% elif
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-95
                              %}
                                mdi:signal-cellular-2
                              {% elif
                              states('sensor.brosse_a_dent_louise_signal_strength',)|int>=-125
                              %}
                                mdi:signal-cellular-1
                              {% else %}
                                mdi:signal-cellular-outline
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
                          - type: custom:mushroom-template-card
                            primary: Justine
                            secondary: >-
                              Brosse a dent:

                              - {% if is_state(entity, 'running') %}Brosse
                              depuis
                              {{states('sensor.brosse_a_dent_justine_time',)}}
                              s{% else %}Etat : {{states(entity)}}{% endif %}

                              - Batterie :
                              {{states('sensor.brosse_a_dent_justine_battery',)}}
                              %

                              - {{states('counter.brossage_justine')}}
                              brossage{% if states('counter.brossage_justine')
                              >= '2'%}s{% endif %}
                            icon: |-
                              {% if is_state(entity, 'running') %} 
                              mdi:toothbrush-electric
                              {% else %}
                                mdi:toothbrush-electric
                              {% endif %}
                            entity: sensor.brosse_a_dent_justine_toothbrush_state
                            icon_color: |-
                              {% if is_state(entity, 'running') %} 
                                green
                              {% else %}
                                blue
                              {% endif %}
                            badge_color: >-
                              {% if
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-75
                              %}
                                green
                              {% elif
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-95
                              %}
                                light-green
                              {% elif
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-125
                              %}
                                orange
                              {% else %}
                                red
                              {% endif %}
                            badge_icon: >-
                              {% if
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-75
                              %}
                                mdi:signal-cellular-3
                              {% elif
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-95
                              %}
                                mdi:signal-cellular-2
                              {% elif
                              states('sensor.brosse_a_dent_justine_signal_strength',)|int>=-125
                              %}
                                mdi:signal-cellular-1
                              {% else %}
                                mdi:signal-cellular-outline
                              {% endif %}
                            tap_action:
                              action: more-info
                            multiline_secondary: true
              - type: template
                entity: media_player.jeanne_echo_dot
                icon: mdi:play-pause
                icon_color: |-
                  {% if is_state(entity, 'playing') %} 
                    #03A9F4
                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Echo salle de bain
                      content:
                        type: custom:stack-in-card
                        cards:
                          - type: custom:mini-media-player
                            entity: media_player.jeanne_echo_dot
                            source: full
                            volume_stateless: false
                            group: true
                            artwork: full-cover
                            tts:
                              platform: alexa
                              entity_id: media_player.jeanne_echo_dot
                              type: announce
                            shortcuts:
                              hide_when_off: true
                              columns: 3
                              buttons:
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: Playlist Jeanne
                                - name: Playlist Top Doudou
                                  type: AMAZON_MUSIC
                                  id: Playlist Top Doudou
                                - name: Pop- Rock
                                  type: custom
                                  id: joue du pop rock
                                - name: Rock
                                  type: custom
                                  id: joue du rock
                                - name: Musique douce
                                  type: custom
                                  id: joue de la musique douce
                                - name: Piano
                                  type: custom
                                  id: joue de la musique au piano
                                - name: Queen
                                  type: custom
                                  id: joue du Queen
                                - name: Vianney
                                  type: custom
                                  id: joue du Vianney
                                - name: Louane
                                  type: custom
                                  id: joue du Louane
                                - name: Playlist Jeanne
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Jeanne sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Playlist Top Doudou
                                  type: AMAZON_MUSIC
                                  id: >-
                                    Playlist Top Doudou sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Pop- Rock
                                  type: custom
                                  id: >-
                                    joue du pop rock sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Rock
                                  type: custom
                                  id: joue du rock sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Musique douce
                                  type: custom
                                  id: >-
                                    joue de la musique douce sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Piano
                                  type: custom
                                  id: >-
                                    joue de la musique au piano sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Queen
                                  type: custom
                                  id: joue du Queen sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Vianney
                                  type: custom
                                  id: >-
                                    joue du Vianney sur le groupe
                                    rez_de_chaussee
                                  icon: mdi:multicast
                                - name: Louane
                                  type: custom
                                  id: joue du Louane sur le groupe rez_de_chaussee
                                  icon: mdi:multicast
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/echo
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: light.inter_lumiere_garage
            icon: mdi:tools
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Garage
            secondary: ..
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            hold_action:
              action: toggle
            badge_icon: >
              {% if
              is_state('binary_sensor.detecteur_presence_garage_occupancy',
              'on') %}
                mdi:motion-sensor
              {% else %}  
                mdi:motion-sensor-off
              {% endif %}
            badge_color: >
              {% if
              is_state('binary_sensor.detecteur_presence_garage_occupancy',
              'on') %}
                orange
              {% else %}  
                grey
              {% endif %}
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: binary_sensor.0x00124b0028943f14_contact
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:garage-open-variant
                  {% elif is_state(entity, 'off') %} 
                   mdi:garage-variant
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   red
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                tap_action:
                  action: none
              - type: template
                entity: binary_sensor.0x00124b0028941c36_contact
                icon: |-
                  {% if is_state(entity, 'on') %} 
                   mdi:door-open
                  {% elif is_state(entity, 'off') %} 
                   mdi:door-closed
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   red
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% endif %}
                tap_action:
                  action: none
              - type: template
                entity: light.inter_lumiere_garage
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières garage
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.inter_lumiere_garage
                            name: lumière garage
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: true
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% elif is_state(entity, 'off') %} 
                   grey
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            entity: group.lumieres_jardin
            icon: mdi:tree
            icon_color: |
              {% if is_state(entity, 'on') %}
                #03A9F4
              {% else %}  
                grey
              {% endif %}
            primary: Jardin
            secondary: '{{states(''sensor.tournefeuille_temperature'') }}°C'
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/jardin
            hold_action:
              action: toggle
            badge_icon: |+

            badge_color: |+


          - type: custom:mushroom-chips-card
            chips:
              - type: weather
                entity: weather.tournefeuille
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Météo
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:meteofrance-weather-card
                            entity: weather.tournefeuille
                            number_of_forecasts: '3'
                            details: true
                            current: true
                            one_hour_forecast: true
                            alert_forecast: true
                            rainForecastEntity: sensor.tournefeuille_next_rain
                            rainChanceEntity: sensor.tournefeuille_rain_chance
                            uvEntity: sensor.tournefeuille_uv
                            cloudCoverEntity: sensor.tournefeuille_cloud_cover
                            freezeChanceEntity: sensor.tournefeuille_freeze_chance
                            snowChanceEntity: sensor.tournefeuille_snow_chance
                            alertEntity: sensor.31_weather_alert
                hold_action:
                  action: navigate
                  navigation_path: /lovelace-smartphone/meteo
              - type: template
                entity: sensor.pollens_31_risklevel
                icon: mdi:flower-pollen
                hold_action:
                  action: toggle
                icon_color: >-
                  {% if is_state(entity, '2') %} 
                   orange
                  {% elif is_state(entity, '3') %} 
                   red
                  {% elif
                  is_state('sensor.pollens_31_ambroisies',['00','2','3']) %} 

                  red

                  {% elif is_state('sensor.pollens_31_armoise',['1','2','3'])
                  %} 

                  red

                  {% else %}
                   grey
                  {% endif %}
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Pollens
                      content:
                        type: vertical-stack
                        cards:
                          - type: horizontal-stack
                            cards:
                              - type: custom:mushroom-template-card
                                primary: Haute Garonne
                                secondary: 'Risque: {{ states(entity)}}'
                                icon: |-
                                  {% if is_state(entity, '3') %} 
                                    mdi:flower-pollen
                                  {% else %}
                                    mdi:flower-pollen-outline
                                  {% endif %}
                                entity: sensor.pollens_31_risklevel
                                icon_color: |
                                  {% if is_state(entity, '0') %} 
                                    green
                                  {% elif is_state(entity, '1') %} 
                                    yellow
                                  {% elif is_state(entity, '2') %} 
                                    orange
                                  {% elif is_state(entity, '3') %} 
                                    red
                                  {% else %}
                                    grey
                                  {% endif %}
                              - type: custom:mushroom-template-card
                                primary: Ambroisie
                                secondary: 'Risque: {{ states(entity)}}'
                                icon: |-
                                  {% if is_state(entity, '3') %} 
                                    mdi:grass
                                  {% else %}
                                    mdi:grass
                                  {% endif %}
                                entity: sensor.pollens_31_ambroisies
                                icon_color: |
                                  {% if is_state(entity, '0') %} 
                                    green
                                  {% elif is_state(entity, '1') %} 
                                    yellow
                                  {% elif is_state(entity, '2') %} 
                                    orange
                                  {% elif is_state(entity, '3') %} 
                                    red
                                  {% else %}
                                    grey
                                  {% endif %}
                              - type: custom:mushroom-template-card
                                primary: Armoise
                                secondary: 'Risque: {{ states(entity)}}'
                                icon: |-
                                  {% if is_state(entity, '3') %} 
                                    mdi:grass
                                  {% else %}
                                    mdi:grass
                                  {% endif %}
                                entity: sensor.pollens_31_armoise
                                icon_color: |
                                  {% if is_state(entity, '0') %} 
                                    green
                                  {% elif is_state(entity, '1') %} 
                                    yellow
                                  {% elif is_state(entity, '2') %} 
                                    orange
                                  {% elif is_state(entity, '3') %} 
                                    red
                                  {% else %}
                                    grey
                                  {% endif %}
                          - type: custom:auto-entities
                            filter:
                              include: null
                              template: |
                                {%  set ALTNAME = 'd'-%} 
                                {% for state in states.sensor -%}
                                  {%- if state.entity_id | regex_match('sensor.pollens_31_',ignorecase=False) -%}
                                  {%- set NAME = state_attr(state.entity_id,"pollen_name") -%}
                                    {{
                                      { 'entity': state.entity_id,
                                        'name': NAME,
                                      } }},
                                  {%- endif -%}
                                {%- endfor %}
                              exclude:
                                - state: <1
                                - entity_id: sensor.pollens_31_risklevel
                            sort:
                              numeric: true
                              reverse: true
                              method: state
                            card:
                              type: custom:bar-card
                              title: Pollens en alerte dans le 31
                              min: 0
                              max: 3
                              positions:
                                name: outside
                              width: 70%
                              style: |-
                                bar-card-value {
                                  margin-right: 5px;
                                  font-size: 15px;
                                  font-weight: bold;
                                  text-shadow: 1px 1px #000000;
                                }
                              severity:
                                - color: grey
                                  from: 0
                                  to: 0
                                - color: yellow
                                  from: 1
                                  to: 1
                                - color: orange
                                  from: 2
                                  to: 2
                                - color: red
                                  from: 3
                                  to: 3
              - type: template
                entity: light.inter_lumiere_terrasse
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Lumières jardin
                      content:
                        type: vertical-stack
                        cards:
                          - type: custom:mushroom-light-card
                            entity: light.inter_lumiere_terrasse
                            name: Terrasse
                            use_light_color: true
                            show_brightness_control: true
                            show_color_temp_control: true
                            show_color_control: false
                            collapsible_controls: true
                          - type: custom:mushroom-light-card
                            entity: light.inter_lumiere_piscine
                            name: Piscine
                            use_light_color: false
                            show_brightness_control: false
                            show_color_temp_control: false
                            show_color_control: false
                            collapsible_controls: true
                icon: mdi:lightbulb
                hold_action:
                  action: toggle
                icon_color: |-
                  {% if is_state(entity, 'on') %} 
                   orange
                  {% else %}
                   grey
                  {% endif %}
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
      - type: custom:vertical-stack-in-card
        cards:
          - type: custom:mushroom-template-card
            icon: mdi:home-assistant
            icon_color: >
              {% if is_state(entity, 'on') %}
                light-blue
              {% elif is_state('update.home_assistant_operating_system_update',
              'on') %}
                light-blue
              {% elif states('sensor.hacs') >= '1' %}
                orange
              {% else %}  
                grey
              {% endif %}
            primary: Home assistant
            secondary: >-
              RAM{{ states('sensor.memory_use_percent')|int }}% CPU{{
              states('sensor.processor_use') }}%
            layout: horizontal
            tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/systeme
            double_tap_action:
              action: navigate
              navigation_path: /lovelace-smartphone/systeme
            hold_action:
              action: toggle
            badge_icon: >
              {% if is_state(entity, 'on') %}
                mdi:arrow-up
              {% elif is_state('update.home_assistant_operating_system_update',
              'on') %}
                mdi:arrow-up
              {% elif states('sensor.hacs') >= '1' %}
                mdi:arrow-up
              {% else %}  
                none
              {% endif %}
            badge_color: >+
              {% if is_state(entity, 'on') %}
                green
              {% elif is_state('update.home_assistant_operating_system_update',
              'on') %}
                green
              {% elif states('sensor.hacs') >= '1' %}
                green
              {% else %}  
                none
              {% endif %}

            entity: update.home_assistant_core_update
          - type: custom:mushroom-chips-card
            chips:
              - type: template
                tap_action:
                  action: fire-dom-event
                  browser_mod:
                    service: browser_mod.popup
                    data:
                      title: Etat des piles
                      content:
                        type: custom:auto-entities
                        card:
                          type: custom:bar-card
                          title_position: inside
                          height: 38
                          positions:
                            icon: none
                            indicator: inside
                            name: inside
                            value: inside
                          show_icon: true
                          align: split
                          columns: '1'
                          max: 100
                          unit_of_measurement: '%'
                          severity:
                            - color: '#d11e1e'
                              to: '5'
                              from: '0'
                            - color: '#cf2d11'
                              from: '6'
                              to: '10'
                            - color: '#cc3900'
                              from: '11'
                              to: '15'
                            - color: '#c84400'
                              from: '16'
                              to: '20'
                            - color: '#c44d00'
                              from: '21'
                              to: '25'
                            - color: '#bf5600'
                              from: '26'
                              to: '30'
                            - color: '#b95f00'
                              from: '31'
                              to: '35'
                            - color: '#b36600'
                              from: '36'
                              to: '40'
                            - color: '#ac6e00'
                              from: '41'
                              to: '45'
                            - color: '#a57500'
                              from: '46'
                              to: '50'
                            - color: '#9d7b00'
                              from: '51'
                              to: '55'
                            - color: '#948100'
                              from: '56'
                              to: '60'
                            - color: '#8b8700'
                              from: '61'
                              to: '65'
                            - color: '#818d00'
                              from: '66'
                              to: '70'
                            - color: '#769200'
                              from: '71'
                              to: '75'
                            - color: '#6a9700'
                              from: '76'
                              to: '80'
                            - color: '#5d9c00'
                              from: '81'
                              to: '85'
                            - color: '#4da100'
                              from: '86'
                              to: '90'
                            - color: '#39a500'
                              from: '91'
                              to: '95'
                            - color: '#15a911'
                              from: '96'
                              to: '100'
                        filter:
                          exclude:
                            - entity_id: ^sensor.brosse*$
                            - entity_id: ^sensor.huawei*$
                            - entity_id: ^sensor.ipad*$
                            - entity_id: ^sensor.moto*$
                            - entity_id: ^sensor.pc*$
                            - entity_id: ^sensor.smart*$
                            - entity_id: ^sensor.tablette*$
                            - entity_id: ^sensor.roomba*$
                          include:
                            - entity_id: ^sensor.*_battery_level$
                            - entity_id: ^sensor.*_battery$
                            - entity_id: ^sensor.*_batt$
                            - entity_id: ^sensor.*_battery_charge$
                        sort:
                          method: state
                          numeric: true
                        show_empty: false
                icon: mdi:battery
                hold_action:
                  action: none
                icon_color: grey
                double_tap_action:
                  action: none
            alignment: end
            card_mod:
              style:
                style: |
                  ha-card {
                    padding-top: 0px;
                    margin-top: -8px;
                    padding-bottom: 8px;
                    padding-left: 8px;
                    padding-right: 8px;
                  }
    view_layout:
      position: main

Salut BBE :wink:
Belle présentation.
Joli dashboard, bien structuré.
Merci pour le partage :smiley:
@+ Guy

Ma-gni-fique ! Bienvenue, tu va nous apprendre plein de trucs c’st cool :wink:

Il n’y a pas grand chose de bien compliqué, et j’ai acquis la plupart des compétences nécessaires en parcourant ce forum depuis 2 ans…

C’est un simple retour d’expérience, pour apporter moi aussi ma pierre à l’édifice.

J’essaierai de mettre à jour les post en haut avec des liens et des nouveautés le cas échéant.
Et peut être ajouter un truc sur quelques automatisations qui pourraient être utiles…

2 « J'aime »

Merci beaucoup pour le partage!

Merci pour ce post de qualité ! Pleins de bonnes idées !

Merci pour ce post très complet. Ca faisait un bon moment que je cherchais une carte complète pour mes températures avec humidité et batterie. Volets et lumière en plus le top.
Du coup, j’ai fait ceci, à voir si j’utilise mais ca va beaucoup m’aider pour mes autres mushroom.
S’adapte très bien sur PC et smartphone, je fonctionne avec le même dashboard pour les 2 en 1 seule colonne.

Bienvenue sur HACF :wink:

belle présentation

Bon je vous ai rajouté quelques automatisations pour la route…

SI ça peut servir… ce ne sera qu’un tout petit retour après tout ce que le forum m’aura permis de faire en si peu de temps !

1 « J'aime »

Top!
Serait-il possible de partager ta carte stp?
Merci d’avance

Tu peux déjà partir de ça donné plus haut et adapter :

Variante Carré
Cette variante ci ressemble plus à la carte « minimalist ». C’était mon option préférée durant un bon moment:

image

Ici on utilise beaucoup Card Mod pour mettre en forme la carte, et je n’étais pas sur de la pérennité ni de la facilité à maintenir cette carte à long terme. Cependant, visuellement, ça marche très bien !
Finalement je suis revenu à quelque chose de plus proche de mushroom, à la fois visuellement, et aussi pour simplifier un peu le code (moins de card_mod), mais cette option mérite aussi qu’on s’y intéresse…

le code
type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    entity: group.lumieres_salon
    icon: mdi:sofa
    icon_color: |
      {% if is_state(entity, 'on') %}
        #03A9F4
      {% else %}  
        grey
      {% endif %}
    primary: Salon
    secondary: '{{ states(''sensor.echo_jeanne_temperature'') }}°C'
    layout: horizontal
    tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/salon
    double_tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/salon
    hold_action:
      action: toggle
    badge_icon: |
      {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
        mdi:motion-sensor
      {% else %}  
        mdi:motion-sensor-off
      {% endif %}
    badge_color: |
      {% if is_state('binary_sensor.echo_salon_mouvement', 'on') %}
        orange
      {% else %}  
        grey
      {% endif %}
    card_mod:
      style:
        mushroom-state-info$: |
          .primary {
            font-size: 16px !important;
            position: relative;
            top: -50px;
            left: -155px;
            overflow: visible !important;
            white-space: normal !important;
          }
          .secondary {
            position: relative;
            overflow: visible !important;
            top: -52px;
            left: -155px;
          }
        mushroom-shape-icon$: |
          .shape {
            position: relative;
            left: -43px;
            top: 55px;
          }
        .: |
          :host {
            --mush-icon-size: 146px;
          }
        style: |
          mushroom-badge-icon {
            left: 60px;
            top: 25px;
          }
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: light.0x84ba20fffe4b2581
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Lumières salon
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-light-card
                    entity: light.0x84ba20fffe4b2581
                    name: Petite Lampe
                    use_light_color: true
                    show_brightness_control: true
                    show_color_temp_control: true
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.lampadaire
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.elephants
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
                  - type: custom:mushroom-light-card
                    entity: light.cerisier
                    use_light_color: false
                    show_brightness_control: false
                    show_color_temp_control: false
                    show_color_control: false
                    collapsible_controls: true
        icon: mdi:lightbulb
        hold_action:
          action: toggle
        icon_color: |-
          {% if is_state(entity, 'on') %} 
           orange
          {% elif is_state(entity, 'off') %} 
           grey
          {% else %}
           grey
          {% endif %}
      - type: template
        entity: cover.salon
        hold_action:
          action: toggle
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Volets du salon
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-cover-card
                    entity: cover.volet_du_salon_apero
                    name: Volet Apero
                    show_position_control: true
                    show_tilt_position_control: false
                    show_buttons_control: true
                  - type: custom:mushroom-cover-card
                    entity: cover.volet_du_salon_tv
                    name: Volet TV
                    show_position_control: true
                    show_tilt_position_control: false
                    show_buttons_control: true
        icon: |-
          {% if is_state(entity, 'open') %} 
           mdi:window-shutter-open
          {% elif is_state(entity, 'closed') %} 
           mdi:window-shutter
          {% else %}
           mdi:window-shutter-alert
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'open') %} 
           grey
          {% elif is_state(entity, 'closed') %} 
           grey
          {% else %}
           orange
          {% endif %}
      - type: template
        entity: media_player.echo_jeanne
        icon: mdi:play-pause
        icon_color: |-
          {% if is_state(entity, 'playing') %} 
            #03A9F4
          {% else %}
           grey
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Echo salon
              content:
                type: custom:stack-in-card
                cards:
                  - type: custom:mini-media-player
                    entity: media_player.echo_jeanne
                    source: full
                    volume_stateless: false
                    group: true
                    artwork: full-cover
                    tts:
                      platform: alexa
                      entity_id: media_player.echo_jeanne
                      type: announce
                    shortcuts:
                      hide_when_off: true
                      columns: 3
                      buttons:
                        - name: Playlist Jeanne
                          type: AMAZON_MUSIC
                          id: Playlist Jeanne
                        - name: RTL2
                          type: custom
                          id: joue la station RTL deux
                        - name: Pop- Rock
                          type: custom
                          id: joue du pop rock
                        - name: Rock
                          type: custom
                          id: joue du rock
                        - name: Musique douce
                          type: custom
                          id: joue de la musique douce
                        - name: Piano
                          type: custom
                          id: joue de la musique au piano
                        - name: Queen
                          type: custom
                          id: joue du Queen
                        - name: Vianney
                          type: custom
                          id: joue du Vianney
                        - name: Louane
                          type: custom
                          id: joue du Louane
                        - name: Playlist Jeanne
                          type: AMAZON_MUSIC
                          id: Playlist Jeanne sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: RTL2
                          type: custom
                          id: >-
                            joue la station RTL deux sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Pop- Rock
                          type: custom
                          id: joue du pop rock sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Rock
                          type: custom
                          id: joue du rock sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Musique douce
                          type: custom
                          id: >-
                            joue de la musique douce sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Piano
                          type: custom
                          id: >-
                            joue de la musique au piano sur le groupe
                            rez_de_chaussee
                          icon: mdi:multicast
                        - name: Queen
                          type: custom
                          id: joue du Queen sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Vianney
                          type: custom
                          id: joue du Vianney sur le groupe rez_de_chaussee
                          icon: mdi:multicast
                        - name: Louane
                          type: custom
                          id: joue du Louane sur le groupe rez_de_chaussee
                          icon: mdi:multicast
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/echo
      - type: template
        entity: plant.alocatia
        icon: mdi:flower
        icon_color: |-
          {% if is_state(entity, 'problem') %} 
           orange
          {% else %}
           grey
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Plante Marsupilami
              content:
                type: custom:mod-card
                card:
                  type: custom:flower-card
                  entity: plant.alocatia
                  show_bars:
                    - moisture
                    - temperature
                    - illuminance
                    - conductivity
                  battery_sensor: sensor.alocasia_zebrina_battery
    card_mod:
      style:
        .: |
          ha-card {
            width: 66px;
            margin-left: 80%;
            top: -170px;
            background: none;
            --chip-border-width: 0;
          }
card_mod:
  style: |
    ha-card {
      height: 178px ;

      margin-left: auto;
      margin-right: auto;
    }

[edit] pour @cedric1 , Jeffodilo a partagé son code sur sa présentation : Présentation Jeff - #8 par Jeffodilo

1 « J'aime »

Bonjour, je cherche désespérément utiliser flower-card mais je trouve pas cette intégration!!
peut tu me dire ou tu trouve le nécessaire pour tes plantes!!

Bonjour,
Google est ton ami avec 2s de recherche

A installer via hacs

2 « J'aime »