# Présentation + \[Mon Dashboard\] BBE

**URL:** <https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332>\
**Category:** Présentations\
**Tags:** interface-lovelace, tableau-de-bord-dashboard\
**Created:** [Décembre 8, 2023, 10:23 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332 "2023-12-08T10:23:32Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![BBE](https://forum.hacf.fr/user_avatar/forum.hacf.fr/bbe/32/64915_2.png) [@BBE](https://forum.hacf.fr/u/BBE)\
**Post date:** [Décembre 8, 2023, 10:23 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/1 "2023-12-08T10:23:32Z")

</div>

Bonjour à tous.

Je me rend compte que je n' avais pas encore fait ma présentation alors que je suis sur le forum depuis presque 2 ans...

Vu que mon dashboard commence à ressembler à quelque chose et à être assez stable, je ferai ainsi d'une pierre deux coups, présentation, présentation de mon installation complète, et si ça peut servir à donner des idées à certains, ce ne sera qu'un modeste retour de tout ce que le forum m'aura apporté...

_Note: je vous ai mis beaucoup de balises afin que ce soit plus lisible, n'hésitez pas à cliquer sur les triangles pour afficher tout le contenu._

> **Qui sommes nous ?**
>
> Installés avec Madame, nos 3 enfants (2010, 2012 et 2015) et nos deux chats, à proximité de Toulouse, nous sommes dans une maison de 1990.  
> Maison "classique" avec quelques volets Somfy RTS, du chauffage électrique avec fil pilote, une clim chaud/froid à l'étage et un tarif EDF Tempo.  
> La domotique m'intéresse depuis longtemps, mais je n'avais jamais franchi le pas, même si j'avais déjà bien optimisé la gestion du chauffage via fil pilotes en fonction du tarif tempo avec une centrale delta-dore lorsqu'on a emménagé vers 2008...

> **Les vrais débuts depuis 2021**
>
> Nous avons progressé tout doucement et par étapes.
> 
> D'abord avec domitique basée sur une Amazon Echo (gen4):  
> Mon cadeau de Noël 2021 qui nous a permis grace à son HUB Zigbee de brancher quelques équipements zigbee achetés pour essayer (prise pilotées et smart light), et des réaliser les premières automatisations (des routines dans le langage Alexa).  
> Une box TostCorp a rejoint la maison début 2022 et nous a permis de prendre le contrôle des volets Somfy RTS à la voix avec Alexa (Tutoriel _mode easy_, fourni par Tostcorp, plug & play via un skill amazon) et de jouer avec nos premières automatisations.  
> Ceci a conquis rapidement le reste de la famille ! Et m'a permis de comprendre que la voix serait la principale interface de notre domotique vu la facilité et l'accessibilité à tous...
> 
> Home assistant arrive en octobre 2022:  
> Un collègue de travail, utilisateur de home assistant, me prête un vieux Rasberry Pi 3 pour tester. Premières tentatives avec HAOS, premières difficultés, recherches sur le net et découverte du forum HACF.  
> On commence alors par transférer ce qui se faisait sur Alexa dans Home assistant, on a les premiers plantages, on prend quelques bons reflexes, mais le virus est pris... et les soirées passées sur le forum pour comprendre, améliorer, étendre cette solution domotique s'accumulent...  
> Bref la boule de neige a alors très rapidement grossi, avec de plus en plus de modules, d'intégrations, d'automations, de fonctions etc...  
> Quelques plantages répétitif du Pi3 (qui devenait un peu juste) l'ont poussé vers la sortie, remplacé par un miniPC...  
> Bref sur Home assistant depuis 2022, le virus est pris, et le principal challenge c'est de trouver le bon équilibre avec la famille...

> **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 (même si passage par le cloud, par exemple les amazon Echo)
> - Tout ce qui est contrôlable par la domotique doit aussi rester contrôlable si HA (ou MQTT ou Z2M) est cassé.
> - Tout ce qui est allumé automatiquement devra aussi être éteint automatiquement.

Si on fait un bilan fin 2025, Nous avons l'installation domotique suivante:

**Le matériel :**

> **Matériel**
>
> - HAOS hébergé sur un minipc lenovo reconditionné (MiniPC LENOVO, core i3 gen4 (4130T) 4GB de RAM et SSD 250Go, récit de l'installation ici : [migration Rpi -\> miniPC](https://forum.hacf.fr/t/interet-mini-pc-vs-un-raspberry-pour-home-assistant/2603/140) )
> - Clef Zigbee USB Sonoff (model P)
> - Un certain nombre 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)
> - smartlights (ampoules ikea, ruban led ikea et lidl)
> - modules Zigbee Sonoff ZBMINI-L sans neutre
> - quelques capteurs de mouvement (sonoff, lidl, ikea)
> - quelques capteurs de porte (sonoff, ikea)
> - quelques "télécommandes" (ikea: tradfri on/off et Rodret et Leroy merlin)
> - un module pour le seul volet roulant filaire
> 
> - Un "_Echo_-système" d'amazon echo répartis un peu partout, qui servent d'enceinte pour la musique, pour des notifications, de capteur de présence, de thermomètres. Voir plus bas le [bilan sur Alexa](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/4) pour le détail:
> - 1 Echo gen4
> - 1 Echo dot gen3
> - 3 Echo dot gen4
> - 2 Echo dot gen5
> 
> - Une Tost-Box pour gérer les volets RTS (passé en mode "expert" avec le broker MQTT mosquitto intégré à HAOS depuis le passage à HA)
> - Un boitier wifi Mitsubishi pour avoir le contrôle de la PAC (initialement via MELCloud et l'intégration associée, désormais en Local)
> - Un BLE proxy sur base d'ESP32
> - Un capteur Miflora pour une plante
> - Une vielle tablette android qui fait dashboard dans le bureau grace à l'appli android [wallpanel](https://wallpanel.app/) - remplacée en 2024 par un vieux smartphone android qui dormait dans un placard, suite à la mort de la tablette (2014 tout de même...). A noter, grace à l'appli wallpanel, le smartphone sert de camera IP et remonte quelques info (detection de mouvement, luminosité, etc...).

**Le logiciel:**  
Home assistant installé en HAOS "pur" ou "bare-metal" et plein d'ajouts qui n'étaient pas tous prévus ni indispensables mais certains se sont rajoutés car ils étaient disponibles dans HA ou HACS et connectables simplement sans matériel supplémentaire...

> **Intégrations officielles**
>
> - Meteo France
> - la prise en compte des brosses à dent OralB
> - la Gestion du Roomba

> **Modules complémentaires HA**
>
> - Mosquitto
> - Zigbee2MQTT
> - googleDrive backup
> - Let'sEncrypt
> - ESPHome

> **HACS**
>
> - [Un composant Custom](https://github.com/pymitsubishi/homeassistant-mitsubishi) pour piloter la PAC en local.
> - [Alexa Media Player](https://github.com/alandtse/alexa_media_player) pour libérer le plein potentiel des echo...
> - [Mushroom,](https://github.com/piitaya/lovelace-mushroom) mes cartes préférées, en attendant que les tuiles soient au même niveau...
> - [auto-entities](https://github.com/thomasloven/lovelace-auto-entities) pour générer des cartes automatiques (pollens, piles, niveau de réception bluetooth, etc...)
> - [card\_mod](https://github.com/thomasloven/lovelace-card-mod) pour mettre enforme les cartes.
> - [Browser\_mod](https://github.com/thomasloven/hass-browser_mod/tree/master) pour pouvoir générer des pop-ups sur le dashboard notamment.
> - [mini media player](https://github.com/kalkih/mini-media-player) parce que c'est boo!
> - [Vertical stack In Card](https://github.com/ofekashery/vertical-stack-in-card) pour faire de jolies cartes fusionnées!
> - [carte meteo france](https://forum.hacf.fr/t/installer-la-carte-meteo-france/979) merci HACF !
> - flower card pour l'affichage du capteur miflora
> - [Pronote for HA](https://forum.hacf.fr/t/integration-pronote-0-13-5-cours-devoirs-notes-etc/24682) pour avoir les agenda des enfants, en cour de déploiement.
> - [l'éclairage adaptatif](https://github.com/basnijholt/adaptive-lighting) pour les smartlight et ruban leds, dubitatif au début, adopté depuis.
> - [la gestion des alertes pollens](https://github.com/chris60600/pollens-home-assistant)
> - [l'intégration véolia](https://github.com/kugan49/veolia-custom-component-HACS) pour la conso d'eau
> - [Powercalc](https://github.com/bramstroker/homeassistant-powercalc) pour la conso électrique des appareils dont on peut connaitre l'état.
> - [Spook](https://github.com/frenck/spook) pour surveiller Home Assistant
> - [VigiEau](https://github.com/kamaradclimber/vigieau) Pour la gestion des restrictions d'eau

> **Nos 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](https://forum.hacf.fr/t/presentation-dashboard-bbe/32332/3)  
> 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'aimant 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](https://github.com/EPMatt/awesome-ha-blueprints/blob/main/blueprints/controllers/ikea_e1743/ikea_e1743.yaml) (pour avoir double appui et appui long =\> jusqu'à 6 possibilités avec une télécommande à moins de 10€)
> - mode [éclairage adaptatif](https://github.com/basnijholt/adaptive-lighting) 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...)

**Les interfaces :**  
L'audio:  
Chez nous la principale interface avec la domotique ce sont les Amazon Echo disposées un peu partout. Voir plus bas le [bilan sur Alexa](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/4) pour le détail... Elles sont utilisées à la fois:

- pour le contrôle vocal:  
On peut contrôler à la voix les principaux éléments de la domotique (lumières, volets, interrupteurs) mais aussi faire des choses beaucoup plus élaborées car on peut aussi lancer des scripts.

- pour les notifications:  
On peut faire dire ce que l'on veut à n'importe laquelle des amazon echo (seule ou en groupe) y compris les faire chuchoter la nuit pour ne pas réveiller toute la maison si la lessive est terminée...

Le dashboard:  
Affiché sur les appli companion et sur le smartphone fixe en mode [wallpanel](https://wallpanel.app/) dans le bureau.  
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).  
Il est basé sur des [sections depuis quelques temps](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/154)...

Il va été mis a jour pour le 1er avril 2026 (ce n'est pas un poisson): [Présentation + [Mon Dashboard] BBE - #182 par BBE](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/182)  
Une page qui s'adapte automatiquement :

- en mode PC:  

- en mode tablette:  

- en mode mobile:  

et un "nano dashboard" pour le vieux smartphone en mode wall-panel (basé sur des cartes heading uniquement):

 ![image](https://forum.hacf.fr/uploads/default/original/3X/d/0/d0930a1ba7bc72826bead5d3d3de201fe896f602.png)

Les postes ci dessous décrivent plus en détail certains aspects:

- [La room card mushroom qui est la base du dashboard](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/2) et sa mise à jour.
- [La description complete du Dashboard, notamment les pop-ups et info des rooms cards ainsi que les différentes sous vues du dashboard](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/2)
- [les principales automatisations, leur fonctionnement et leur code](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/3)
- [une synthèse sur Alexa et l'ensemble des choses qu'on a réussi à faire avec...](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/4)
- [Un petit outil simpliste de log ou de notifications sur le dashboard](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/158)

---

<div class="post-metadata">

**Author:** ![BBE](https://forum.hacf.fr/user_avatar/forum.hacf.fr/bbe/32/64915_2.png) [@BBE](https://forum.hacf.fr/u/BBE)\
**Post date:** [Décembre 8, 2023, 11:12 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/2 "2023-12-08T11:12:38Z")

</div>

**La "room card" mushroom.**

Le dashboard est basé depuis le tout début sur les [cartes mushroom](https://github.com/piitaya/lovelace-mushroom) que j'apprécie pour leur facilité, leur look et leur possibilité de personnalisation.  
Cette collection de cartes m'a permis de démarrer un dashboard simple mais que je trouvais joli, puis de le modifier progressivement 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](https://forum.hacf.fr/uploads/default/original/3X/e/5/e5983466799b31ca424461ef7711f74478aa4a29.png)

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.

> **Fonctions détaillées**
>
> Ci dessous la description détaillée de la carte salon. On s'appuie entièrement sur les possibilités offertes par la carte mushroom template et les quatre mushroom chips.
> 
> Avec la carte mushroom template (partie haute de la carte) :
> 
> - L’icône de la carte template (canapé) : sa couleur dépend de l'état des lumières dans la pièce
> - Le titre (est fixe mais il pourrait être dynamique puisque c'est une carte template).
> - L'info secondaire (affiche via un template la température dans la pièce)
> - le badge de l’icône permet d'afficher l'état des détecteurs de mouvements (couleur et icone)
> - L'appui court sur l’icône du canapé (en fait sur toute la carte en dehors des chips...) est un raccourci 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
> 
> La ligne de "chips" permet d'afficher des boutons supplémentaires (partie basse de la carte) :
> 
> - L'appui court sur l’icône d'ampoule ouvre un pop-up avec toutes les lumières de la pièce
> - L'appui long sur l’icône d'ampoule fait basculer (toggle) la lumière principale de la pièce
> - L'appui court sur l’icône de volet ouvre un pop-up avec tous les volets de la pièce
> - L'appui long sur l’icône de volets fait basculer (toggle) le groupe des volets de la pièce
> - L'appui court sur l’icône media ouvre un pop-up 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
> - L'appui court sur l’icône de fleur ouvre un pop-up avec toutes les info du capteur miflora
> 
> 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)...

> **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 dessus):
> 
> Sur la lumière :
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/b/b/bb421b1cbaf09eae0e7eb0cf676406bb9ac75490.png)
> 
> Sur les volets:
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/7/e/7e76a65da33c0d9e1510169578f2387df077748e.png)
> 
> Sur le player:
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/5/c/5c6b12493cfd299ec68d85f90aefef4d14a42265.jpeg)
> 
> Et même sur la plante :
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/b/b/bba7472b0ca7049808b316d442b82f03f1dc26f6.png)

L'élaboration de cette room-card est décrite en détail ici:  
[\>\>\> présentation de la room-card et Tuto \<\<\<](https://forum.hacf.fr/t/mise-en-forme-de-cartes/20429/1)  
N'hésitez surtout pas à vous en inspirer...

**Les pop up et infos des "room-cards"**

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:

> **Détail des autres pop-ups et info**
>
> Carte escalier:
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/7/4/74599159afaddbc498141455961d45f085031711.png)
> 
> > **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 hiver) et de régler le thermostat si nécessaire.
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/d/2/d2154e491cecff036305b11d3649b30b02887c9b.png)
> 
> > **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" et des raccourcis pour lancer le nettoyage dans chaque pièce:
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/6/c/6c67e19e48e8548deedba93f1bf4e9cc1c048b6b.png)
> 
> Carte cellier:
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/d/9/d9344bae65c16d18ebcfb77f3e6e44e40b51bf1b.png)
> 
> 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, les appuis long sur les machines permettent de remettre à zero les alertes machine à vider.
> 
> Carte enfants:
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/e/b/eb75ed3825a84135e5704998645a638ca92e4a4f.png)  
> ![image](https://forum.hacf.fr/uploads/default/original/3X/b/6/b67407c8baa36ce4ec965ff742b0cf15258996c4.png)
> 
> 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 réveil programmé sur Alexa pour la non collégienne.
> 
> > **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](https://forum.hacf.fr/uploads/default/original/3X/9/5/95d31c30f0815ff7c583dd03a84f0f3e61d438d2.png)
> 
> Carte bureau:
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/a/0/a040636815e243aa661008b6deed0b8f0e713cf3.png)
> 
> > **pop up imprimante**
> >
> > Le clic sur la petite goutte affiche les infos de l'imprimante avec des cartes mushroom entity
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/f/e/fe4200fb4c5fd082271f0daec2213d7c161db58a.png)
> 
> Carte Suite parentale:
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/5/a/5af5438a30c8c78e8aa167b0189dc6ef3294a459.png)  
> Affiche les info de la salle de bain et de notre chambre
> 
> > **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
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/e/e/eecb13a6664b82c2fe09fcf512c676bf7d8e2ea1.png)
> 
> Carte Jardin
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/b/c/bc19a7451437f942049ce1b4d0afd0c32f186377.png)
> 
> > **pop up météo**
> >
> > Le clic sur l’icône météo affiche la météo:
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/c/c/ccab9fe7942c177533b6440b397a749a93581869.png)
> 
> > **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](https://forum.hacf.fr/t/tuto-suivi-des-cours-deau/35097) et les infos de VigieCrue grace à ce post: [Récupérer le niveau d'alerte VigiCrue](https://forum.hacf.fr/t/recuperer-le-niveau-dalerte-de-vigicrue/33972)
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/f/6/f621ac130f00c6f33c517b69e9d826093d2138ff.png)
> 
> > **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](https://forum.hacf.fr/t/pollens-custom-component-sensor/3336):
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/9/f/9f031e76e14a027bfe0bf25b9b2d02e8bcf44916.png)
> 
> Carte Home Assistant
> 
> ![image](https://forum.hacf.fr/uploads/default/original/3X/9/5/951c2b45cebe8345107287a2f77e41e7904fbdfe.png)
> 
> 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 Elec**
> >
> > Le clic sur l’icône eclair (qui varie en fonction du tarif TEMPO, ici jour Blanc) donne plus d'info sur l'état de l'Elec:
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/b/8/b84120485c224cd9cc4d7fbbd8737fd01c8fa345.png)
> 
> > **pop up Sécurité**
> >
> > Le clic sur l'icône pouce vert (ou détecteur de présence rouge suivant les cas) ouvre un pop up dédié aux détections de présence et ouvertures de porte::
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/d/1/d1642b2e3df691f75c7112b16b898de1af46a60c.png)
> 
> > **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 ici[Carte automatique pour le suivi des batteries](https://forum.hacf.fr/t/carte-automatique-pour-suivi-des-batteries/11926):
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/3/a/3af5675afc20cbed9bfc62053479758dc8c5d62b.png)

**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:

> **Détail des sous-vues**
>
> 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 :
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/d/3/d34ead3be43678caa64f3ae0259cb350e94057e6.png)
> 
> 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](https://forum.hacf.fr/uploads/default/original/3X/d/0/d0bdbeb69df26f48c81d7fd3248df4402fe17f1a.png)  
> > Vue météo:
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/f/4/f4509fd1cd5769821798de2a2ff6e0e657da7236.png)
> 
> Vue Carte:
> 
> > **le clic long sur une chip personne emmène vers une vue carte spécifique**
> >
> > Chips "personnes" dans le dashboard:  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/0/a/0afb319c0edbbb203db4f508b61d6c52d7ce35ca.png)  
> > Vue carte:
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/c/a/cab444ae7529feed37e3500c100b690efe0cd0fe.jpeg)
> 
> Vue Lumières:  
> ⚠ 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](https://forum.hacf.fr/uploads/default/original/3X/5/8/585fe4579fa4d053e99b1045ea2c1951bee3ddf7.png)  
> > nouvelle version:  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/5/7/5788b2c20fefa185cf7d5c37808aff581918755f.png)  
> > Vue lumière contenant toutes les lumières (mushroom light et mushroom template suivant les cas):  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/0/a/0a0f5667ab7e2d3fc0920328b3c1e58a04191e3e.png)
> 
> Vue Volets:
> 
> > **le clic sur la carte Volets emmène vers une vue spécifique**
> >
> > carte volets (mushroom template) :  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/0/2/02238612bf2e2dbd0d114777202ec5d6eefc0208.png)  
> > nouvelle version:
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/a/c/ac75f87b658a420429b1ed85bc4e8e47beca5604.png)
> > 
> > Vue volet contenant tous les volets (mushroom chips, mushroom cover et mushroom template):
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/c/4/c4e9faaca7d06c8903e561bc3842351deeb99424.png)
> 
> Vue Sécurité:
> 
> > **le clic sur la carte secu emmène vers une vue spécifique**
> >
> > Carte sécurité (mushroom template):  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/9/d/9d6d8655c07bafeb023a9fa66fbeb85aca81ab83.png)  
> > ou icone "sécu" sur la carte HA:
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/0/8/08d2e5465d3497381e40c8470f0c00dd8a6ec29e.png)
> > 
> > Vue sécurité contenant les présences, tous les capteurs de porte et les détecteur de mouvement/présence (mushroom chips, mushroom person et mushroom entity):
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/2/8/28afc3dcb6f8caacab6da50f5e0de2ddf917b039.png)
> 
> Vue EDF:
> 
> > **le clic sur la carte EDF ou clic long sur la carte home assistant emmène vers une vue spécifique**
> >
> > carte edf (mushroom template):
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/7/f/7f44f39c69c68700449e9de42a23b39d93791eda.png)  
> > carte home assistant (room card)  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/e/3/e35ec24bb00ed2213665865bb37d7f9025e1d84b.png)  
> > Vues EDF (mushroom entity, mushroom template et cartes energy):  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/3/c/3c1783443c1c3d9465e723c5722c5624190a72de.png)
> 
> Vue Home Assistant:
> 
> > **le clic sur la carte HA emmène vers une vue spécifique**
> >
> > carte HA (mushroom room card):
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/4/c/4c1a33ba4cd69215a56b2698f8ad6f5259468a50.png)
> > 
> > Vue système avec les info de mise à jour HA, la dispo de certains équipement, les cartes auto pour le niveau des piles des équipements domotiques et les niveau de reception BLE :
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/b/6/b6a6514b386d8a5f548c5fd3690d268a88ec741c.png)
> > 
> > Nouvelle version avec la MaJ de la partie "mises à jour" suite au passage en HACS v2.0:
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/4/a/4a9906727a1fa878b6e527ef3539843bcb66f480.png)
> > 
> > > **carte mises à jour:**
> > >
> > > Il y a une carte avec une vue de synthèse qui affiche le nb de mises à jour et, avec auto entities, l'ensemble des mises à jour à faire (tout en vrac du coup, je n'ai fait aucun tri entre HA, HACS, modules complémentaires etc...).
> > > 
> > > Le nombre de mise à jour est calculé dans un petit sensor template: sensor.available\_updates :
> > > 
> > > ![image](https://forum.hacf.fr/uploads/default/original/3X/5/1/51449ca7b54dabc92d9865c2088ce5768f8e5ca7.png)
> > > 
> > > ici sans MaJ:  
> > > ![image](https://forum.hacf.fr/uploads/default/original/3X/6/f/6f0269f97fa952bfade0af254f7fd3bea738d5c5.png)
> > > 
> > > avec 1 MaJ:
> > > 
> > > ![image](https://forum.hacf.fr/uploads/default/original/3X/d/c/dcb380ec35b1af61a532cee31d91e4036c0deffe.png)
> > > 
> > > Ici avec 2 MaJ:
> > > 
> > > ![image](https://forum.hacf.fr/uploads/default/original/3X/9/9/992750039bf39f83c7f72962a022e1a0229aecec.png)
> > > 
> > > (J'ai au passage supprimé les deux cartes mushroom qui traitaient des updates HA OS et HA core, puisqu'ils seront désormais dans cette liste avec les autres updates...)
> > > 
> > > > **le code de la carte:**
> > > >
> > > > Bien sur il faut avoir vertical-stack-in-card, mushroom et auto-entities
> > > > 
> > > > ```auto
> > > > type: custom:vertical-stack-in-card
> > > > cards:
> > > > - type: custom:mushroom-template-card
> > > > primary: Software et modules
> > > > secondary: |2-
> > > > {% if is_state(entity, '0') %} 
> > > > Tout est à jour
> > > > {% elif is_state(entity, '1') %} 
> > > > 1 mise à jour
> > > > {% else %}
> > > > {{ states(entity)}} mises à jour
> > > > {% endif %}
> > > > icon: mdi:home-assistant
> > > > entity: sensor.available_updates
> > > > icon_color: |2-
> > > > {% if is_state(entity, '0') %} 
> > > > light-blue
> > > > {% else %}
> > > > orange
> > > > {% endif %}
> > > > - type: custom:auto-entities
> > > > card:
> > > > type: custom:vertical-stack-in-card
> > > > card_param: cards
> > > > filter:
> > > > include:
> > > > - entity_id: update.*
> > > > state: 'on'
> > > > options:
> > > > type: custom:mushroom-template-card
> > > > primary: '{{ state_attr(entity,''friendly_name'')}}'
> > > > secondary: >-
> > > > instalé: {{ state_attr(entity,'installed_version')}} | dernier: {{
> > > > state_attr(entity,'latest_version')}}
> > > > icon: |-
> > > > {% if is_state(entity, 'on') %} 
> > > > mdi:upload-box
> > > > {% else %}
> > > > mdi:thumb-up
> > > > {% endif %}
> > > > icon_color: |-
> > > > {% if is_state(entity, 'on') %} 
> > > > orange
> > > > {% else %}
> > > > green
> > > > {% endif %}
> > > > layout: horizontal
> > > > tap_action:
> > > > action: more-info
> > > > hold_action:
> > > > action: more-info
> > > > double_tap_action:
> > > > action: more-info
> > > > exclude: null
> > > > sort:
> > > > method: state
> > > > reverse: true
> > > > 
> > > > ```
> > > 
> > > - Et lorsqu'on clique sur une des cartes des soft à mettre à jour, ça ouvre le "more info" de l'entité update:
> > > 
> > > Celui ci contient les details, le lien vers le changelog et les boutons ignorer / installer...
> > > 
> > > ![image](https://forum.hacf.fr/uploads/default/original/3X/a/c/acf0601712132fcef34937ae0f78a8bc2a6635a2.png)  
> > > ![image](https://forum.hacf.fr/uploads/default/original/3X/3/1/3104f7e779fb9ff5232dfe2a390334d0ad1f211d.png)
> > > 
> > > Et lorsqu'on clique sur le contenu des versions, on ouvre une nouvelle page de navigateur.
> 
> Vue Enfant (collège): ⚠ 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](https://forum.hacf.fr/uploads/default/original/3X/7/6/761a4b21d2a9cd33c3b011cc283ca899042dab28.png)  
> > La vue "pièce" des chambres des enfants avec les equipements de leur chambre plus quelques infos issues de pronote (partie encore en élaboration):  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/3/4/34e2384e571d1dc07a9555f472ed8779bfbd95f8.jpeg)
> 
> Vue Pronote: ⚠ 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):  
> > ![image](https://forum.hacf.fr/uploads/default/optimized/3X/7/6/76085845201acd73bd9a1602326c2a4c56e4932d_2_690x47.png)  
> > 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...):
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/c/c/cc5cf3ee6e731a84024807aceef84d6685aabbc9.png)
> 
> Page de synthese pronote: ⚠ 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](https://forum.hacf.fr/uploads/default/original/3X/7/6/761a4b21d2a9cd33c3b011cc283ca899042dab28.png)  
> > 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:  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/b/d/bde8a9c1bb824386b4eb3a5fb149965493848675.png)
> > 
> > Un clic sur la carte mushroom de synthèse ramène sur la carte pronote complète de l'enfant montrée juste avant...

---

<div class="post-metadata">

**Author:** ![BBE](https://forum.hacf.fr/user_avatar/forum.hacf.fr/bbe/32/64915_2.png) [@BBE](https://forum.hacf.fr/u/BBE)\
**Post date:** [Décembre 8, 2023, 11:20 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/3 "2023-12-08T11:20:02Z")

</div>

**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` sur les triggers.

> **Il y a quelques conséquences:**
>
> 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.
> 
> L'arrivée des labels et des catégories avec la MaJ 2024.4 me conforte dans mon choix, il est devenu très simple de grouper les automatisations pour s'y retrouver...

Gestion de lumières avec détecteur:

> **Description:**
>
> 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).
> - l'automatisme doit allumer la lumière s'il y a une présence, et l'éteindre au bout de 5 minutes en cas d'absence), sans éteindre si quelqu'un est là...
> - les deux doivent être indépendants: l'automatisme ne doit pas éteindre une lumière allumée manuellement, mais on peut éteindre manuellement une lumière allumée par l'automatisme.
> - Pour pouvoir faire ça il me fallait savoir si l'allumage de la lampe a été fait en automatique ou en manuel. Avec des smart light, on peut utiliser une astuce: l'automatisme allume à une puissance fixe (par ex 90%) et on teste l'état de la lampe pour savoir si elle est a 100% ou 90% pour savoir "qui" l'a allumée. Mais ça ne marchait pas pour les micro modules on/off... J'utilise donc un test sur l'état du timer qui me sert de booléen pour savoir si l'allumage a été automatique ou non.  
> Tout ceci bien sur suite à [d'excellentes suggestions](https://forum.hacf.fr/t/aide-gerer-mode-manuel-et-mode-auto-dallumage-des-lumieres/19790) sur le forum comme d'habitude!
> 
> > **Allumage sur détection**
> >
> > En cas de détection dans la bonne plage horaire:
> > 
> > - si les lampes sont éteintes =\> on lance le timer et on allume les lampes
> > - sinon:
> > - si le timer est actif (l'allumage était automatique) =\> on relance le timer (pour éclairer plus longtemps puisqu'il y a toujours du monde)
> > - sinon =\> on ne fait rien (l'allumage était manuel, on ne lance pas le timer, on ne touche à rien)
> > 
> > ```auto
> > 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é...
> > 
> > ```auto
> > 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).
> > 
> > ```auto
> > 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**
> >
> > Lorsque la condition "Lumière allumée ET pas de mouvement" est vraie depuis 15min, les lumières s'éteignent. Ce cas couvre tous les oublis suite à un allumage manuel, et normalement la tempo de 15min est suffisante pour ne pas interférer avec le timer qui lui dure 5min.
> > 
> > ```auto
> > alias: Lumières - Escalier - extinction auto inoccupé
> > description: extinction auto de l'escalier en absence de mouvement 15min si allumé
> > triggers:
> > - alias: Lumière allumée et personne dans la piece depuis longtemps
> > trigger: template
> > value_template: >-
> > {{(states('group.lumieres_escalier') == 'on') and
> > (states('binary_sensor.0x00124b00246e9df7_occupancy') == 'off')}}
> > for:
> > hours: 0
> > minutes: 15
> > seconds: 0
> > conditions: []
> > actions:
> > - 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:

> **Description:**
>
> 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.
> > 
> > ```auto
> > 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. Note, de 0h à 6h, l'info "demain" contient en fait l'info du prochain tarif du jour qui sera actif à 6h...
> > 
> > ```auto
> > 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 (donc il faudra penser à rentrer du bois pour le poêle...).
> > 
> > ```auto
> > 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:

> **Description:**
>
> 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)
> 
> Le mode présenté ici a été "rénové" en 2025, [les détails dans ce fil](https://forum.hacf.fr/t/automatisation-periodique-coincee-sans-raison-apparente/70900/17), on ne teste plus toutes les 10 min, mais seulement aux changement d'état. Le reste des concepts reste similaire.
> 
> > **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.
> > 
> > ```auto
> > 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 vraiment 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é !
> > 
> > ```auto
> > 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.
> > 
> > ```auto
> > 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 sœur jumelle pour l'été.
> > 
> > ```auto
> > 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...).
> > 
> > Petite mise à jour, j'ai ajouté un timer car j'ai eu quelques allumages "sauvages" par les enfants qui oublient de couper... donc désormais l'allumage/extinction par script s'accompagne du lancement d'un timer qui remet le mode auto (désactivation du booléen override temporaire) au bout d'une durée modifiable directement dans le timer (20min la plupart du temps).
> > 
> > Les scripts:
> > 
> > ```auto
> > alias: Allumer_chauffage
> > sequence:
> > - data: {}
> > target:
> > entity_id: input_boolean.saison_chauffage
> > action: homeassistant.turn_on
> > - data: {}
> > target:
> > entity_id: input_boolean.pac_override_temporaire
> > action: homeassistant.turn_on
> > - data:
> > hvac_mode: heat
> > temperature: 22
> > target:
> > entity_id: climate.pac
> > action: climate.set_temperature
> > - data: {}
> > target:
> > entity_id: timer.minuteur_pac
> > action: timer.start
> > mode: single
> > icon: mdi:fire
> > 
> > alias: Allumer_climatisation
> > sequence:
> > - data: {}
> > target:
> > entity_id: input_boolean.saison_climatistion
> > action: homeassistant.turn_on
> > - data: {}
> > target:
> > entity_id: input_boolean.pac_override_temporaire
> > action: homeassistant.turn_on
> > - data:
> > hvac_mode: cool
> > temperature: 24
> > target:
> > entity_id: climate.pac
> > action: climate.set_temperature
> > - data: {}
> > target:
> > entity_id: timer.minuteur_pac
> > action: timer.start
> > mode: single
> > icon: mdi:snowflake
> > 
> > alias: Eteindre pac
> > sequence:
> > - data: {}
> > target:
> > entity_id: input_boolean.pac_override_temporaire
> > action: homeassistant.turn_on
> > - device_id: 5b89093e82e42fe555148e26a107faba
> > domain: climate
> > entity_id: fe8907573739d862acee9459abe1c731
> > type: set_hvac_mode
> > hvac_mode: "off"
> > - data: {}
> > target:
> > entity_id: timer.minuteur_pac
> > action: timer.start
> > mode: single
> > icon: mdi:stop-circle-outline
> > 
> > ```
> > 
> > L' automatisation de gestion du timer:
> > 
> > ```auto
> > alias: Timer override temporaire
> > description: extinction auto l'override temporaire à la fin du timer de la PAC
> > trigger:
> > - platform: event
> > event_type: timer.finished
> > event_data:
> > entity_id: timer.minuteur_pac
> > condition: []
> > action:
> > - metadata: {}
> > data: {}
> > target:
> > entity_id: input_boolean.pac_override_temporaire
> > action: input_boolean.turn_off
> > mode: single
> > 
> > ```

Suivi des machines et du sèche linge:

> **Description:**
>
> 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 sèche 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 réveiller toute la maison!
> 
> > **Démarrage lave linge**
> >
> > Active le booléen machine en cours au démarrage du lave linge
> > 
> > ```auto
> > 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
> > 
> > ```auto
> > 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:
> > 
> > ```auto
> > 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:
> > 
> > ```auto
> > 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:

> **Description:**
>
> En s'appuyant sur l'intégration [pronote](https://forum.hacf.fr/t/integration-pronote-0-13-5-cours-devoirs-notes-etc/24682).
> 
> > **Détail de la notification**
> >
> > Notification sur le smartphone des deux parents et de l'enfant concerné (uniquement) de la nouvelle note dispo:
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/b/3/b3458c91418dc841cd123b2c856e1bac9da0faae.png)  
> > Notification sous la forme:
> > 
> > - "Nouvelle Note pour xxxx"
> > - "Matière : X/Y (Commentaire)"  
> > Et direction la sous vue de synthèse pronote (voir ci dessus) en cas de clic sur la notification.
> > 
> > ```auto
> > alias: Pronote - notification nouvelle note
> > description: >-
> > Notification smartphone parents en cas de nouvelle note sur le pronote d'un
> > enfant. Notification de l'enfant concerné sur son telephone
> > 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
> > - choose:
> > - conditions:
> > - condition: template
> > value_template: "{{ trigger.event.data.child_name == 'xxx Louise' }}"
> > sequence:
> > - service: notify.mobile_app_sm_a137f
> > 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
> > - choose:
> > - conditions:
> > - condition: template
> > value_template: "{{ trigger.event.data.child_name == 'xxx Thibault' }}"
> > sequence:
> > - service: notify.mobile_app_smartphone_a14_thibault
> > 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
> > 
> > ```

---

<div class="post-metadata">

**Author:** ![BBE](https://forum.hacf.fr/user_avatar/forum.hacf.fr/bbe/32/64915_2.png) [@BBE](https://forum.hacf.fr/u/BBE)\
**Post date:** [Décembre 8, 2023, 11:41 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/4 "2023-12-08T11:41:22Z")

</div>

**Quelques mots sur Alexa (ou plutôt nos Amazon echo)**

Pour commencer

> **Quelques considérations avant de commencer**
>
> Alexa, Google Home, Siri ou Assist?
> 
> > **"Pourquoi**
> >
> > La question s'est posé chez nous avant Home Assistant, et n'ayant rien en Apple, le choix était donc Alexa ou Google home...  
> > A cette époque l'amazon echo (gen4) offrait un hub zigbee qui permettait de se projeter dans un embryon de solution domotique, un look sphérique sympa, et Madame étant abonnée amazon prime, un accès simple à Amazon musique...
> > 
> > Donc le choix a été Alexa avec une echo gen4, bientôt suivie par des petites sœurs echo dot (g4) et (g5) pour les enfants et d'autres pièces (ou trouve toujours une promo pour les french days ou le black friday)... _On en est content, mais on n'a rien testé d'autre. Ce post n'est donc aucunement une pub pour Alexa, mais plutôt un retour d'expérience pour essayer d'en tirer le plus possible..._
> > 
> > Il y a des avantages:
> > 
> > - simplicité
> > - materiel bien fini et performant
> > - esthétique
> > - reconnaissance vocale efficace
> > 
> > Il y a des inconvénients:
> > 
> > - cloud
> > - soft propriétaire amazon
> > - impossible de lire des MP3 dessus (sauf en mode bluetooth)
> > - réponses parfois peu pertinentes
> > - temps de latence
> 
> L'intégration à la domotique Home assistant, avec Nabu-Casa ou par des solutions gratuites en bidouillant?
> 
> > **Notre choix perso, le bidouillage.**
> >
> > Nous n'avons pas NabuCasa. Donc l'adaptation de ce qui suit au cas "home assistant cloud" est à vérifier, mais a priori les principes restent les mêmes pour la plupart des notions.
> > 
> > Concernant nos raisons, j'ai débuté Home assistant pile au moment ou l'abonnement a augmenté de 5 à 7.5€/mois , et je n'ai pas voulu être dépendant d'un service qui pourrait prendre régulièrement +50%...
> > 
> > Ce serait à refaire aujourd'hui, je ne sais pas si je ne ferais pas le choix de NabuCasa, il n'y a pas eu d'augmentation depuis...
> > 
> > Notre intégration est donc un poil plus complexe à installer, mais au final les capacités sont les mêmes...
> 
> Cloud ou pas cloud...
> 
> > **Cloud !!!**
> >
> > Contrairement aux solutions qui commencent à émerger depuis 2023 (année de la voix), Alexa n'est pas disponible en local, et tant que personne n'aura "jailbreaké" les amazon echo, il y a peu de chance que ceci le devienne. C'est donc une partie de la domotique qui est 100% dépendante de:
> > 
> > - l'accès de Home assistant à internet (box, routeur, fibre, etc...)
> > - la disponibilité des serveurs d'amazon (le cloud ☁)
> > 
> > C'est donc une chose à garder en tête:
> > 
> > - Les commandes vocales via Alexa/echo sont interprétées sur les serveurs d'amazon via le web avant d'arriver à votre home assistant =\> elles seront perdues en cas de perte de l'accès web ou de l'indisponibilité des serveurs amazon. Il vous faut donc toujours un autre moyen de piloter votre domotique en cas de panne.
> > 
> > - Les envois d'information (media player, notifications par ex) vers Alexa/echo sont interprétées sur les serveurs d'amazon via le web avant de sortir de votre enceinte =\> elles seront perdues en cas de perte de l'accès web ou de l'indisponibilité des serveurs amazon. Ne bâtissez pas un système d'alarme critique sur des notifications Alexa...
> > 
> > - Les sensors remontés depuis les Alexa/echo sont interprétés sur les serveurs d'amazon via le web avant d'arriver à votre home assistant =\> ils seront perdus en cas de perte de l'accès web ou de l'indisponibilité des serveurs amazon. Ne bâtissez pas d'automatisations critiques sur ces senseurs.
> > 
> > Donc si on veut faire de l'interface audio ou du contrôle vocal sans cloud. Alexa n'est pas la solution, mais il commence à y avoir des solutions alternatives qui marchent avec Home assistant (_mais ce n'est plus le sujet de ce post_).
> 
> Un peu d'architecture...
> 
> > **Comment ranger tout ça?**
> >
> > Les choses seront un peu différente suivant qui est arrivé en premier dans la maison entre Home assistant et Alexa. Dans le monde d'Alexa on dispose des éléments suivants qui permettent _aussi_ de faire une installation domotique :
> > 
> > - des équipements maison connectés qui peuvent être détectés directement par Alexa (les echo peuvent faire hub Zigbee / Matter)
> > - Des Skills (un peu l'équivalent des intégrations de HA)
> > - Des Scènes
> > - Des Routines (l'équivalent des automatisations de HA)
> > - Des Pièces pour grouper ses équipements
> > - Des Groupes d'enceintes pour faire du multi-room
> > - Une Application qui dispose d'un dashboard
> > 
> > On pourrait tout dédoubler, mais ce n'est ni efficace, ni souhaitable... tout le jeu va être de réussir à interconnecter Home Assistant et Alexa pour pourvoir élargir les possibilités des deux cotés, mais avec méthode. La meilleure solution est _à mon avis_:
> > 
> > - de centraliser au maximum dans home assistant la gestion des entités et intégrations (sauf celles qui ne seraient disponibles que dans des Skills Alexa) _donc si comme nous vous avez débuté avec Alexa, il est au final plus intéressant de retirer vos équipements d'Alexa pour les réassocier avec Home assistant l'idée étant de tout avoir au même endroit et si possible en local, sans cloud)_.
> > - de réaliser toutes les automatisations dans Home assistant (plus de possibilités et accès à toutes les entités, et tout en local)
> > - de faire le dashboard dans Home assistant (plus de possibilités de personalisation et accès à toutes les entités, et en local). _Ce point pourrait être discuté si à la place d'une amazon echo, on utilise un echo show par exemple. Peut être que le dashboard natif d'Alexa serait justifié comme dashboard simplifié..._
> > - d'utiliser Alexa pour ses capacité audio (média et notification - dépendant du cloud)
> > - d'utiliser Alexa pour de la commande vocale des entités HA (ce qui peut nécessiter quelques routines coté Alexa et sera dépendant du cloud)
> > - d'utiliser Alexa pour ses quelques capteurs (à faire remonter dans HA donc conformément au point précédent, en sachant qu'ils ne sont pas 100% en local)
> > 
> > Cette façon de faire a plusieurs avantages:
> > 
> > - l'intégralité des données remonte dans HA, on peut donc y faire des automatisations beaucoup plus poussées et bénéficier à 100% de la principale richesse de HA, le nombre d'intégrations (officielles ou via la communauté)
> > - c'est évolutif si vous changez de crèmerie: un google home, un voicePE ou autre vous permettra de faire la même chose qu'Alexa, en parallèle ou en remplacement de celle ci dans le futur, sans casser vos automatisations ou les données de votre domotique

1/ Faire parler Alexa, et un peu plus....

> **Première étape qui ouvre de nombreuses possibilités**
>
> C'est probablement la première étape. Et ça démarre avec l'installation via HACS de [Alexa Media Player](https://github.com/alandtse/alexa_media_player).  
> Allez lire la doc pour voir tout ce dont Home Assistant devient capable: [Wiki Alexa media player](https://github.com/alandtse/alexa_media_player/wiki)
> 
> _Note: il existe désormais une intégration officielle, mais je ne l'ai pas encore testée car au moment ou je l'ai découverte, elle n'était pas aussi complete qu' Alexa Media Player. Les évolutions successives semblent converger, avant de vous lancer, regardez donc si cette intégration ne vous suffit pas pour faire parler Alexa et récuperer les infos associés..._
> 
> En raccourci, Alexa Media Player vous permet d'associer votre compte amazon à home assistant et donc de pouvoir interagir avec vos amazon echo (et autres devices alexa) comme des média players (et un peu plus).  
> Ceci va permettre:
> 
> - de lancer de la musique, des playlist, des radios et autre sur vos amazon echo (et vos groupes d'enceintes).
> - d'avoir un retour sur le statut de vos echo et ce qui est en cour de lecture.
> - de visionner comme un media player vos echo (et vos groupes d'enceintes) dans le dashboard et d'interagir avec (lecture/pause, contrôle du volume, suivant/précédant, aléatoire, affichage des titres en cour de lecture, etc...)
> - de lancer des routines, des skills, etc (regardez la doc...)
> - à HA de parler à une Alexa (et donc de lui donner un ordre le cas échéant) avec une syntaxe "custom". Tous les ordres que vous pouvez donner en vocal (y compris pour interagir avec une skill) peuvent donc être envoyés par Home assistant (y compris depuis une automatisation). Dit autrement, tout ce que vous savez dire à Alexa en direct à la voix, désormais Home assistant sait le lui dire.
> 
> > **exemple de custom pour lui demander de jouer de la bonne musique dans toute la maison**
> >
> > Remplacez juste "joue du Queen sur le groupe partout" par ce que vous lui diriez en direct, en enlevant juste le "Alexa" de départ: ("ouvre les volets", "quelle est la météo de demain", "lance un timer durant 5 min", "ajoute des croquettes sur la liste d'achat", etc.).
> > 
> > ```auto
> > service: media_player.play_media
> > target:
> > entity_id: media_player.echo_dot
> > data:
> > media_content_type: custom
> > media_content_id: joue du Queen sur le groupe partout
> > 
> > ```
> 
> - de faire parler Alexa pour des retours d'informations ou des notifications
> 
> > **Quelques infos supplémentaires sur les notifications via Alexa**
> >
> > Je n'ai pas encore réussi à envoyer des notifications au format alexa via Home Assistant (allumage de l'echo en jaune, puis on l'interroge en disant "Alexa quelles sont mes notifications?"). Ceci necessiste pour l'instant de passer par une skill qui n'a pas l'air de fonctionner en français. Il y a un [fil sur le forum](https://forum.hacf.fr/t/echo-alexa-activation-des-aureoles/29996), mais pas de progrès depuis...
> > 
> > Tout ce qu'on sait faire (mais c'est déjà pratique) c'est de faire parler Alexa lorsque Home assistant le lui commande. La syntaxe classique pour envoyer un message de notification TTS (text to speech) sur un ou plusieurs echo/echo dot est la suivante:
> > 
> > ```auto
> > service: notify.alexa_media
> > data:
> > message: La machine à laver est terminée
> > target:
> > - media_player.echo_1
> > - media_player.echo_2
> > - media_player.echo_dot_1
> > data:
> > type: tts
> > title: Annonce lavage fini
> > 
> > ```
> > 
> > De plus, on peux personnaliser la façon dont Alexa parle en incluant des balises dans le message lui même. Ceci permet de changer la façon dont Alexa parle sans avoir besoin de faire varier le volume.
> > 
> > > **Comment modifier la façon dont Alexa parle:**
> > >
> > > Désolé pour le lien en anglais, il contient toutes les balises ssml qu'on peut intégrer dans un message tts pour ajouter des effets à Alexa en particulier la prosody et le chuchotage pour le volume. Les possibilités sont très nombreuses, ne pas hésiter à lire [la doc](https://docs.aws.amazon.com/polly/latest/dg/supportedtags.html#prosody-tag): [traduction perso rapide en Français]
> > > 
> > > ```auto
> > > <break> ajouter une pause
> > > <emphasis> mettre en evidence un mot
> > > <lang> specifier la langue d'un mot
> > > <mark> ajouter un tag dans le texte
> > > <p> placer une pause entre paragraphes
> > > <phoneme> utiliser la prononciation phonetique
> > > <prosody> contrôle le volume, le débit et la hauteur de la voix
> > > <s> ajouter une pause entre phrases
> > > <say-as> controle sppécifique de la manière de prononcer un mot
> > > <sub> pour les Acronymes et Abbreviations
> > > <amazon:auto-breaths> ajout de respiration
> > > <amazon:domain name="news"> style journaliste
> > > <amazon:effect phonation="soft"> voix douce
> > > <amazon:effect vocal-tract-length> contrôle du timbre de la voix
> > > <amazon: effect name="whispered"> Chuchotage
> > > 
> > > ```
> > > 
> > > On peut en particulier intégrer des balises ssml dans le texte du message pour changer le volume de la voix (sans toucher au volume de base de l'enceinte) par exemple:
> > > 
> > > ```auto
> > > Quelque fois il peut être utile de <prosody volume="loud"> monter le volume 
> > > pour une partie spécifique de l'annonce.</prosody>  
> > > 
> > > ```
> > 
> > Nous utilisons assez souvent le chuchotage pour des annonces le soir:
> > 
> > ```auto
> > service: notify.alexa_media
> > data:
> > message: >-
> > <amazon:effect name="whispered">La machine à laver est
> > terminée</amazon:effect>
> > target:
> > - media_player.echo_1
> > - media_player.echo_2
> > data:
> > type: tts
> > title: Annonce lavage fini chuchotté
> > 
> > ```
> > 
> > Ca ne change pas le volume pour le reste du temps (si on a de la musique en cours de lecture) ni ne laisse le volume "à fond" ou "au mini" pour la prochaine annonce d'Alexa...
> > 
> > On peut aussi utiliser le type "announce" à la place de "tts" ceci ajoute un petit son avant l'annonce:
> > 
> > ```auto
> > service: notify.alexa_media
> > data:
> > title: "ma sonnette"
> > message: <prosody volume="loud">Il y a du monde à la porte!</prosody> 
> > data: 
> > method: speak
> > type: announce
> > target: 
> > - media_player.echo_1
> > 
> > ```
> 
> - de récupérer des infos issues de vos echo (le capteur de température notamment)
> 
> > **En savoir plus sur les infos remontées**
> >
> > Il faut voir la doc pour avoir la totalité, mais les plus utiles sont:
> > 
> > - vous pourrez avoir des sensor "next\_alarm", "next\_timer" et "next\_reminder" sur vos echo/echo dot
> > - vous pouvez jouer des sons...
> > - si vous sélectionnez l'option "inclure les appareils connectés via echo", vous pourrez :
> > - retrouver et contrôler dans HA les éléments connectés directement au pont zigbee des echo
> > - récupérer le capteur de température des echo et echo dot récentes  
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/5/e/5e479a7572b5c41063122a520267bf9602a22335.png)

2/ Autoriser Alexa à agir sur votre domotique.

> **Deuxième étape qui libère le plein potentiel des echo...**
>
> Pour l'instant nous avons des haut parleur de course, que home assistant peut contrôler. Mais allons un cran plus loin.  
> Pour pouvoir faire de la commande vocale, il faut qu'Alexa puisse agir sur des éléments de Home Assistant pour les piloter... Pour faire ceci, plusieurs solutions:
> 
> - Nous sommes passés par le tuto des Alexiens: [Tutoriel: piloter Home assistant à la voix grace à Alexa](https://www.lesalexiens.fr/domotique/home-assistant-alexa/tutoriel-piloter-home-assistant-a-la-voix-grace-a-alexa/)
> - On peut passer par NabuCasa et la solution Home Assistant cloud.
> - Mais il y a d'autres solutions sur le forum: [[TUTO] intégrer des appareils (On/OFF) à Alexa](https://forum.hacf.fr/t/tuto-integrer-des-appareils-on-off-a-alexa/35213)
> - ou encore le très prometteur pont matter: [Vos devices HA dans Google Home, Alexa ou Apple Home en moins de 5 minutes!](https://forum.hacf.fr/t/vos-devices-ha-dans-google-home-alexa-ou-apple-home-en-moins-de-5-minutes/50093)
> 
> Une fois ceci fait, on dit à Alexa: "Alexa découvre mes appareils" et les entités disponibles dans home assistant deviennent disponible dans l'appli Alexa, comme si celles ci étaient connectées à Alexa directement. Elles apparaissent dans l'application Alexa comme "connecté via Home Assistant".
> 
> Cependant il peut être utile de faire un peu de ménage. Alexa étant plutôt là pour servir d'interface, il n'y a probablement pas intérêt à remonter TOUTES les entités HA dans Alexa (suivant les installations ça monte très vite, chez nous plus de 900 entités...).
> 
> > **Heureusement on peut filtrer ce qui remonte de HA vers Alexa:**
> >
> > Il faut donc ajouter dans le configuration.yaml (ou dans un fichier dédié):
> > 
> > > **exemple du mien:**
> > >
> > > ```auto
> > > # Configuration specifique d'Alexa via Amazon Web Service
> > > alexa:
> > > smart_home:
> > > locale: fr-FR
> > > endpoint: https://api.eu.amazonalexa.com/v3/events
> > > client_id: amzn1.applicationxxxxxxxxxxxx
> > > client_secret: amzn1.xxxxxxxxxxxxxxxxxx
> > >   
> > > # Filtres pour limiter ce qui remonte dans Alexa depuis HA
> > > filter:
> > >     
> > > # inclusion uniquement des entities désirées dans Alexa
> > > # ne pas mettre d'exclude ou alors penser à TOUT exclure
> > >       
> > > include_entities:
> > > #volets: via Tost Box
> > > - cover.piece_de_vie
> > > - cover.salon
> > > - cover.tous_les_volets
> > > - cover.volet_cuisine
> > > - cover.volet_de_la_chambre_de_justine
> > > - cover.volet_de_la_chambre_de_louise
> > > - cover.volet_de_la_chambre_de_thibault
> > > - cover.volet_de_la_mezzanine
> > > - cover.volet_du_bureau
> > > - cover.volet_du_salon_apero
> > > - cover.volet_du_salon_tv
> > >         
> > > #lumières
> > > - light.0x385b44fffe20eb24 # sous escalier
> > > - light.0x84b4dbfffec93621 # mezzanine
> > > - light.0x84ba20fffe4b2581 # petite lampe
> > > - light.ampoule_bureau # bureau
> > > - light.inter_lumiere_garage # garage
> > > - light.inter_lumiere_piscine # piscine
> > > - light.inter_lumiere_terrasse # terrasse
> > > - light.led_chambre # parents
> > > - light.led_cuisine # cuisine
> > > - light.led_justine # justine
> > > - light.led_louise # louise
> > > - light.led_thibault # thibault
> > > - light.prise_cerisier # cerisier
> > > - light.prise_elephants # elephants
> > > - light.prise_lampadaire # lampadaire
> > >         
> > > # Switch presence Alexa
> > > - switch.echo_cuisine_presence
> > > - switch.echo_justine_presence
> > > - switch.echo_louise_presence
> > > - switch.echo_salon_presence
> > > - switch.echo_thibault_presence
> > >         
> > > #Scripts
> > > #-------
> > > # PAC
> > > - script.allumer_chauffage
> > > - script.allumer_climatisation
> > > - script.eteindre_pac
> > >         
> > > # LEDs enfants
> > > - script.arc_en_ciel_justine
> > > - script.disco_justine
> > > - script.car_en_ciel_louise
> > > - script.disco_louise
> > > - script.arc_en_ciel_thibault
> > > - script.disco_thibault
> > > - script.mode_gaming_thibault
> > > 
> > > ```
> > 
> > La manière de configurer les include et exclude est la même que dans le recorder: [Recorder - Home Assistant](https://www.home-assistant.io/integrations/recorder/#configure-filter)  
> > Je conseillerai plutôt de tout exclure et d'ajouter au fur et a mesure les entités utiles (celles dont on va avoir besoin avec Alexa: les entités à piloter, les scripts, peut être quelques sensors...). Chez nous on est a une quarantaines d'entités à remonter (contre \>900 entités au départ...)
> 
> A partir de là on sait piloter depuis Alexa les entités qui remontent de home assistant.
> 
> - soit directement si ce sont des entités que Alexa "comprend" comme des light, des covers, des switchs, etc...
> - soit via des scripts car Alexa interprète les scripts comme des scènes et peut donc activer une scène qui lancera le script HA correspondant. Désormais il est nécessaire de passer par des routines pour activer les scripts... Il faut donc créer une routine qui active la scène (le script HA) "allumer\_chauffage" quand on dit "Alexa allume le chauffage", ou "Alexa lance le chauffage", ou "Alexa démarre le chauffage".

3/ Quelques astuces supplémentaires:

> **Troisième étape pour aller au bout du chemin**
>
> > **Récupérer le capteur de présence à ultrason des echo et echo dot**
> >
> > Alexa Media Player ne peut pas directement récupérer l'info de ce "capteur" de présence. On ne peut donc pas le récupérer directement dans Home assistant. On ne peut que l'utiliser dans une routine Alexa (après avoir autorisé la détection de présence dans l'appli Alexa bien sur...).
> > 
> > Mais en fait on peut contourner ce problème en utilisant les routines d'Alexa pour agir sur des éléments que home assistant pourra détecter (cette logique pourrait être utile pour d'autres éléments qu'on ne saurait pas remonter, depuis des skills par exemple).
> > 
> > Il y a une astuce pour faire ça:  
> > Il faut créer plusieurs entités dans home assistant pour ça:
> > 
> > - un switch (interrupteur) correspondant à chaque capteur
> > - deux routines dans Alexa, une qui allume cet interrupteur quand elle détecte un mouvement, une qui éteint l'interrupteur quand elle ne détecte plus.
> > - et enfin (c'est optionnel, mais pratique) un capteur de présence dans home assistant et un Template qui recopie l'état de l'interrupteur dans le capteur de présence, ce qui permet d'avoir le bon format de données...
> > 
> > Ca marche très bien. J'avais utilisé ça: (lien en anglais) [https://community.home-assistant.io/t/simple-way-to-get-amazon-echo-4th-generation-ultrasound-motion-presence-sensors-into-home-assistant/394058](https://community.home-assistant.io/t/simple-way-to-get-amazon-echo-4th-generation-ultrasound-motion-presence-sensors-into-home-assistant/394058)
> > 
> > On peut suivant le même principe utiliser les routines de detection de bruit (bruit d'eau, pleurs de bébé, etc...) pour créer des capteurs similaires.
> 
> > **Créer des pièces dans l'appli Alexa**
> >
> > Ceci est particulièrement utile si, comme nous, vous avez plusieurs echo dans plusieurs pieces différentes. Il est alors particulièrement intéressant de créer des pièces dans l'appli Alexa, et d'indiquer l'ensemble des éléments pilotables qui s'y trouvent (lumières, switchs, volets) et les Amazon echo qui sont à l'intérieur.  
> > Ainsi lorsqu'on dit "Alexa allume la lumière", elle n'allumera que les lumières de la piece dans laquelle se trouve l'echo qui capte la commande. C'est très naturel.
> 
> > **Une interface pour le media player des echo/echo dot**
> >
> > Je suis très fan de la carte [mini media player](https://github.com/kalkih/mini-media-player) qui est non seulement belle et customisable (apparence, raccourcis, etc...). Mais elle dispose en plus d'un champ tts (Texte à lire) permettant de taper un message d'annonce et l'envoyer sur l'echo associée.  
> > C'est une des raisons pour ma femme d'utiliser le dashboard car elle préfère ça à la commande vocale...
> > 
> > ![image](https://forum.hacf.fr/uploads/default/original/3X/d/0/d04f62d03f5d218559fc910da83263617c4168d5.png)

* * *

**Les chantiers à venir.**

- le suivi energetique des entités non mesurées ([Powercalc](https://github.com/bramstroker/homeassistant-powercalc) - en cours)
- le binding pour avoir du zigbee sans HA/Z2M le cas échéant ([bind zigbee devices directly in Z2M](https://smarthomescene.com/guides/how-to-bind-zigbee-devices-directly-in-zigbee2mqtt/))
- la refonte des notification pour les rendre plus intelligentes
- refaire les notif alexa pour avoir des dialogues ([Alexa actionable notif](https://github.com/keatontaylor/alexa-actions?tab=readme-ov-file))
- trouver une solution qui marche pour domotiser plus de lumières (en particulier des va et vient avec des modules sans neutre...)
- refaire le controle des volets en RTS ([esp-somfy RTS](https://forum.hacf.fr/t/espsomfy-rts-une-autre-solution-pour-la-gestion-de-vos-volets-somfy-rts/27120/17))
- basculer le controle de la clim en local ([en se passant du cloud mitsubishi](https://forum.hacf.fr/t/piloter-sa-pompe-a-chaleur-mitsubishi-en-local-avec-une-sonde-deportee/8544))

---

<div class="post-metadata">

**Author:** ![jerome6994](https://forum.hacf.fr/user_avatar/forum.hacf.fr/jerome6994/32/13064_2.png) [@jerome6994](https://forum.hacf.fr/u/jerome6994)\
**Post date:** [Décembre 8, 2023, 1:20 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/5 "2023-12-08T13:20:07Z")

</div>

Bienvenue sur HACF l’ancien  
😉

Mieux vaut tard que jamais

---

<div class="post-metadata">

**Author:** ![Bobleponge](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/b/f475e1/32.png) [@Bobleponge](https://forum.hacf.fr/u/Bobleponge)\
**Post date:** [Décembre 8, 2023, 2:44 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/6 "2023-12-08T14:44:35Z")

</div>

Bonjour BBE,

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

---

<div class="post-metadata">

**Author:** ![BBE](https://forum.hacf.fr/user_avatar/forum.hacf.fr/bbe/32/64915_2.png) [@BBE](https://forum.hacf.fr/u/BBE)\
**Post date:** [Décembre 8, 2023, 3:09 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/7 "2023-12-08T15:09:52Z")

</div>

La version smartphone:

> **Code**
>
> ```auto
> 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 «&nbsp;aléatoire&nbsp;» des tuiles…)

---

<div class="post-metadata">

**Author:** ![BBE](https://forum.hacf.fr/user_avatar/forum.hacf.fr/bbe/32/64915_2.png) [@BBE](https://forum.hacf.fr/u/BBE)\
**Post date:** [Décembre 8, 2023, 3:10 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/8 "2023-12-08T15:10:12Z")

</div>

Version tablette:

> **code**
>
> ```auto
> 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
> 
> ```

---

<div class="post-metadata">

**Author:** ![GDX2](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/g/3be4f8/32.png) [@GDX2](https://forum.hacf.fr/u/GDX2)\
**Post date:** [Décembre 8, 2023, 5:10 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/9 "2023-12-08T17:10:18Z")

</div>

Salut BBE 😉  
Belle présentation.  
Joli dashboard, bien structuré.  
Merci pour le partage 😃  
@+ Guy

---

<div class="post-metadata">

**Author:** ![Jean-Marc\_Collin](https://forum.hacf.fr/user_avatar/forum.hacf.fr/jean-marc_collin/32/10881_2.png) [@Jean-Marc\_Collin](https://forum.hacf.fr/u/Jean-Marc_Collin)\
**Post date:** [Décembre 8, 2023, 5:29 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/10 "2023-12-08T17:29:11Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![BBE](https://forum.hacf.fr/user_avatar/forum.hacf.fr/bbe/32/64915_2.png) [@BBE](https://forum.hacf.fr/u/BBE)\
**Post date:** [Décembre 9, 2023, 11:10 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/11 "2023-12-09T23:10:48Z")

</div>

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…

---

<div class="post-metadata">

**Author:** ![Bobleponge](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/b/f475e1/32.png) [@Bobleponge](https://forum.hacf.fr/u/Bobleponge)\
**Post date:** [Décembre 11, 2023, 8:29 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/12 "2023-12-11T08:29:07Z")

</div>

Merci beaucoup pour le partage!

---

<div class="post-metadata">

**Author:** ![Corax13](https://forum.hacf.fr/user_avatar/forum.hacf.fr/corax13/32/40222_2.png) [@Corax13](https://forum.hacf.fr/u/Corax13)\
**Post date:** [Décembre 11, 2023, 8:48 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/13 "2023-12-11T08:48:42Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Jeffodilo](https://forum.hacf.fr/user_avatar/forum.hacf.fr/jeffodilo/32/34085_2.png) [@Jeffodilo](https://forum.hacf.fr/u/Jeffodilo)\
**Post date:** [Décembre 11, 2023, 11:23 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/14 "2023-12-11T11:23:22Z")

</div>

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.

 ![IMG_20231211_122003](https://forum.hacf.fr/uploads/default/original/3X/0/3/03930a9f5188f8112ad40b8f1696821144361e26.jpeg)

---

<div class="post-metadata">

**Author:** ![barto\_95](https://forum.hacf.fr/user_avatar/forum.hacf.fr/barto_95/32/172_2.png) [@barto\_95](https://forum.hacf.fr/u/barto_95)\
**Post date:** [Décembre 11, 2023, 11:32 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/15 "2023-12-11T11:32:38Z")

</div>

Bienvenue sur HACF 😉

belle présentation

---

<div class="post-metadata">

**Author:** ![BBE](https://forum.hacf.fr/user_avatar/forum.hacf.fr/bbe/32/64915_2.png) [@BBE](https://forum.hacf.fr/u/BBE)\
**Post date:** [Décembre 11, 2023, 3:16 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/16 "2023-12-11T15:16:34Z")

</div>

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 !

---

<div class="post-metadata">

**Author:** ![cedric1](https://forum.hacf.fr/user_avatar/forum.hacf.fr/cedric1/32/35798_2.png) [@cedric1](https://forum.hacf.fr/u/cedric1)\
**Post date:** [Décembre 13, 2023, 7:16 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/17 "2023-12-13T07:16:56Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![BBE](https://forum.hacf.fr/user_avatar/forum.hacf.fr/bbe/32/64915_2.png) [@BBE](https://forum.hacf.fr/u/BBE)\
**Post date:** [Décembre 13, 2023, 7:58 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/18 "2023-12-13T07:58:05Z")

</div>

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](https://forum.hacf.fr/uploads/default/original/3X/7/b/7b2dd5ccbaa8bee36d1179d03010f430ae81c917.png)

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**
>
> ```auto
> 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](https://forum.hacf.fr/t/presentation-jeff/27057/8)

---

<div class="post-metadata">

**Author:** ![voyagers21](https://forum.hacf.fr/user_avatar/forum.hacf.fr/voyagers21/32/23254_2.png) [@voyagers21](https://forum.hacf.fr/u/voyagers21)\
**Post date:** [Décembre 17, 2023, 4:17 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/19 "2023-12-17T16:17:59Z")

</div>

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!!

---

<div class="post-metadata">

**Author:** ![oli\_34](https://forum.hacf.fr/user_avatar/forum.hacf.fr/oli_34/32/91828_2.png) [@oli\_34](https://forum.hacf.fr/u/oli_34)\
**Post date:** [Décembre 17, 2023, 6:02 UTC](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332/20 "2023-12-17T18:02:54Z")

</div>

Bonjour,  
Google est ton ami avec 2s de recherche

> **[GitHub - Olen/homeassistant-plant: Alternative Plant component of home assistant](https://github.com/Olen/homeassistant-plant)**
>
> Alternative Plant component of home assistant

> **[GitHub - Olen/lovelace-flower-card: Lovelace Flower Card to match the custom plant...](https://github.com/Olen/lovelace-flower-card)**
>
> Lovelace Flower Card to match the custom plant integration

A installer via hacs

[Page suivante](https://forum.hacf.fr/t/presentation-mon-dashboard-bbe/32332.md?page=2)
