<?xml
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Teddy Payet</title>
	<link>https://www.teddypayet.com/</link>
	
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.teddypayet.com/spip.php?id_mot=84&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>Teddy Payet</title>
		<url>https://www.teddypayet.com/local/cache-vignettes/L144xH162/siteon0-84dcb.png?1748259078</url>
		<link>https://www.teddypayet.com/</link>
		<height>162</height>
		<width>144</width>
	</image>

                    

<item xml:lang="fr">
		<title>20 ans de blogging technique : ce que j'ai appris</title>
		<link>https://www.teddypayet.com/20-ans-de-blogging-technique-ce-que-j-ai-appris</link>
		<guid isPermaLink="true">https://www.teddypayet.com/20-ans-de-blogging-technique-ce-que-j-ai-appris</guid>
		<dc:date>2025-08-16T12:29:48Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>SPIP</dc:subject>
		<dc:subject>Notes de d&#233;veloppement</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>

		<description>
&lt;p&gt;Depuis 2009, ce blog m'accompagne comme un carnet de route technique. De SPIP aux lignes de commande, des astuces de d&#233;veloppement aux projets domotiques, j'y ai consign&#233; mes d&#233;couvertes, mes erreurs et mes progr&#232;s. Quinze ans plus tard, je prends un peu de recul pour partager ce que cette aventure d'&#233;criture m'a appris : documenter pour soi, transmettre aux autres et laisser une trace vivante d'un parcours de d&#233;veloppeur qui &#233;volue. &lt;br class='autobr' /&gt; Un chemin commenc&#233; en 2009 Mon tout premier article de (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/SPIP" rel="tag"&gt;SPIP&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Notes-de-developpement" rel="tag"&gt;Notes de d&#233;veloppement&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/MagicMirror" rel="tag"&gt;MagicMirror&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH113/nick-morrison-fhnnjk1yj7y-unsplash-531fa.jpg?1755599632' class='spip_logo spip_logo_right' width='150' height='113' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Depuis 2009, ce blog m'accompagne comme un carnet de route technique. De SPIP aux lignes de commande, des astuces de d&#233;veloppement aux projets domotiques, j'y ai consign&#233; mes d&#233;couvertes, mes erreurs et mes progr&#232;s. Quinze ans plus tard, je prends un peu de recul pour partager ce que cette aventure d'&#233;criture m'a appris : documenter pour soi, transmettre aux autres et laisser une trace vivante d'un parcours de d&#233;veloppeur qui &#233;volue.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Un chemin commenc&#233; en 2009&lt;/h2&gt;
&lt;p&gt;Mon tout premier article de la rubrique Blog, publi&#233; en d&#233;cembre 2009, portait sur &lt;a href='https://www.teddypayet.com/Appliquer-un-filtre-image_typo' class=&#034;spip_in&#034;&gt;un filtre graphique dans SPIP&lt;/a&gt; : un petit bout de code, rien de plus. &#192; ce moment-l&#224;, je n'avais pas de plan &#233;ditorial ni d'ambition particuli&#232;re. J'&#233;crivais pour ne pas oublier, pour garder une trace de mes exp&#233;rimentations. Avec le temps, ces notes &#233;parses sont devenues un journal technique &#224; part enti&#232;re, un espace vivant o&#249; se m&#234;lent astuces rapides, r&#233;flexions plus construites et d&#233;couvertes au fil de mes projets.&lt;br class='autobr' /&gt;
En revenant sur quinze ann&#233;es de publications, je r&#233;alise que ce blog a suivi le m&#234;me rythme que ma propre &#233;volution. Il a connu des p&#233;riodes d'intense activit&#233;, des creux in&#233;vitables, mais toujours cette constance : revenir &#233;crire quand une id&#233;e, un probl&#232;me ou une solution m&#233;ritaient d'&#234;tre partag&#233;s.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les grandes p&#233;riodes de mon blog&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;2009&#8211;2013 : Les fondations techniques&lt;/strong&gt;&lt;br class='autobr' /&gt;
Lorsque j'ai ouvert la rubrique &lt;a href='https://www.teddypayet.com/Blog' class=&#034;spip_in&#034;&gt;Blog&lt;/a&gt;, je ne pensais pas vraiment &#224; construire une ligne &#233;ditoriale. J'&#233;crivais surtout pour moi, afin de conserver quelque part les petits bouts de code et les astuces que je d&#233;couvrais. SPIP occupait une place centrale dans mes exp&#233;rimentations. J'y testais les filtres, les boucles, les fa&#231;ons d'am&#233;liorer l'affichage ou d'optimiser mes squelettes. Beaucoup de mes articles de cette p&#233;riode sont courts, pr&#233;cis, et volontairement tr&#232;s pratiques. Ils refl&#232;tent un quotidien de d&#233;veloppeur-int&#233;grateur en construction, avide de solutions concr&#232;tes.&lt;/p&gt;
&lt;p&gt;Ce foisonnement technique a constitu&#233; une v&#233;ritable fondation. Non seulement il m'a permis d'apprendre plus vite en formalisant mes d&#233;couvertes, mais il m'a aussi donn&#233; un sentiment d'appartenance &#224; une communaut&#233; plus large. Chaque billet publi&#233; devenait une petite pierre ajout&#233;e &#224; l'&#233;difice collectif du web libre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2014&#8211;2018 : Moins de volume, plus de sp&#233;cialisation&lt;/strong&gt;&lt;br class='autobr' /&gt;
Apr&#232;s cette p&#233;riode d'intense production, le rythme s'est ralenti. Les ann&#233;es 2014 &#224; 2018 ne comptent qu'une poign&#233;e d'articles, mais ceux-ci sont plus cibl&#233;s. Je n'avais plus besoin de consigner chaque manipulation, chaque filtre ou chaque commande. Mon blog a pris une autre fonction : celle de m&#233;moire technique. J'y revenais surtout quand une solution m&#233;ritait vraiment d'&#234;tre fix&#233;e, ou lorsqu'un sujet demandait un peu plus de recul.&lt;/p&gt;
&lt;p&gt;On y voit appara&#238;tre de nouveaux th&#232;mes, notamment l'industrialisation du d&#233;veloppement avec l'arriv&#233;e de Git, mais aussi des r&#233;flexions plus transverses sur l'organisation de mes projets. Cette p&#233;riode marque un passage de l'accumulation de notes &#224; une s&#233;lection plus rigoureuse de ce que je jugeais utile de partager. Il m'arrivait parfois de rassembler un ensemble de r&#233;f&#233;rences, d'articles, de tuto dans un seul et m&#234;me article sur mon blog. En effet, quand on rencontre une difficult&#233; dans un d&#233;veloppement, on regarde les solutions sur Stack Overflow, ou toute autre source. La solution n'&#233;tait pas syst&#233;matiquement dans la m&#234;me source mais au sein de plusieurs. Au lieu de m'arracher les cheveux plus tard &#224; refaire ce parcours, je mettais tout &#231;a dans un article.&lt;/p&gt;
&lt;p&gt;L'article &#034;&lt;a href='https://www.teddypayet.com/Petits-reglages-pour-symfony-sous-Mac-OSX' class=&#034;spip_in&#034;&gt;Petits r&#233;glages pour symfony sous Mac OSX&lt;/a&gt;&#034; est un exemple concret de cela. Lors de ma formation en tant que d&#233;veloppeur multim&#233;dia, j'apprenais le d&#233;veloppement avec Symfony (pfiuuuu la v2 !) et on devait faire un r&#233;glage particulier. 5 ans apr&#232;s sa mise en ligne, je recevais encore des remerciements de personnes qui avaient rencontr&#233; le m&#234;me probl&#232;me !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2019&#8211;2021 : Relances ponctuelles&lt;/strong&gt;&lt;br class='autobr' /&gt;
Le blog conna&#238;t ensuite une phase plus irr&#233;guli&#232;re. Quelques articles apparaissent, souvent li&#233;s &#224; mes outils du quotidien. J'&#233;cris sur VSCode, sur Git, sur des pratiques de d&#233;veloppement qui se sont impos&#233;es au fil des ann&#233;es. Le blog devient alors une sorte de miroir de mon environnement de travail. Je ne publie pas souvent, mais chaque article porte une trace claire de ce que j'utilise r&#233;ellement. Je ne cherche pas &#224; faire comme les autres : des articles &#224; la mode. Certes, le blog ici pr&#233;sent est professionnel, ce n'est pas un journal personnel mais on y ressent toutefois mon &#233;volution.&lt;/p&gt;
&lt;p&gt;C'est une p&#233;riode o&#249; je ne cherche pas &#224; maintenir un rythme de publication. Je laisse venir les sujets. Je pr&#233;f&#232;re la qualit&#233; &#224; la quantit&#233;, quitte &#224; publier rarement. Ces articles isol&#233;s marquent pourtant des jalons importants de mon &#233;volution professionnelle, puisqu'ils correspondent &#224; une transition dans mes outils et mes m&#233;thodes. Cette p&#233;riode a &#233;t&#233; pour tout le monde incertaine... &#224; cause du COVID. &#201;tant confin&#233;, nous avions du temps, j'avais du temps. Je me suis mis &#224; la domotique et j'ai jet&#233; sur le papier (num&#233;rique) mes pas &#224; pas pour la mise en place de ma domotique avec &lt;a href=&#034;https://magicmirror.builders/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MagicMirror2&lt;/a&gt;. Mais cela a &#233;t&#233;, comme pour beaucoup, une p&#233;riode de remise en question...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2022&#8211;2025 : Renaissance et diversification&lt;/strong&gt;&lt;br class='autobr' /&gt;
&#192; partir de 2022, et plus encore en 2024, une nouvelle dynamique s'installe. Le blog reprend vie avec des sujets qui d&#233;passent le seul cadre du d&#233;veloppement web. La domotique devient un fil rouge, avec Home Assistant et MagicMirror comme terrains d'exploration privil&#233;gi&#233;s. J'y raconte mes sc&#233;narios, mes tableaux de bord, mes exp&#233;riences d'automatisation. Ces articles sont souvent plus narratifs, plus proches de mon quotidien, tout en restant tr&#232;s techniques.&lt;/p&gt;
&lt;p&gt;Cette renaissance ne signifie pas un abandon de SPIP. Au contraire, SPIP reste pr&#233;sent comme une base solide, mais il cohabite d&#233;sormais avec d'autres univers. Le blog devient le lieu o&#249; je croise mes comp&#233;tences de d&#233;veloppeur web avec mes envies d'exp&#233;rimenter dans la maison connect&#233;e. On y sent une maturit&#233; nouvelle : je n'&#233;cris plus seulement pour garder une trace, mais aussi pour transmettre une vision, pour relier mes savoir-faire &#224; des usages concrets qui parlent &#224; d'autres.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Ce que j'ai appris en 15 ans de blogging technique&lt;/h2&gt;
&lt;p&gt;Au d&#233;but, j'&#233;crivais sans autre intention que de me cr&#233;er une m&#233;moire technique. Une astuce not&#233;e, un filtre document&#233;, et je savais que je pourrais y revenir sans perdre du temps.&lt;/p&gt;
&lt;p&gt;Puis j'ai d&#233;couvert que ces articles servaient aussi &#224; d'autres.&lt;/p&gt;
&lt;p&gt;Avec le temps, j'ai vu mes th&#233;matiques &#233;voluer. D'abord centr&#233;es sur SPIP, elles se sont &#233;largies vers le PHP, les outils de d&#233;veloppement, puis la domotique et Home Assistant. Ce mouvement naturel a fait du blog un miroir de mes pratiques r&#233;elles. Il illustre le fait qu'un blog n'est pas fig&#233; : il vit, se transforme, et accompagne son auteur dans ses propres changements. Cette libert&#233; d'&#233;volution est ce qui l'a maintenu pertinent pour moi comme pour mes lecteurs.&lt;/p&gt;
&lt;p&gt;L'&#233;criture elle-m&#234;me a &#233;t&#233; une &#233;cole. Pour publier un article, m&#234;me court, il faut organiser ses id&#233;es, clarifier un raisonnement, trouver des mots justes. Ce travail m'a appris &#224; mieux expliquer, &#224; vulgariser, &#224; rendre mes pratiques compr&#233;hensibles. Cette comp&#233;tence, acquise peu &#224; peu, d&#233;passe largement le cadre du blog et rejaillit sur ma mani&#232;re de collaborer.&lt;/p&gt;
&lt;p&gt;Il m'a aussi fallu apprivoiser l'irr&#233;gularit&#233;. Certaines ann&#233;es foisonnent d'articles, d'autres sont plus creuses. J'ai longtemps per&#231;u ces silences comme des manques, avant de comprendre qu'ils faisaient partie du rythme. Un blog ne se mesure pas &#224; la fr&#233;quence hebdomadaire ou mensuelle, mais &#224; la continuit&#233; sur le long terme. Chaque retour d'&#233;criture enrichit le fil, m&#234;me apr&#232;s une pause.&lt;/p&gt;
&lt;p&gt;Enfin, il y a l'impact professionnel. Le blog m'a donn&#233; une visibilit&#233; dans la communaut&#233; SPIP, renforc&#233; mon image de d&#233;veloppeur partageur, et laiss&#233; des traces concr&#232;tes de mon &#233;volution. Mais le b&#233;n&#233;fice le plus profond reste personnel : voir s'accumuler ces fragments de m&#233;moire, ann&#233;e apr&#232;s ann&#233;e, et sentir que j'ai b&#226;ti une archive vivante de mon propre chemin.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les d&#233;fis rencontr&#233;s&lt;/h2&gt;
&lt;p&gt;Le premier d&#233;fi a &#233;t&#233; la r&#233;gularit&#233;. Publier sur un blog demande une constance qui se heurte tr&#232;s vite aux contraintes de la vie professionnelle et personnelle. J'ai connu des ann&#233;es de forte activit&#233;, o&#249; j'encha&#238;nais les articles presque naturellement, port&#233; par mes d&#233;couvertes et mon enthousiasme. Mais j'ai aussi travers&#233; des p&#233;riodes beaucoup plus silencieuses, o&#249; l'envie d'&#233;crire ne trouvait pas sa place dans un quotidien charg&#233;. Le d&#233;fi n'&#233;tait pas seulement de trouver le temps, mais surtout de garder la flamme. &#192; chaque pause, je me suis demand&#233; si je reviendrais. Et chaque fois, j'ai fini par rouvrir l'&#233;diteur et recommencer, preuve que l'&#233;criture &#233;tait devenue pour moi une habitude de fond, une discipline ancr&#233;e au-del&#224; des al&#233;as.&lt;/p&gt;
&lt;p&gt;Un autre d&#233;fi important a &#233;t&#233; l'adaptation aux &#233;volutions techniques. Entre 2009 et 2025, les outils ont radicalement chang&#233;. J'ai commenc&#233; &#224; &#233;crire dans un contexte domin&#233; par SPIP, le PHP artisanal et des feuilles de style construites &#224; la main. Puis il a fallu int&#233;grer Git, comprendre les frameworks, apprivoiser les environnements modernes, et plus r&#233;cemment m'ouvrir &#224; la domotique. Chaque saut technologique m'a oblig&#233; &#224; r&#233;inventer mes sujets, &#224; revoir ma fa&#231;on de pr&#233;senter les choses. Ce n'&#233;tait pas seulement une mise &#224; jour technique, mais aussi un effort d'&#233;criture : comment expliquer autrement, avec des mots simples, des r&#233;alit&#233;s devenues plus complexes.&lt;/p&gt;
&lt;p&gt;Le blog a aussi rencontr&#233; ses limites en termes de visibilit&#233;. &#192; une &#233;poque o&#249; les r&#233;seaux sociaux ont pris une place &#233;norme, il peut sembler plus simple de poster une solution sur Twitter, Mastodon ou un forum que de r&#233;diger un article complet. Tenir un blog suppose de r&#233;sister &#224; cette tendance, de garder l'ambition d'un espace autonome, qui ne se dilue pas dans le flux &#233;ph&#233;m&#232;re.&lt;/p&gt;
&lt;p&gt;Un autre d&#233;fi a &#233;t&#233; l'&#233;quilibre entre notes personnelles et contenu utile aux autres. &#201;crire pour soi est simple, mais &#233;crire pour &#234;tre lu impose un effort suppl&#233;mentaire.&lt;/p&gt;
&lt;p&gt;Il y a aussi le d&#233;fi de la motivation, parfois &#233;mouss&#233;e apr&#232;s des ann&#233;es de publication.&lt;/p&gt;
&lt;p&gt;Enfin, il y a le doute, toujours pr&#233;sent : est-ce que ce que j'&#233;cris est pertinent ?&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Ce que je referais diff&#233;remment&lt;/h2&gt;
&lt;p&gt;Avec le recul, il y a des choix que j'aurais pu affiner d&#232;s le d&#233;part. Par exemple, poser une ligne &#233;ditoriale plus claire entre mes notes brutes et mes articles construits.&lt;/p&gt;
&lt;p&gt;J'aurais aussi aim&#233; organiser plus rigoureusement les mots-cl&#233;s et les cat&#233;gories. Cela m'aurait permis d'exploiter pleinement l'indexation et de faciliter la navigation pour mes lecteurs. De petites d&#233;cisions prises t&#244;t peuvent avoir un grand impact sur la structure d'un blog.&lt;/p&gt;
&lt;p&gt;Un autre point concerne la diversit&#233; des sujets. La domotique, par exemple, m'a s&#233;duit bien avant 2020 gr&#226;ce aux contenus DIY et aux cha&#238;nes Youtube que je suivais. Pourtant, je n'ai trouv&#233; un cadre concret pour l'appliquer qu'&#224; partir de cette date, dans mon quotidien &#224; la maison. J'aurais pu en parler plus t&#244;t, ne serait-ce que sous forme de veille ou de d&#233;couvertes, m&#234;me si ce domaine reste pour moi personnel et en dehors de toute sph&#232;re professionnelle.&lt;/p&gt;
&lt;p&gt;Il y a &#233;galement la question du ton. J'aurais pu oser davantage un style personnel, en assumant la part de r&#233;cit qui rend certains billets plus vivants. La technique pure est utile, mais les anecdotes et le contexte donnent souvent une valeur suppl&#233;mentaire.&lt;/p&gt;
&lt;p&gt;Enfin, si c'&#233;tait &#224; refaire, je travaillerais davantage sur la mise en valeur visuelle de mes articles. Non pas pour rechercher l'effet esth&#233;tique, mais pour accompagner la lecture, donner des points d'appui, et rendre mes contenus plus accessibles dans la dur&#233;e.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Conclusion : pourquoi continuer en 2025&lt;/h2&gt;
&lt;p&gt;&#201;crire reste n&#233;cessaire.&lt;/p&gt;
&lt;p&gt;Un billet, m&#234;me simple, peut encore trouver son utilit&#233;. Un blog vieillit bien mieux que les r&#233;seaux sociaux. Et il conserve une force que l'instantan&#233; ne peut pas offrir.&lt;/p&gt;
&lt;p&gt;Continuer en 2025, c'est d'abord prolonger une habitude. Mais c'est aussi r&#233;affirmer un choix : celui d'un espace ind&#233;pendant, o&#249; je d&#233;cide du rythme, des sujets, du ton. Je ne cherche pas la course &#224; l'audience, mais la coh&#233;rence d'un journal technique qui suit son auteur sur la dur&#233;e. Un blog n'a pas besoin d'&#234;tre bruyant pour &#234;tre utile.&lt;/p&gt;
&lt;p&gt;Chaque article publi&#233; est une brique ajout&#233;e &#224; un &#233;difice qui se construit lentement. Certains articles restent des notes rapides, d'autres deviennent des rep&#232;res durables. Et parfois, un billet &#233;crit presque pour moi se r&#233;v&#232;le pr&#233;cieux pour d'autres, plusieurs ann&#233;es apr&#232;s. C'est ce d&#233;calage temporel qui fait la richesse du blogging. La valeur d'un article ne se mesure pas au nombre de vues le lendemain de sa parution, mais &#224; sa capacit&#233; &#224; rester utile dans le temps.&lt;/p&gt;
&lt;p&gt;En 2025, j'ai envie de continuer pour plusieurs raisons. Parce que j'apprends toujours en &#233;crivant. Parce que j'&#233;prouve du plaisir &#224; relire mes propres archives et &#224; y voir mon chemin. Parce que je sais que ce blog n'est pas seulement mon aide-m&#233;moire, mais aussi un pont tendu vers ceux qui passent par les m&#234;mes questions techniques. Parce qu'il m'offre un espace de libert&#233;, loin des formats contraints des plateformes. Parce que la r&#233;gularit&#233; imparfaite de mes publications n'a jamais &#233;t&#233; un frein, mais plut&#244;t la preuve qu'il accompagne ma vie, telle qu'elle est. Parce que la transmission fait partie de ma fa&#231;on de travailler et de partager. Parce qu'un billet bien construit vit longtemps et continue de voyager tout seul. Parce que dans ce blog, je retrouve &#224; la fois un miroir, une trace et un terrain d'exp&#233;rimentation. Et parce que, tout simplement, je ne pourrais pas vraiment arr&#234;ter d'&#233;crire, tant c'est devenu une habitude ancr&#233;e.&lt;/p&gt;
&lt;p&gt;Je suis aussi une personne c&#233;r&#233;brale. J'aurais mille sujets personnels &#224; explorer, sur ma vision de la vie ou sur le d&#233;veloppement personnel, sans pr&#233;tendre donner de le&#231;ons, simplement pour exprimer ce que je suis. Mais j'ai choisi de garder ce site et sa rubrique blog dans une dimension technique et professionnelle. Peut-&#234;tre qu'un jour, j'ouvrirai un autre espace, d&#233;di&#233; au d&#233;veloppement personnel. Ici n'est pas le lieu que j'ai retenu pour cela.&lt;/p&gt;
&lt;p&gt;&#201;crire, encore et encore, m&#234;me sans obligation, m&#234;me sans calendrier fixe, reste une mani&#232;re de relier mon pr&#233;sent &#224; mon pass&#233; et d'ouvrir la porte &#224; l'avenir.&lt;/p&gt;
&lt;p&gt;Au plaisir de d&#233;couvrir vos retours, vos histoires et d'&#233;changer autour de ces parcours partag&#233;s.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Photo de &lt;a href=&#034;https://unsplash.com/fr/@nickmorrison?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash&#034;&gt;Nick Morrison&lt;/a&gt; sur &lt;a href=&#034;https://unsplash.com/fr/photos/macbook-pro-near-white-open-book-FHnnjk1Yj7Y?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash&#034;&gt;Unsplash&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Magic Mirror avec Home Assistant, pour aller plus loin&#8230;</title>
		<link>https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin</link>
		<guid isPermaLink="true">https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin</guid>
		<dc:date>2025-06-14T06:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Personnel</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>
		<dc:subject>VSCode</dc:subject>

		<description>
&lt;p&gt;Cette s&#233;rie d'articles vous a permis de suivre &#233;tape par &#233;tape la cr&#233;ation de mon Magic Mirror domotique, pilot&#233; par Home Assistant : un tableau de bord mural affichant l'heure, la m&#233;t&#233;o, les calendriers, la pr&#233;sence des membres de la famille, les temp&#233;ratures de la maison, ou encore la phase lunaire. &lt;br class='autobr' /&gt;
Mais le projet ne s'arr&#234;te pas l&#224;. Le v&#233;ritable pouvoir de Home Assistant r&#233;side dans sa capacit&#233; &#224; s'adapter. Voici donc quelques id&#233;es concr&#232;tes pour am&#233;liorer, &#233;tendre ou personnaliser (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/Personnel" rel="tag"&gt;Personnel&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/MagicMirror" rel="tag"&gt;MagicMirror&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/VSCode" rel="tag"&gt;VSCode&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH100/jakub-zerdzicki-9pwleza-rgc-unsplash-33c3a.jpg?1749883345' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Cette s&#233;rie d'articles vous a permis de suivre &#233;tape par &#233;tape la cr&#233;ation de mon &lt;strong&gt;Magic Mirror domotique,&lt;/strong&gt; pilot&#233; par Home Assistant : un tableau de bord mural affichant l'heure, la m&#233;t&#233;o, les calendriers, la pr&#233;sence des membres de la famille, les temp&#233;ratures de la maison, ou encore la phase lunaire.&lt;/p&gt;
&lt;p&gt;Mais le projet ne s'arr&#234;te pas l&#224;. Le v&#233;ritable pouvoir de Home Assistant r&#233;side dans sa capacit&#233; &#224; s'adapter. Voici donc quelques &lt;strong&gt;id&#233;es concr&#232;tes pour am&#233;liorer, &#233;tendre ou personnaliser encore plus&lt;/strong&gt; votre Magic Mirror.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;&#128368;&#65039; 1. Affichage contextuel selon l'heure de la journ&#233;e&lt;/h2&gt;
&lt;p&gt;Au lieu d'une simple rotation fixe entre les pages, vous pouvez afficher des vues diff&#233;rentes en fonction du moment de la journ&#233;e :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Le matin (6h&#8211;10h) : &lt;strong&gt;calendriers et m&#233;t&#233;o&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; L'apr&#232;s-midi : &lt;strong&gt;temp&#233;ratures et phase lunaire&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; Le soir : &lt;strong&gt;rappel de la routine / compliments&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Cela se fait via une automatisation Home Assistant combinant &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;browser_mod.navigate&lt;/code&gt; et une condition horaire :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;condition: &#034;{{ now().hour &lt; 10 }}&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;&#129485;&#8205;&#9794;&#65039; 2. Affichage bas&#233; sur la pr&#233;sence&lt;/h2&gt;
&lt;p&gt;Pourquoi ne pas adapter l'affichage selon &lt;strong&gt;qui est &#224; la maison ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Exemples :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Si seul l'un des enfants est pr&#233;sent, afficher uniquement son agenda.&lt;/li&gt;&lt;li&gt; Si la maison est vide, afficher une animation ou un &#233;cran de veille.&lt;/li&gt;&lt;li&gt; Si un invit&#233; est d&#233;tect&#233; (mode invit&#233;), d&#233;sactiver la rotation.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Tout cela est possible via les entit&#233;s &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;person.*&lt;/code&gt;, ou les capteurs de pr&#233;sence (Bluetooth, Wi-Fi, etc.).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;&#128172; 3. Affichage de messages personnalis&#233;s&lt;/h2&gt;
&lt;p&gt;L'entit&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;input_text.compliments&lt;/code&gt; utilis&#233;e pour les compliments peut &#234;tre d&#233;tourn&#233;e pour afficher :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; des &lt;strong&gt;messages contextuels&lt;/strong&gt; (&#034;Bonne journ&#233;e Salom&#233; !&#034;, &#034;Rendez-vous m&#233;dical &#224; 14h&#034;),&lt;/li&gt;&lt;li&gt; des &lt;strong&gt;alertes m&#233;t&#233;o ou pollution,&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; des &lt;strong&gt;rappels d'organisation familiale.&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Automatisations possibles :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;- alias: Message anniversaire trigger: - platform: time at: &#034;07:30:00&#034; condition: - condition: template value_template: &#034;{{ now().date() == states('sensor.birthday_today') }}&#034; action: - service: input_text.set_value data: entity_id: input_text.compliments value: &#034;Joyeux anniversaire, Johan ! &#127881;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;&#127760; 4. Flux d'actualit&#233;s ou d'informations publiques&lt;/h2&gt;
&lt;p&gt;Si vous souhaitez enrichir votre affichage avec des contenus ext&#233;rieurs :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Flux RSS d'actualit&#233; locale ou nationale (via &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rss_feed&lt;/code&gt;)&lt;/li&gt;&lt;li&gt; Affichage du trafic routier (via Waze ou Google Maps)&lt;/li&gt;&lt;li&gt; Infos sur les jours de gr&#232;ve ou alertes publiques&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ces contenus peuvent &#234;tre affich&#233;s sous forme de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;markdown&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;custom:text-element&lt;/code&gt;, ou m&#234;me via une iframe d&#233;di&#233;e.&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;J'avoue que je n'ai pas trouv&#233; un affichage qui me plaise esth&#233;tiquement pour le RSS feed. Les solutions que je trouvais &#233;taient pour l'affichage d'un tableau alors que je veux un surtitre (le nom de la source et la date relative de la news), le titre de l'article de news. Un &#224; la fois, pas tout en bloc. &#201;pur&#233;&#8230;&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;spip&#034;&gt;&#127777;&#65039; 5. Capteurs personnalis&#233;s via MQTT&lt;/h2&gt;
&lt;p&gt;Si vous &#234;tes &#233;quip&#233; de capteurs maison (ESPHome, Tasmota&#8230;), vous pouvez :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Ajouter des &lt;strong&gt;donn&#233;es m&#233;t&#233;o ultra-locales&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; Suivre l'&lt;strong&gt;humidit&#233; du salon&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; Afficher la &lt;strong&gt;qualit&#233; de l'air int&#233;rieur&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Home Assistant est pleinement compatible avec MQTT, ce qui permet d'exploiter toutes vos donn&#233;es dans le Magic Mirror.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;&#128272; 6. Mode veille et s&#233;curit&#233;&lt;/h2&gt;
&lt;p&gt;Un &#233;cran allum&#233; en permanence peut &#234;tre une g&#234;ne ou une perte d'&#233;nergie. Voici quelques id&#233;es :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;&#201;teindre l'&#233;cran&lt;/strong&gt; la nuit ou en absence prolong&#233;e (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;xrandr&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vcgencmd&lt;/code&gt;, ou via une prise connect&#233;e)&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Verrouiller l'acc&#232;s &#224; certaines pages&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; Ajouter un &lt;strong&gt;mode veille doux&lt;/strong&gt; (horloge simple, fond noir)&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;&#129514; Et au-del&#224;&#8230;&lt;/h2&gt;
&lt;p&gt;Le Magic Mirror peut aussi servir de :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Tableau d'affichage dans une entr&#233;e d'immeuble&lt;/li&gt;&lt;li&gt; Tableau de bord d'atelier ou d'entreprise&lt;/li&gt;&lt;li&gt; &#201;cran d'accueil pour une salle d'attente&lt;/li&gt;&lt;li&gt; Support p&#233;dagogique dans une &#233;cole&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;La seule limite ? L'imagination. Et la &lt;strong&gt;RAM du Raspberry Pi&lt;/strong&gt; &#128516;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Merci pour votre lecture !&lt;/h2&gt;
&lt;p&gt;Cette s&#233;rie est n&#233;e d'un simple partage d'&#233;cran sur un groupe Home Assistant, et vous &#234;tes quelques uns &#224; avoir manifest&#233; votre curiosit&#233;. J'esp&#232;re qu'elle vous aura inspir&#233; &#224; cr&#233;er, personnaliser et faire vivre vos propres interfaces. Je me suis aid&#233; aussi d'une IA g&#233;n&#233;rative pour cr&#233;er rapidement cette s&#233;rie d'articles. J'ai modifi&#233; des &#233;l&#233;ments pour rester conformes &#224; mon id&#233;e et mon &#233;criture.&lt;/p&gt;
&lt;p&gt;Si vous avez des questions ou souhaitez partager vos cr&#233;ations, n'h&#233;sitez pas &#224; me contacter via mon site.&lt;/p&gt;
&lt;p&gt;&#192; tr&#232;s bient&#244;t, et bonne domotique &#224; vous &#128640;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;strong&gt;Magic Mirror avec Home Assistant&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror' class=&#034;spip_in&#034;&gt;Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant' class=&#034;spip_in&#034;&gt;Installer et configurer HACS pour enrichir Home Assistant&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Construire les pages Lovelace du Magic Mirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2' class=&#034;spip_in&#034;&gt;Calendriers, routines et organisation familiale (Page 2)&lt;/a&gt; (10 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3' class=&#034;spip_in&#034;&gt;Suivi de l'environnement et bien-&#234;tre (Page 3)&lt;/a&gt; (11 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Automatiser la rotation des pages du Magic Mirror&lt;/a&gt; (12 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod' class=&#034;spip_in&#034;&gt;Personnalisation et astuces d'affichage avec card_mod&lt;/a&gt; (13 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin' class=&#034;spip_in&#034;&gt;Magic Mirror avec Home Assistant, pour aller plus loin&#8230;&lt;/a&gt; (14 juin)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Personnalisation et astuces d'affichage avec card_mod</title>
		<link>https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod</link>
		<guid isPermaLink="true">https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod</guid>
		<dc:date>2025-06-13T07:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Personnel</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>
		<dc:subject>VSCode</dc:subject>

		<description>
&lt;p&gt;Une fois le contenu en place et la rotation automatique entre les pages configur&#233;e, il est temps de passer &#224; la touche finale : la pr&#233;sentation visuelle. Car un tableau de bord mural n'est pas qu'un assemblage de cartes, c'est aussi une interface con&#231;ue pour &#234;tre lue &#224; distance, agr&#233;able &#224; l'&#339;il et coh&#233;rente. &lt;br class='autobr' /&gt;
Dans cet article, je te montre comment j'ai utilis&#233; card_mod, un outil incontournable pour transformer visuellement mes vues Lovelace, et je partage plusieurs astuces pour cr&#233;er un (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/Personnel" rel="tag"&gt;Personnel&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/MagicMirror" rel="tag"&gt;MagicMirror&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/VSCode" rel="tag"&gt;VSCode&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH100/kobu-agency-iparhaxetrk-unsplash-e04f4.jpg?1749799097' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Une fois le contenu en place et la rotation automatique entre les pages configur&#233;e, il est temps de &lt;strong&gt;passer &#224; la touche finale :&lt;/strong&gt; la pr&#233;sentation visuelle. Car un tableau de bord mural n'est pas qu'un assemblage de cartes, c'est aussi une &lt;strong&gt;interface con&#231;ue pour &#234;tre lue &#224; distance,&lt;/strong&gt; agr&#233;able &#224; l'&#339;il et coh&#233;rente.&lt;/p&gt;
&lt;p&gt;Dans cet article, je te montre comment j'ai utilis&#233; `card_mod, un outil incontournable pour transformer visuellement mes vues Lovelace, et je partage plusieurs astuces pour cr&#233;er un affichage propre, lisible, et harmonieux.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Pourquoi card_mod est indispensable&lt;/h2&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;card_mod&lt;/code&gt; permet de &lt;strong&gt;modifier le style CSS&lt;/strong&gt; de n'importe quelle carte dans Home Assistant Lovelace. Cela inclut :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; la taille et le style des polices,&lt;/li&gt;&lt;li&gt; la gestion des marges et espacements,&lt;/li&gt;&lt;li&gt; la suppression des bordures ou des arri&#232;re-plans,&lt;/li&gt;&lt;li&gt; l'alignement du texte,&lt;/li&gt;&lt;li&gt; l'opacit&#233; et la hi&#233;rarchie visuelle.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;C'est &lt;strong&gt;la couche de vernis&lt;/strong&gt; qui fait passer un dashboard de &#034;fonctionnel&#034; &#224; &#034;fluide et &#233;l&#233;gant&#034;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Quelques principes visuels appliqu&#233;s &#224; mon Magic Mirror&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&#9989; 1. Suppression des bordures&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, les cartes Lovelace ont une bordure et un fond l&#233;g&#232;rement gris. Sur un &#233;cran mural sombre, cela cr&#233;e un effet de &#034;bo&#238;te empil&#233;e&#034; peu harmonieux. J'ai donc syst&#233;matiquement supprim&#233; bordures et fonds :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;card_mod: style: | ha-card { border: none !important; background: transparent !important; box-shadow: none !important; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;&#9989; 2. Taille des polices adapt&#233;e &#224; la distance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un miroir connect&#233; est &lt;strong&gt;lu &#224; 1 &#224; 2 m&#232;tres,&lt;/strong&gt; voire plus. J'ai donc augment&#233; les polices selon l'importance :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;5rem&lt;/code&gt; pour l'heure ou la temp&#233;rature du jour,&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;2rem&lt;/code&gt; &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;2.5rem&lt;/code&gt; pour les titres ou les &#233;l&#233;ments secondaires,&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;1.4rem&lt;/code&gt; minimum pour tous les textes (&#233;v&#233;nements, entit&#233;s, l&#233;gendes).&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;card_mod: style: | * { font-size: 1.43rem; } .name { font-size: 1.75rem; opacity: 0.6; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;&#9989; 3. Mise en page verticale et alignements&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sur certaines cartes comme la m&#233;t&#233;o, j'ai r&#233;organis&#233; les &#233;l&#233;ments horizontalement ou verticalement selon leur nature, &#224; l'aide de flexbox ou grid :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;css&#034; class='spip_code spip_code_block language-css' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.info { flex-direction: column !important; align-items: flex-start !important; } .name-state, .temp-attribute { width: 100%; text-align: left; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cela permet d'&#233;viter des coupures de texte ou des espacements incoh&#233;rents.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#9989; 4. Hi&#233;rarchie visuelle par opacit&#233;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Quand tout est en gras et blanc, &lt;strong&gt;rien n'&#233;merge.&lt;/strong&gt; Pour faire ressortir les informations importantes tout en gardant les autres lisibles, j'utilise &lt;strong&gt;l'opacit&#233; CSS :&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;css&#034; class='spip_code spip_code_block language-css' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#moment-0 { opacity: 1 !important; } #moment-2 { opacity: 0.5 !important; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'applique souvent :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;opacity: 1&lt;/code&gt; &#8594; &#233;l&#233;ment principal (heure, jour)&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;opacity: 0.6&lt;/code&gt; &#8594; donn&#233;es compl&#233;mentaires&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;opacity: 0.3&lt;/code&gt; &#8594; l&#233;gendes ou secondes&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Astuce bonus : structurer une &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vertical-stack&lt;/code&gt; comme une section&lt;/h2&gt;
&lt;p&gt;Tu peux utiliser &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;card_mod&lt;/code&gt; pour &lt;strong&gt;espacer les cartes,&lt;/strong&gt; ajouter des titres, ou simuler des &#034;blocs&#034; sans bordure :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;type: vertical-stack cards: - type: markdown content: | ## Temp&#233;ratures int&#233;rieures card_mod: style: | ha-card { background: transparent; border: none; font-size: 2.2rem; font-weight: bold; padding-left: 0.5rem; } - type: entities ... &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;R&#233;sultat : un affichage &#233;l&#233;gant et reposant&lt;/h2&gt;
&lt;p&gt;En combinant ces personnalisations :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; toutes les pages de mon tableau de bord ont un &lt;strong&gt;aspect unifi&#233;,&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; la lisibilit&#233; est optimale,&lt;/li&gt;&lt;li&gt; l'interface semble &lt;strong&gt;&#034;faite pour &#234;tre affich&#233;e&#034;,&lt;/strong&gt; pas simplement fonctionnelle.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;L'esth&#233;tique contribue &#224; rendre l'objet &lt;strong&gt;pr&#233;sent dans la maison, &lt;/strong&gt; presque d&#233;coratif, tout en restant utile.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;&#192; suivre&#8230;&lt;/h2&gt;
&lt;p&gt;Dans le dernier article de la s&#233;rie, je vous proposerai quelques id&#233;es pour &lt;strong&gt;aller plus loin :&lt;/strong&gt; affichage dynamique selon l'heure ou la pr&#233;sence, nouvelles cartes &#224; tester, int&#233;grations avec d'autres outils comme MQTT, etc.&lt;/p&gt;
&lt;p&gt;Et si vous souhaitez personnaliser votre propre Magic Mirror, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;card_mod&lt;/code&gt; sera clairement votre meilleur alli&#233;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;strong&gt;Magic Mirror avec Home Assistant&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror' class=&#034;spip_in&#034;&gt;Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant' class=&#034;spip_in&#034;&gt;Installer et configurer HACS pour enrichir Home Assistant&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Construire les pages Lovelace du Magic Mirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2' class=&#034;spip_in&#034;&gt;Calendriers, routines et organisation familiale (Page 2)&lt;/a&gt; (10 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3' class=&#034;spip_in&#034;&gt;Suivi de l'environnement et bien-&#234;tre (Page 3)&lt;/a&gt; (11 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Automatiser la rotation des pages du Magic Mirror&lt;/a&gt; (12 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod' class=&#034;spip_in&#034;&gt;Personnalisation et astuces d'affichage avec card_mod&lt;/a&gt; (13 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin' class=&#034;spip_in&#034;&gt;Magic Mirror avec Home Assistant, pour aller plus loin&#8230;&lt;/a&gt; (14 juin)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Automatiser la rotation des pages du Magic Mirror</title>
		<link>https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror</link>
		<guid isPermaLink="true">https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror</guid>
		<dc:date>2025-06-12T06:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Personnel</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>
		<dc:subject>VSCode</dc:subject>

		<description>
&lt;p&gt;Apr&#232;s avoir con&#231;u mes trois vues dans Home Assistant (horloge/m&#233;t&#233;o, organisation familiale, suivi bien-&#234;tre), il me manquait une pi&#232;ce ma&#238;tresse pour rendre l'exp&#233;rience fluide et immersive : la rotation automatique entre les pages. &lt;br class='autobr' /&gt;
L'objectif : ne jamais toucher l'&#233;cran. Le tableau de bord change seul, &#224; intervalles r&#233;guliers, comme un carrousel d'informations, adapt&#233; &#224; un usage mural, passif, mais toujours pertinent. &lt;br class='autobr' /&gt;
Dans cet article, je vous explique comment j'ai mis en place cette (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/Personnel" rel="tag"&gt;Personnel&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/MagicMirror" rel="tag"&gt;MagicMirror&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/VSCode" rel="tag"&gt;VSCode&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH113/nathan-mcdine-kwiy6ucueuy-unsplash-4766d.jpg?1749711600' class='spip_logo spip_logo_right' width='150' height='113' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Apr&#232;s avoir con&#231;u mes trois vues dans Home Assistant (horloge/m&#233;t&#233;o, organisation familiale, suivi bien-&#234;tre), il me manquait une pi&#232;ce ma&#238;tresse pour rendre l'exp&#233;rience fluide et immersive : &lt;strong&gt;la rotation automatique entre les pages.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L'objectif : &lt;strong&gt;ne jamais toucher l'&#233;cran.&lt;/strong&gt; Le tableau de bord change seul, &#224; intervalles r&#233;guliers, comme un carrousel d'informations, adapt&#233; &#224; un usage mural, passif, mais toujours pertinent.&lt;/p&gt;
&lt;p&gt;Dans cet article, je vous explique comment j'ai mis en place cette rotation automatique &#8212; &lt;strong&gt;sans module tiers ni JavaScript complexe,&lt;/strong&gt; uniquement avec les outils de base de Home Assistant.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Pr&#233;ambule&lt;/h2&gt;
&lt;p&gt;L'article ici pr&#233;sent met en place une version simplifi&#233;e de la rotation que j'ai r&#233;ellement mis en place sur mon Magic Mirror. En effet, sur mon Raspberry Pi d'affichage, j'utilise des services Linux pour faire tourner les onglets Chromium sur l'&#233;cran sans intervention humaine. J'ai voulu &#233;crire un article un peu plus accessible pour les personnes n'ayant pas l'habitude des lignes de commandes&#8230;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Pourquoi automatiser la rotation ?&lt;/h2&gt;
&lt;p&gt;Le Magic Mirror n'est pas un &#233;cran interactif tactile : c'est un &lt;strong&gt;support d'affichage passif.&lt;/strong&gt; Il doit :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; afficher un contenu pertinent &#224; tout moment de la journ&#233;e,&lt;/li&gt;&lt;li&gt; &lt;strong&gt;changer de vue sans intervention humaine,&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;revenir &#224; une page par d&#233;faut&lt;/strong&gt; au besoin.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Cette logique de &#034;carrousel&#034; permet :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; de &lt;strong&gt;diffuser plus d'informations&lt;/strong&gt; sans surcharger une seule vue,&lt;/li&gt;&lt;li&gt; d'&lt;strong&gt;adapter l'information au moment&lt;/strong&gt; (par exemple, l'agenda le matin, les temp&#233;ratures l'apr&#232;s-midi),&lt;/li&gt;&lt;li&gt; de renforcer la sensation de fluidit&#233; et d'&#233;l&#233;gance.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;M&#233;thode retenue : automation + &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;navigate&lt;/code&gt; service&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Pr&#233;-requis&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Avoir un tableau de bord d&#233;di&#233; dans Home Assistant (ex : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;magicmirror&lt;/code&gt;).&lt;/li&gt;&lt;li&gt; Avoir d&#233;fini chaque vue (page) avec un chemin (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;path&lt;/code&gt;) clair :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;page-1&lt;/code&gt; pour l'heure/m&#233;t&#233;o&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;page-2&lt;/code&gt; pour les calendriers&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;page-3&lt;/code&gt; pour le confort ambiant&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Utilisation du service &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;navigate&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Home Assistant permet de naviguer vers une autre vue via le service :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;service: browser_mod.navigate data: path: /lovelace/magicmirror/page-2 browser_id: magic_mirror_kiosk &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;&#128312; Le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;browser_id&lt;/code&gt; est essentiel. Il identifie l'&#233;cran concern&#233; (le Raspberry Pi du Magic Mirror). Il est fourni par l'int&#233;gration &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;browser_mod&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;3. Cr&#233;er une automatisation de rotation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Voici une &lt;strong&gt;automatisation compl&#232;te&lt;/strong&gt; qui fait tourner les vues toutes les 30 secondes :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;alias: Rotation Magic Mirror trigger: - platform: time_pattern seconds: &#034;/30&#034; variables: pages: - /lovelace/magicmirror/page-1 - /lovelace/magicmirror/page-2 - /lovelace/magicmirror/page-3 current_page: &gt; {{ state_attr('sensor.magicmirror_current_page', 'path') or '/lovelace/magicmirror/page-1' }} next_index: &gt; {% set index = pages.index(current_page) %} {% if index + 1 &gt;= pages | length %} 0 {% else %} index + 1 {% endif %} next_page: &gt; {{ pages[next_index] }} action: - service: browser_mod.navigate data: path: &#034;{{ next_page }}&#034; browser_id: magic_mirror_kiosk mode: single &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cette version :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; d&#233;tecte la &lt;strong&gt;page actuelle&lt;/strong&gt; (avec un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sensor&lt;/code&gt; personnalis&#233; ou une int&#233;gration comme &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;kiosk-mode&lt;/code&gt;),&lt;/li&gt;&lt;li&gt; calcule l'&lt;strong&gt;index suivant&lt;/strong&gt;,&lt;/li&gt;&lt;li&gt; utilise le service &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;browser_mod.navigate&lt;/code&gt; pour changer de vue.&lt;/li&gt;&lt;/ul&gt;&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;&#128736;&#65039; Astuce : tu peux aussi cr&#233;er plusieurs automatisations distinctes (une par page) si tu pr&#233;f&#232;res une logique plus simple et s&#233;quenc&#233;e.&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;spip&#034;&gt;Et c&#244;t&#233; Raspberry Pi ?&lt;/h2&gt;
&lt;p&gt;Ton Raspberry Pi (afficheur Magic Mirror) doit lancer Home Assistant en plein &#233;cran dans Chromium, avec un identifiant reconnu par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;browser_mod&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Exemple de lancement via &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chromium-kiosk.service&lt;/code&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;chromium-browser --kiosk --noerrdialogs --disable-infobars --start-fullscreen http://homeassistant.local:8123/lovelace/magicmirror/page-1 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et dans la configuration &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;browser_mod&lt;/code&gt; (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;configuration.yaml&lt;/code&gt;) :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;browser_mod: devices: magic_mirror_kiosk: name: Magic Mirror &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;R&#233;sultat : un Magic Mirror vraiment magique&lt;/h2&gt;
&lt;p&gt;Gr&#226;ce &#224; cette rotation automatis&#233;e :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; les vues s'encha&#238;nent sans interruption,&lt;/li&gt;&lt;li&gt; l'&#233;cran est toujours &#224; jour,&lt;/li&gt;&lt;li&gt; les enfants n'ont rien &#224; manipuler.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;On passe ainsi d'un affichage fig&#233; &#224; un &lt;strong&gt;dashboard vivant,&lt;/strong&gt; contextuel et toujours utile.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;En bonus : rotation intelligente&lt;/h2&gt;
&lt;p&gt;Tu peux aller plus loin :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; afficher une page &lt;strong&gt;selon l'heure&lt;/strong&gt; (matin = agenda, soir = temp&#233;ratures),&lt;/li&gt;&lt;li&gt; afficher une page &lt;strong&gt;selon la pr&#233;sence&lt;/strong&gt; ou l'ouverture d'une porte,&lt;/li&gt;&lt;li&gt; suspendre la rotation si un &lt;strong&gt;mode &#034;invit&#233;&#034;&lt;/strong&gt; est activ&#233;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Mais &#231;a&#8230; on en reparlera potentiellement dans un article bonus &#128527;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;strong&gt;Magic Mirror avec Home Assistant&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror' class=&#034;spip_in&#034;&gt;Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant' class=&#034;spip_in&#034;&gt;Installer et configurer HACS pour enrichir Home Assistant&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Construire les pages Lovelace du Magic Mirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2' class=&#034;spip_in&#034;&gt;Calendriers, routines et organisation familiale (Page 2)&lt;/a&gt; (10 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3' class=&#034;spip_in&#034;&gt;Suivi de l'environnement et bien-&#234;tre (Page 3)&lt;/a&gt; (11 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Automatiser la rotation des pages du Magic Mirror&lt;/a&gt; (12 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod' class=&#034;spip_in&#034;&gt;Personnalisation et astuces d'affichage avec card_mod&lt;/a&gt; (13 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin' class=&#034;spip_in&#034;&gt;Magic Mirror avec Home Assistant, pour aller plus loin&#8230;&lt;/a&gt; (14 juin)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Suivi de l'environnement et bien-&#234;tre (Page 3)</title>
		<link>https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3</link>
		<guid isPermaLink="true">https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3</guid>
		<dc:date>2025-06-11T07:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Personnel</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>
		<dc:subject>VSCode</dc:subject>

		<description>
&lt;p&gt;Les deux premi&#232;res pages de mon tableau de bord Magic Mirror affichaient des informations pratiques et de planification. Pour la troisi&#232;me page, j'ai voulu explorer un aspect souvent n&#233;glig&#233; dans les interfaces domotiques : le confort ambiant, le rythme naturel&#8230; et l'&#233;tat de sant&#233; de mon Raspberry Pi ! &lt;br class='autobr' /&gt; Cette vue, affich&#233;e en alternance avec les deux autres, regroupe des donn&#233;es techniques et sensibles pour suivre : le fonctionnement du syst&#232;me, le climat de la maison, les cycles naturels (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/Personnel" rel="tag"&gt;Personnel&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/MagicMirror" rel="tag"&gt;MagicMirror&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/VSCode" rel="tag"&gt;VSCode&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH100/chuttersnap-vmvvsjuwkgw-unsplash-4ef3a.jpg?1749625290' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Les deux premi&#232;res pages de mon tableau de bord Magic Mirror affichaient des informations pratiques et de planification. Pour &lt;strong&gt;la troisi&#232;me page&lt;/strong&gt;, j'ai voulu explorer un aspect souvent n&#233;glig&#233; dans les interfaces domotiques : le &lt;strong&gt;confort ambiant,&lt;/strong&gt; le &lt;strong&gt;rythme naturel&#8230;&lt;/strong&gt; et l'&#233;tat de sant&#233; de mon &lt;strong&gt;Raspberry Pi !&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Cette vue, affich&#233;e en alternance avec les deux autres, regroupe des donn&#233;es techniques et sensibles pour suivre :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le fonctionnement du syst&#232;me,&lt;/li&gt;&lt;li&gt; le climat de la maison,&lt;/li&gt;&lt;li&gt; les cycles naturels comme les phases lunaires.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Un &#233;quilibre entre technique, confort et bien-&#234;tre.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Objectif de cette page&lt;/h2&gt;
&lt;p&gt;Voici ce que j'ai voulu obtenir :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;i&gt;&#129504; Suivre la sant&#233; mat&#233;rielle &lt;/i&gt; du Raspberry Pi h&#233;bergeant le Magic Mirror (temp&#233;rature, CPU, m&#233;moire, stockage, uptime).&lt;/li&gt;&lt;li&gt; &lt;i&gt;&#127777;&#65039; Visualiser les temp&#233;ratures&lt;/i&gt; dans toutes les pi&#232;ces de la maison pour ajuster les conditions de confort.&lt;/li&gt;&lt;li&gt; &lt;i&gt;&#127765; Conserver un lien avec le temps naturel,&lt;/i&gt; &#224; travers une visualisation des phases de la lune.&lt;/li&gt;&lt;li&gt; &lt;i&gt;&#128172; Continuer &#224; afficher un compliment,&lt;/i&gt; pour garder la tonalit&#233; positive du projet.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Structure et composants de la page&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&#128421;&#65039; 1. Surveillance du Raspberry Pi&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Gr&#226;ce &#224; l'int&#233;gration Glances ou des sensor MQTT ou SSH, j'ai r&#233;cup&#233;r&#233; les donn&#233;es suivantes :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;CPU :&lt;/strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sensor.magic_mirror_pi_magicmirror_cpu&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Disque :&lt;/strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sensor.magic_mirror_pi_magicmirror_disk&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;M&#233;moire :&lt;/strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sensor.magic_mirror_pi_magicmirror_memory&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Temp&#233;rature :&lt;/strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sensor.magic_mirror_pi_magicmirror_temperature&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Uptime :&lt;/strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sensor.magicmirror_uptime&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ces entit&#233;s sont affich&#233;es dans une carte entities avec des ic&#244;nes claires (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mdi:cpu-64-bit&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mdi:memory&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mdi:clock-outline&lt;/code&gt;...), stylis&#233;es via card_mod pour une police agrandie et un fond transparent.&lt;/p&gt;
&lt;div class='spip_document_543 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.teddypayet.com/local/cache-vignettes/L500xH208/capture_d_e_cran_2025-06-08_a_22.55_56-6ba40.png?1749625290' width='500' height='208' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;- type: entities title: Magic Mirror entities: - entity: sensor.magic_mirror_pi_magicmirror_cpu name: CPU icon: mdi:cpu-64-bit - entity: sensor.magic_mirror_pi_magicmirror_disk name: Disque icon: mdi:harddisk - entity: sensor.magic_mirror_pi_magicmirror_memory name: M&#233;moire icon: mdi:memory - entity: sensor.magic_mirror_pi_magicmirror_temperature name: Temp&#233;rature - entity: sensor.magicmirror_uptime name: Activit&#233; icon: mdi:clock-outline card_mod: style: | * { font-size: 1.43rem; } ha-card { border: none; background: transparent; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;&#127777;&#65039; 2. Temp&#233;ratures int&#233;rieures par pi&#232;ce&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;J'ai int&#233;gr&#233; les &lt;strong&gt;capteurs de temp&#233;rature&lt;/strong&gt; MQTT (ou autres) dans une seconde carte &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;entities&lt;/code&gt;, pour chaque pi&#232;ce :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Balcon&lt;/li&gt;&lt;li&gt; Bureau&lt;/li&gt;&lt;li&gt; Cuisine&lt;/li&gt;&lt;li&gt; Chambre Salom&#233;&lt;/li&gt;&lt;li&gt; Chambre gar&#231;ons&lt;/li&gt;&lt;li&gt; Chambre parentale&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Objectif : &lt;strong&gt;visualiser les zones chaudes/froides&lt;/strong&gt; au fil de la journ&#233;e. C'est aussi utile pour d&#233;tecter une pi&#232;ce mal chauff&#233;e ou mal isol&#233;e.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;- type: entities entities: - entity: sensor.temperature_balcon_temperature name: Balcon - entity: sensor.temperature_bureau_temperature name: Bureau - entity: sensor.temperature_cuisine_temperature name: Cuisine - entity: sensor.temperature_chambre_salome_temperature name: Chambre Salom&#233; - entity: sensor.temperature_chambre_garcons_temperature name: Chambre Gar&#231;ons - entity: sensor.temperature_chambre_parentale_temperature name: Chambre parents card_mod: style: | * { font-size: 1.43rem; } ha-card { border: none; background: transparent; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;&#127765; 3. Phases lunaires&lt;/strong&gt;&lt;/p&gt;
&lt;div class='spip_document_544 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.teddypayet.com/local/cache-vignettes/L500xH162/capture_d_e_cran_2025-06-08_a_22.57_24-fcf15.png?1749625290' width='500' height='162' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;J'utilise la carte &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;custom:lunar-phase-card&lt;/code&gt;, que j'ai configur&#233;e en mode compact, avec une vue discr&#232;te mais &#233;l&#233;gante de la lune actuelle.&lt;/p&gt;
&lt;p&gt;Elle affiche :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; la &lt;strong&gt;phase lunaire actuelle&lt;/strong&gt;,&lt;/li&gt;&lt;li&gt; le &lt;strong&gt;visuel de la lune,&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; la &lt;strong&gt;localisation&lt;/strong&gt; pour ajuster la phase au bon h&#233;misph&#232;re.&lt;/li&gt;&lt;/ul&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;- type: custom:lunar-phase-card entity: '' compact_view: true default_card: base selected_language: fr moon_position: left latitude: 48.96666 longitude: 2.04519 location: city: Andr&#233;sy country: France card_mod: style: | ha-card { border: none; background: transparent; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce d&#233;tail peut sembler anecdotique, mais il pla&#238;t beaucoup &#224; mes enfants&#8230; et donne un rythme naturel aux jours qui passent.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#128172; 4. Compliment du jour&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Comme dans les autres pages, j'ai inclus une carte &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;button-card&lt;/code&gt; qui r&#233;cup&#232;re dynamiquement la valeur de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;input_text.compliments&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Cela garde une &lt;strong&gt;touche humaine et bienveillante,&lt;/strong&gt; quel que soit le contenu affich&#233;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;- type: custom:button-card name: | [[[ return states['input_text.compliments'].state ]]] card_mod: style: | ha-card { border: none; background: transparent; } #name { width: 90%; font-weight: 100; font-size: 4.7rem; text-align: center; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;R&#233;sultat final&lt;/h2&gt;
&lt;p&gt;La page 3 du Magic Mirror compl&#232;te parfaitement les deux premi&#232;res :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Elle offre &lt;strong&gt;une vue d'ensemble technique&lt;/strong&gt; (pour moi),&lt;/li&gt;&lt;li&gt; Une &lt;strong&gt;lecture de confort domestique&lt;/strong&gt; (pour la famille),&lt;/li&gt;&lt;li&gt; Et &lt;strong&gt;une connexion au vivant&lt;/strong&gt; (via la lune et le compliment).&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Chaque &#233;l&#233;ment est &lt;strong&gt;&#233;pur&#233;, lisible, sans distraction,&lt;/strong&gt; et parfaitement int&#233;gr&#233; dans la logique du miroir connect&#233;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Et ensuite ?&lt;/h2&gt;
&lt;p&gt;Dans le prochain article, je vous expliquerai comment j'ai &lt;strong&gt;automatis&#233; la rotation entre les pages&lt;/strong&gt; de mon tableau de bord, pour cr&#233;er une boucle dynamique et continue.&lt;/p&gt;
&lt;p&gt;Ainsi, le Magic Mirror affiche tour &#224; tour l'heure, les calendriers, les temp&#233;ratures, et bien plus encore &#8212; sans que personne n'ait besoin de toucher &#224; l'&#233;cran.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;strong&gt;Magic Mirror avec Home Assistant&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror' class=&#034;spip_in&#034;&gt;Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant' class=&#034;spip_in&#034;&gt;Installer et configurer HACS pour enrichir Home Assistant&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Construire les pages Lovelace du Magic Mirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2' class=&#034;spip_in&#034;&gt;Calendriers, routines et organisation familiale (Page 2)&lt;/a&gt; (10 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3' class=&#034;spip_in&#034;&gt;Suivi de l'environnement et bien-&#234;tre (Page 3)&lt;/a&gt; (11 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Automatiser la rotation des pages du Magic Mirror&lt;/a&gt; (12 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod' class=&#034;spip_in&#034;&gt;Personnalisation et astuces d'affichage avec card_mod&lt;/a&gt; (13 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin' class=&#034;spip_in&#034;&gt;Magic Mirror avec Home Assistant, pour aller plus loin&#8230;&lt;/a&gt; (14 juin)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Calendriers, routines et organisation familiale (Page 2)</title>
		<link>https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2</link>
		<guid isPermaLink="true">https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2</guid>
		<dc:date>2025-06-10T06:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Personnel</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>
		<dc:subject>VSCode</dc:subject>

		<description>
&lt;p&gt;Dans la premi&#232;re page de mon Magic Mirror sous Home Assistant, je me suis concentr&#233; sur l'affichage des donn&#233;es essentielles du quotidien : heure, m&#233;t&#233;o, fuseaux horaires et pr&#233;sence des membres de la famille. Aujourd'hui, je vous pr&#233;sente la deuxi&#232;me page, d&#233;di&#233;e &#224; l'organisation de la vie familiale. &lt;br class='autobr' /&gt;
Objectif : que chacun puisse savoir en un clin d'&#339;il ce qu'il y a &#224; faire aujourd'hui, ce qui est pr&#233;vu cette semaine, et ne rater aucun anniversaire. &lt;br class='autobr' /&gt; Un affichage tourn&#233; vers le quotidien (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/Personnel" rel="tag"&gt;Personnel&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/MagicMirror" rel="tag"&gt;MagicMirror&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/VSCode" rel="tag"&gt;VSCode&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH100/estee-janssens-zni0zgb3bkq-unsplash-1dcbb.jpg?1749535491' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Dans la premi&#232;re page de mon Magic Mirror sous Home Assistant, je me suis concentr&#233; sur l'affichage des donn&#233;es essentielles du quotidien : heure, m&#233;t&#233;o, fuseaux horaires et pr&#233;sence des membres de la famille. Aujourd'hui, je vous pr&#233;sente la deuxi&#232;me page, d&#233;di&#233;e &#224; l'organisation de la vie familiale.&lt;/p&gt;
&lt;p&gt;Objectif : que chacun puisse savoir en un clin d'&#339;il ce qu'il y a &lt;strong&gt;&#224; faire aujourd'hui,&lt;/strong&gt; ce qui est &lt;strong&gt;pr&#233;vu cette semaine,&lt;/strong&gt; et ne &lt;strong&gt;rater aucun anniversaire.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Un affichage tourn&#233; vers le quotidien&lt;/h2&gt;
&lt;p&gt;Cette seconde vue de mon Magic Mirror regroupe trois types d'informations :&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Les petites routines familiales&lt;/li&gt;&lt;li&gt; Les &#233;v&#233;nements &#224; venir&lt;/li&gt;&lt;li&gt; Les anniversaires&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Pour cela, j'ai utilis&#233; la carte &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;atomic-calendar-revive&lt;/code&gt;, disponible via HACS. Elle offre un affichage clair, compact et hautement personnalisable des &#233;v&#233;nements d'un ou plusieurs calendriers.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les cartes utilis&#233;es&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&#127869;&#65039; Mettre la table (routine quotidienne)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C'est une carte &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;atomic-calendar-revive&lt;/code&gt; affichant uniquement le calendrier li&#233; &#224; la routine &#034;Mettre la table&#034; (Google Calendar + automatisation HA).&lt;br class='autobr' /&gt;
Cela permet aux enfants de visualiser facilement leur tour, directement &#224; l'&#233;cran.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;maxDaysToShow: 1&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;maxEventCount: 1&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Ic&#244;ne personnalis&#233;e : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mdi:food-fork-drink&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&#128197; Agenda familial&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cette carte regroupe tous les calendriers Google synchronis&#233;s :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; De chaque enfant&lt;/li&gt;&lt;li&gt; Papa&lt;/li&gt;&lt;li&gt; Famille&lt;/li&gt;&lt;li&gt; Vacances scolaires France&lt;/li&gt;&lt;li&gt; Calendrier Professionnel&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Param&#233;trage :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;maxDaysToShow: 7&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;showEventIcon: true&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;compactMode: false&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sortBy: start&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Ic&#244;ne par entit&#233; pour un affichage plus visuel&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&#127874; Anniversaires&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un calendrier sp&#233;cifique aux anniversaires (cr&#233;&#233; dans Google Agenda), avec une ic&#244;ne &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mdi:cake-variant&lt;/code&gt;.&lt;br class='autobr' /&gt;
Cela permet aux enfants de rep&#233;rer les anniversaires &#224; venir dans la semaine, pour ne rien oublier.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Astuces d'affichage&lt;/h2&gt;
&lt;p&gt;Gr&#226;ce &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;card_mod&lt;/code&gt;, j'ai adapt&#233; :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; la &lt;strong&gt;taille de la police&lt;/strong&gt; pour une lecture facile &#224; distance,&lt;/li&gt;&lt;li&gt; &lt;strong&gt;l'opacit&#233;&lt;/strong&gt; des &#233;l&#233;ments secondaires,&lt;/li&gt;&lt;li&gt; la &lt;strong&gt;suppression des bordures&lt;/strong&gt; et arri&#232;re-plans,&lt;/li&gt;&lt;li&gt; une &lt;strong&gt;structure verticale claire,&lt;/strong&gt; s&#233;par&#233;e par des titres en lettres capitales discr&#232;tes.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Chaque carte conserve une &lt;strong&gt;coh&#233;rence visuelle&lt;/strong&gt; avec le reste du tableau de bord, tout en s'adaptant &#224; son usage sp&#233;cifique.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Et c&#244;t&#233; YAML ?&lt;/h2&gt;
&lt;p&gt;Voici un extrait repr&#233;sentatif :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;- type: custom:atomic-calendar-revive name: LA TABLE entities: - entity: calendar.mettre_la_table icon: mdi:food-fork-drink maxDaysToShow: 1 maxEventCount: 1 showEventIcon: true showDatePerEvent: true hideFinishedEvents: true card_mod: style: | ha-card { border: none; background: transparent; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Les deux autres cartes utilisent les m&#234;mes param&#232;tres, avec un nombre d'entit&#233;s plus grand.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;R&#233;sultat &#224; l'&#233;cran&lt;/h2&gt;
&lt;p&gt;L'ensemble donne une &lt;strong&gt;interface sobre, lisible et utile. &lt;/strong&gt; Chaque membre de la famille peut passer devant le Magic Mirror le matin, et voir &lt;strong&gt;en un coup d'&#339;il :&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Qui doit mettre la table ce soir&lt;/li&gt;&lt;li&gt; Ce qu'il a &#224; faire cette semaine&lt;/li&gt;&lt;li&gt; Quels anniversaires approchent&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;C'est une &lt;strong&gt;vraie aide &#224; l'organisation familiale,&lt;/strong&gt; accessible &#224; tous, sans ouvrir une seule application.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;&#192; suivre&#8230;&lt;/h2&gt;
&lt;p&gt;Dans le prochain article, je vous emm&#232;ne sur &lt;strong&gt;la troisi&#232;me page&lt;/strong&gt; de mon Magic Mirror : celle d&#233;di&#233;e &#224; l'environnement et au bien-&#234;tre. Surveillance du Raspberry Pi, temp&#233;ratures dans chaque pi&#232;ce, phases lunaires&#8230; Une page plus technique, mais toujours pens&#233;e pour am&#233;liorer la vie &#224; la maison.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;strong&gt;Magic Mirror avec Home Assistant&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror' class=&#034;spip_in&#034;&gt;Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant' class=&#034;spip_in&#034;&gt;Installer et configurer HACS pour enrichir Home Assistant&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Construire les pages Lovelace du Magic Mirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2' class=&#034;spip_in&#034;&gt;Calendriers, routines et organisation familiale (Page 2)&lt;/a&gt; (10 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3' class=&#034;spip_in&#034;&gt;Suivi de l'environnement et bien-&#234;tre (Page 3)&lt;/a&gt; (11 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Automatiser la rotation des pages du Magic Mirror&lt;/a&gt; (12 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod' class=&#034;spip_in&#034;&gt;Personnalisation et astuces d'affichage avec card_mod&lt;/a&gt; (13 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin' class=&#034;spip_in&#034;&gt;Magic Mirror avec Home Assistant, pour aller plus loin&#8230;&lt;/a&gt; (14 juin)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror</title>
		<link>https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror</link>
		<guid isPermaLink="true">https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror</guid>
		<dc:date>2025-06-09T06:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Personnel</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>
		<dc:subject>VSCode</dc:subject>

		<description>
&lt;p&gt;Cela fait plusieurs ann&#233;es que j'utilise MagicMirror&#178;sur un Raspberry Pi pour afficher des informations utiles &#224; la maison. C'est un projet open source fantastique, tr&#232;s modulaire, pens&#233; pour l'affichage sur &#233;cran vertical (type miroir connect&#233;), et parfait pour pr&#233;senter de l'information en continu. Mon installation &#233;tait enti&#232;rement automatis&#233;e, utilisant Electron (int&#233;gr&#233; nativement &#224; MagicMirror&#178;) pour un lancement en mode kiosque sans intervention manuelle. Simple, stable, efficace. (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/Personnel" rel="tag"&gt;Personnel&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/MagicMirror" rel="tag"&gt;MagicMirror&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/VSCode" rel="tag"&gt;VSCode&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH100/chatgpt_image_8_juin_2025_a_20_03_55-52ff7.png?1749449747' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Cela fait plusieurs ann&#233;es que j'utilise &lt;a href=&#034;https://magicmirror.builders/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MagicMirror&#178;&lt;/a&gt;sur un Raspberry Pi pour afficher des informations utiles &#224; la maison. C'est un projet open source fantastique, tr&#232;s modulaire, pens&#233; pour l'affichage sur &#233;cran vertical (type miroir connect&#233;), et parfait pour pr&#233;senter de l'information en continu.&lt;br class='autobr' /&gt;
Mon installation &#233;tait enti&#232;rement automatis&#233;e, utilisant &lt;strong&gt;Electron&lt;/strong&gt; (int&#233;gr&#233; nativement &#224; MagicMirror&#178;) pour un lancement en mode kiosque sans intervention manuelle. Simple, stable, efficace. Mais avec le temps, certaines limites ont commenc&#233; &#224; appara&#238;tre&#8230;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;MagicMirror&#178; : solide mais limit&#233;&lt;/h2&gt;
&lt;p&gt;MagicMirror&#178; m'a permis de cr&#233;er un affichage personnalis&#233; avec des modules communautaires : m&#233;t&#233;o, calendrier, compliments, horloge, etc. Mais certains points sont devenus bloquants :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; la &lt;strong&gt;m&#233;t&#233;o&lt;/strong&gt; : les modules fonctionnels exigeaient d&#233;sormais une API n&#233;cessitant une carte bancaire, parfois m&#234;me pour un acc&#232;s basique ;&lt;/li&gt;&lt;li&gt; la maintenance de certains modules tiers devenait al&#233;atoire ;&lt;/li&gt;&lt;li&gt; les personnalisations CSS n&#233;cessitaient de toucher au code source directement ;&lt;/li&gt;&lt;li&gt; l'int&#233;gration avec les autres composants de la maison connect&#233;e &#233;tait quasi inexistante.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Home Assistant : le cerveau central&lt;/h2&gt;
&lt;p&gt;Utilisant d&#233;j&#224; Home Assistant pour piloter une grande partie de ma domotique, l'id&#233;e de m'appuyer sur son interface Lovelace pour cr&#233;er un miroir intelligent s'est naturellement impos&#233;e.&lt;/p&gt;
&lt;p&gt;Avec ses cartes personnalisables, sa compatibilit&#233; native avec de nombreuses sources de donn&#233;es, et ses puissantes automatisations, Home Assistant permet de construire &lt;strong&gt;un dashboard moderne, interactif et int&#233;gr&#233;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;J'utilise &#233;galement un MQTT Broker sur mon Raspberry Pi qui permet &#224; Home Assistant &#224; d&#233;tecter de nouveaux capteurs. Nous verrons cela un peu plus tard.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Un affichage con&#231;u pour un &#233;cran mural&lt;/h2&gt;
&lt;p&gt;J'ai donc con&#231;u une interface d&#233;di&#233;e dans Home Assistant, baptis&#233;e &#034;Magic Mirror&#034;, pens&#233;e pour &#234;tre affich&#233;e sur un &#233;cran mural. Elle comprend :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; un &lt;strong&gt;mode sombre lisible &#224; distance&lt;/strong&gt; ;&lt;/li&gt;&lt;li&gt; un affichage &lt;strong&gt;plein &#233;cran,&lt;/strong&gt; sans menus ni distractions ;&lt;/li&gt;&lt;li&gt; une &lt;strong&gt;rotation automatique entre plusieurs vues&lt;/strong&gt; ;&lt;/li&gt;&lt;li&gt; une interface adapt&#233;e &#224; un usage &lt;strong&gt;familial quotidien :&lt;/strong&gt; fuseaux horaires, m&#233;t&#233;o, pr&#233;sence, calendriers, etc.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Le r&#233;sultat ? Un miroir num&#233;rique fluide, esth&#233;tique, ultra-personnalisable &#8212; et surtout, sans d&#233;pendance &#224; des API m&#233;t&#233;o contraignantes.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Ce que je vais partager avec vous&lt;/h2&gt;
&lt;p&gt;Cette s&#233;rie d'articles a pour but de &lt;strong&gt;vous montrer pas &#224; pas&lt;/strong&gt; comment j'ai mis en place ce tableau de bord, de l'installation des cartes Lovelace jusqu'&#224; la gestion des pages et de la rotation automatique.&lt;/p&gt;
&lt;p&gt;Si vous utilisez d&#233;j&#224; Home Assistant, ou que vous cherchez une alternative plus souple &#224; MagicMirror&#178;, vous d&#233;couvrirez une mani&#232;re &#233;l&#233;gante de transformer un simple &#233;cran en un tableau de bord intelligent et vivant.&lt;/p&gt;
&lt;p&gt;Rendez-vous dans le prochain article, o&#249; je vous expliquerai comment installer les cartes n&#233;cessaires via HACS. &#192; tr&#232;s vite !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;strong&gt;Magic Mirror avec Home Assistant&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror' class=&#034;spip_in&#034;&gt;Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant' class=&#034;spip_in&#034;&gt;Installer et configurer HACS pour enrichir Home Assistant&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Construire les pages Lovelace du Magic Mirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2' class=&#034;spip_in&#034;&gt;Calendriers, routines et organisation familiale (Page 2)&lt;/a&gt; (10 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3' class=&#034;spip_in&#034;&gt;Suivi de l'environnement et bien-&#234;tre (Page 3)&lt;/a&gt; (11 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Automatiser la rotation des pages du Magic Mirror&lt;/a&gt; (12 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod' class=&#034;spip_in&#034;&gt;Personnalisation et astuces d'affichage avec card_mod&lt;/a&gt; (13 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin' class=&#034;spip_in&#034;&gt;Magic Mirror avec Home Assistant, pour aller plus loin&#8230;&lt;/a&gt; (14 juin)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Installer et configurer HACS pour enrichir Home Assistant</title>
		<link>https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant</link>
		<guid isPermaLink="true">https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant</guid>
		<dc:date>2025-06-09T06:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Personnel</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>
		<dc:subject>VSCode</dc:subject>

		<description>
&lt;p&gt;Dans le premier article, je vous expliquais pourquoi j'ai choisi de migrer mon tableau de bord MagicMirror vers Home Assistant. Pour aller plus loin que les cartes par d&#233;faut et vraiment personnaliser l'interface, j'ai eu besoin d'installer des composants suppl&#233;mentaires. C'est l&#224; qu'intervient HACS, le Home Assistant Community Store. &lt;br class='autobr' /&gt; Qu'est-ce que HACS ? &lt;br class='autobr' /&gt;
HACS est une passerelle communautaire qui permet d'ajouter facilement des cartes personnalis&#233;es, des int&#233;grations, des automations et (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/Personnel" rel="tag"&gt;Personnel&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/MagicMirror" rel="tag"&gt;MagicMirror&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/VSCode" rel="tag"&gt;VSCode&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH100/chatgpt_image_8_juin_2025_a_20_20_34-d908f.png?1749449747' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Dans le premier article, je vous expliquais pourquoi j'ai choisi de migrer mon tableau de bord MagicMirror vers Home Assistant. Pour aller plus loin que les cartes par d&#233;faut et vraiment personnaliser l'interface, j'ai eu besoin d'installer des composants suppl&#233;mentaires. C'est l&#224; qu'intervient &lt;strong&gt;HACS&lt;/strong&gt;, le Home Assistant Community Store.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Qu'est-ce que HACS ?&lt;/h2&gt;
&lt;p&gt;HACS est une passerelle communautaire qui permet d'ajouter facilement des cartes personnalis&#233;es, des int&#233;grations, des automations et m&#234;me des th&#232;mes &#224; Home Assistant, directement depuis l'interface web. C'est devenu un indispensable pour toute configuration avanc&#233;e.&lt;/p&gt;
&lt;p&gt;Gr&#226;ce &#224; HACS, j'ai pu installer les cartes n&#233;cessaires &#224; l'affichage de mon dashboard Magic Mirror, sans me soucier des d&#233;p&#244;ts GitHub ou des mises &#224; jour manuelles.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;&#201;tapes pour installer HACS&lt;/h2&gt;
&lt;p&gt;Voici les &#233;tapes principales pour installer HACS (valables &#224; partir de Home Assistant 2023.x) :&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;Activer le SSH sur votre Home Assistant &lt;/strong&gt; (si ce n'est pas encore fait).&lt;/li&gt;&lt;li&gt; Connectez-vous en SSH et ex&#233;cutez la commande suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;wget -O - https://get.hacs.xyz | bash -&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Red&#233;marrez Home Assistant.&lt;/li&gt;&lt;li&gt; Allez dans &lt;strong&gt;Param&#232;tres &gt; Modules compl&#233;mentaires &gt; HACS&lt;/strong&gt; puis suivez l'assistant de configuration.&lt;/li&gt;&lt;li&gt; Une fois install&#233;, vous verrez l'entr&#233;e &lt;strong&gt;HACS&lt;/strong&gt; dans la barre lat&#233;rale.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&#128073; &lt;i&gt;Petit conseil : &lt;/i&gt; HACS propose une mise &#224; jour automatique de vos composants install&#233;s. Pratique pour garder votre configuration &#224; jour sans effort.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les cartes que j'utilise avec mon Magic Mirror&lt;/h2&gt;
&lt;p&gt;Voici les principales cartes personnalis&#233;es que j'ai ajout&#233;es via HACS pour cr&#233;er mon interface Magic Mirror :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#128338; better-moment-card&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Affiche l'heure, la date, les secondes, le num&#233;ro de semaine.&lt;/li&gt;&lt;li&gt; G&#232;re les fuseaux horaires (Paris, R&#233;union, Guadeloupe).&lt;/li&gt;&lt;li&gt; Permet des mises en forme pr&#233;cises gr&#226;ce au CSS.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&#127782;&#65039; weather-chart-card&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Affiche les pr&#233;visions m&#233;t&#233;o avec des ic&#244;nes visuelles.&lt;/li&gt;&lt;li&gt; Tr&#232;s adapt&#233; &#224; un affichage public type tableau de bord.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&#128197; atomic-calendar-revive&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Pour afficher les &#233;v&#233;nements de plusieurs calendriers.&lt;/li&gt;&lt;li&gt; Affichage compact et lisible.&lt;/li&gt;&lt;li&gt; Tr&#232;s utile pour un usage familial.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&#127769; lunar-phase-card&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Carte simple et esth&#233;tique pour afficher les phases lunaires.&lt;/li&gt;&lt;li&gt; Ajoute une touche &#171; bien-&#234;tre &#187; &#224; l'interface.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&#127912; button-card et card-mod&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;button-card&lt;/code&gt; : permet d'afficher un compliment du jour.&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;card-mod&lt;/code&gt; : outil puissant pour personnaliser l'apparence CSS de chaque carte (taille des polices, alignement, marges, etc.).&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Et ensuite ?&lt;/h2&gt;
&lt;p&gt;Une fois ces cartes install&#233;es, je les ai int&#233;gr&#233;es &#224; un tableau de bord d&#233;di&#233; (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;layout-magicmirror.yaml&lt;/code&gt;). Chaque carte a &#233;t&#233; pens&#233;e pour s'afficher harmonieusement sur un &#233;cran mural.&lt;/p&gt;
&lt;p&gt;Dans le prochain article, je vous montrerai comment j'ai structur&#233; les pages de mon Magic Mirror, comment j'ai organis&#233; les blocs d'information, et les astuces CSS que j'ai utilis&#233;es pour une lecture &#224; distance agr&#233;able.&lt;/p&gt;
&lt;p&gt;&#192; bient&#244;t pour la suite !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;strong&gt;Magic Mirror avec Home Assistant&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror' class=&#034;spip_in&#034;&gt;Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant' class=&#034;spip_in&#034;&gt;Installer et configurer HACS pour enrichir Home Assistant&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Construire les pages Lovelace du Magic Mirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2' class=&#034;spip_in&#034;&gt;Calendriers, routines et organisation familiale (Page 2)&lt;/a&gt; (10 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3' class=&#034;spip_in&#034;&gt;Suivi de l'environnement et bien-&#234;tre (Page 3)&lt;/a&gt; (11 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Automatiser la rotation des pages du Magic Mirror&lt;/a&gt; (12 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod' class=&#034;spip_in&#034;&gt;Personnalisation et astuces d'affichage avec card_mod&lt;/a&gt; (13 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin' class=&#034;spip_in&#034;&gt;Magic Mirror avec Home Assistant, pour aller plus loin&#8230;&lt;/a&gt; (14 juin)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Construire les pages Lovelace du Magic Mirror</title>
		<link>https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror</link>
		<guid isPermaLink="true">https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror</guid>
		<dc:date>2025-06-09T06:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Personnel</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>
		<dc:subject>VSCode</dc:subject>

		<description>
&lt;p&gt;Une fois HACS install&#233; et les cartes n&#233;cessaires ajout&#233;es, l'&#233;tape suivante a &#233;t&#233; de concevoir l'interface du tableau de bord affich&#233; sur mon &#233;cran mural. C'est dans ce troisi&#232;me article que je vous pr&#233;sente la structure de mon dashboard, les vues que j'ai mises en place et les choix esth&#233;tiques pour une lisibilit&#233; optimale. &lt;br class='autobr' /&gt; Une interface pens&#233;e pour un affichage vertical &lt;br class='autobr' /&gt;
Le tableau de bord que j'ai cr&#233;&#233; dans Home Assistant est nomm&#233; Magic Mirror. Il utilise un fichier Lovelace d&#233;di&#233; (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/Personnel" rel="tag"&gt;Personnel&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/MagicMirror" rel="tag"&gt;MagicMirror&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/VSCode" rel="tag"&gt;VSCode&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH100/chatgpt_image_8_juin_2025_a_21_23_20-ab4d7.png?1749449747' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Une fois HACS install&#233; et les cartes n&#233;cessaires ajout&#233;es, l'&#233;tape suivante a &#233;t&#233; de concevoir l'interface du tableau de bord affich&#233; sur mon &#233;cran mural. C'est dans ce troisi&#232;me article que je vous pr&#233;sente la structure de mon dashboard, les vues que j'ai mises en place et les choix esth&#233;tiques pour une lisibilit&#233; optimale.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Une interface pens&#233;e pour un affichage vertical&lt;/h2&gt;
&lt;p&gt;Le tableau de bord que j'ai cr&#233;&#233; dans Home Assistant est nomm&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Magic Mirror&lt;/code&gt;. Il utilise un fichier Lovelace d&#233;di&#233; (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;layout-magicmirror.yaml&lt;/code&gt;) avec l'int&#233;gration de la carte &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;custom:masonry-layout&lt;/code&gt; afin de g&#233;rer pr&#233;cis&#233;ment le placement et la largeur des &#233;l&#233;ments.&lt;/p&gt;
&lt;p&gt;L'objectif : &lt;strong&gt;optimiser la lisibilit&#233;&lt;/strong&gt; depuis une certaine distance, sur un &#233;cran vertical accroch&#233; au mur.&lt;/p&gt;
&lt;p&gt;Chaque &lt;strong&gt;page&lt;/strong&gt; ou &#171; vue &#187; affiche un type d'information bien sp&#233;cifique. Pour &#233;viter la surcharge, j'ai fait en sorte que &lt;strong&gt;chaque vue tourne automatiquement&lt;/strong&gt; toutes les 30 secondes (on verra cela dans un prochain article).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Page 1 : heure, m&#233;t&#233;o, fuseaux horaires et pr&#233;sence&lt;/h2&gt;
&lt;p&gt;La premi&#232;re vue est affich&#233;e le plus souvent dans la journ&#233;e. Elle rassemble les &lt;strong&gt;informations de base du quotidien.&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;&#128338; Heure, date et semaine :&lt;/strong&gt; avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;better-moment-card&lt;/code&gt;, dans un design sobre et &#233;pur&#233;.&lt;/li&gt;&lt;li&gt; &lt;strong&gt;&#127757; Fuseaux horaires :&lt;/strong&gt; j'affiche &#233;galement l'heure &#224; La R&#233;union et en Guadeloupe, deux lieux qui me sont chers. Chacun a sa propre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;better-moment-card&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; &lt;strong&gt;&#127782;&#65039; M&#233;t&#233;o actuelle &#224; Andr&#233;sy :&lt;/strong&gt; carte &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;weather-forecast&lt;/code&gt;, sans pr&#233;visions, juste l'info du jour avec une temp&#233;rature affich&#233;e en grand.&lt;/li&gt;&lt;li&gt; &lt;strong&gt;&#128101; Pr&#233;sence des membres de la famille :&lt;/strong&gt; une simple carte &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;entities&lt;/code&gt; qui affiche si les enfants et moi sommes &#224; la maison, en lien avec nos trackers.&lt;/li&gt;&lt;li&gt; &lt;strong&gt;&#128172; Compliment du jour :&lt;/strong&gt; un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;button-card&lt;/code&gt; qui affiche dynamiquement le contenu d'un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;input_text&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Chaque &#233;l&#233;ment utilise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;card-mod&lt;/code&gt; pour harmoniser les tailles de police, les alignements et supprimer tout encadrement visuel superflu. R&#233;sultat : une page lisible, a&#233;r&#233;e, &#233;l&#233;gante.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Structure de la page 1 (extrait YAML)&lt;/h2&gt;&lt;div class='spip_document_538 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.teddypayet.com/local/cache-vignettes/L500xH163/capture_d_e_cran_2025-06-08_a_21.50_18-6d24a.png?1749449747' width='500' height='163' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;views: - title: '1' type: custom:masonry-layout layout: width: 700 max_cols: 1 path: page-1 theme: dark-mode cards: - type: horizontal-stack cards: - type: custom:better-moment-card parentStyle: | line-height:normal; padding-bottom:0em; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 0px; grid-template-areas: 'date date' 'heure seconde' 'semaine semaine'; moment: - format: cccc, DD locale: fr timezone: Europe/Paris parentStyle: | font-size: 2rem; font-weight: 400; line-height: 1; margin:0; padding: 0; opacity: 0.5; grid-area: date; template: | {{moment}} - format: HH:mm timezone: Europe/Paris template: | {{moment}} parentStyle: | font-size: 5rem; font-weight: 300; line-height: 0.65; text-align: left; margin:0; margin-left: 0rem; padding: 0; grid-area: heure; - format: ss timezone: Europe/Paris template: | {{moment}} parentStyle: | font-size: 2.5rem; font-weight: 200; line-height: 0.65; text-align: left; margin:0; margin-left: -3rem; padding: 0; opacity: 0.5; grid-area: seconde; - format: W timezone: Europe/Paris parentStyle: | font-size: 2.15rem; font-weight: 400; line-height: 2; margin:0; padding: 0; opacity: 0.5; grid-area: semaine; template: | Semaine {{moment}} card_mod: style: | ha-card { border: none !important; background: transparent; border-width: 0; } #moment-0 { opacity: 1 !important; } #moment-2 { margin-left: 0.5rem !important; } - type: vertical-stack cards: - show_current: true show_forecast: false type: weather-forecast entity: weather.ma_ville forecast_type: daily forecast_slots: 5 card_mod: style: | ha-card { border: none !important; background: transparent; border-width: 0; } .temp-attribute .temp { font-size: 5rem !important; font-weight: 300 !important; text-align: right !important; line-height: 1 !important; } .info { flex-direction: column !important; align-items: flex-start; } .name-state, .temp-attribute { width: 100%; text-align: left; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class='spip_document_539 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.teddypayet.com/local/cache-vignettes/L377xH279/capture_d_e_cran_2025-06-08_a_21.50_24-644de.png?1749449747' width='377' height='279' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; - type: horizontal-stack cards: - type: vertical-stack cards: - type: custom:better-moment-card parentStyle: | line-height:normal; padding-bottom:0em; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 0px; grid-template-areas: 'time region' 'time fuseaux'; moment: - format: HH:mm timezone: Indian/Reunion parentStyle: | text-align:left; line-height:1.25; padding-top:0.2em; font-size:5rem; font-weight: 200; grid-area: time; template: | {{moment}} - format: HH:mm timezone: Indian/Reunion parentStyle: | text-align:left; line-height:1; padding-top:0.75em; margin-bottom:0; font-size:2rem; font-weight: 300; grid-area: region; template: | R&#233;union - format: HH:mm timezone: Indian/Reunion parentStyle: | text-align:left; line-height:0.5; padding-top:0.2em; font-size:1.5rem; font-weight: 100; margin-bottom:0; grid-area: fuseaux; template: | +2:00 card_mod: style: | #moment-0 { font-size: 4rem !important; } - type: custom:better-moment-card parentStyle: | line-height:normal; padding-bottom:0em; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 0px; grid-template-areas: 'time region' 'time fuseaux'; moment: - format: HH:mm timezone: America/Guadeloupe parentStyle: | text-align:left; line-height:1.25; padding-top:0.2em; font-size:5rem; font-weight: 200; grid-area: time; template: | {{moment}} - format: HH:mm timezone: America/Guadeloupe parentStyle: | text-align:left; line-height:1; padding-top:0.75em; margin-bottom:0; font-size:2rem; font-weight: 300; grid-area: region; template: | Guadeloupe - format: HH:mm timezone: America/Guadeloupe parentStyle: | text-align:left; line-height:0.5; padding-top:0.2em; font-size:1.5rem; font-weight: 100; margin-bottom:0; grid-area: fuseaux; template: | -6:00 card_mod: style: | ha-card { border: none !important; background: transparent; border-width: 0; } #moment-0 { font-size: 4rem !important; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class='spip_document_540 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.teddypayet.com/local/cache-vignettes/L388xH329/capture_d_e_cran_2025-06-08_a_21.54_56-7b9df.png?1749449747' width='388' height='329' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; - type: entities title: Pr&#233;sence entities: - entity: person.teddy - entity: person.alexandre ... &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class='spip_document_541 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.teddypayet.com/local/cache-vignettes/L500xH191/capture_d_e_cran_2025-06-08_a_21.53_09-6c613.png?1749449747' width='500' height='191' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; - type: custom:button-card name: | [[[ return states['input_text.compliments'].state ]]] card_mod: style: | * { font-size: 1.43rem; } ha-card { border: none; background: transparent; } #name { width: 90%; font-weight: 100; font-size: 4.7rem !important; text-align: center; text-wrap: balance; overflow-wrap: break-word; } subview: false icon: '' badges: [] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;&#129513; Le fichier complet sera d&#233;taill&#233; en fin de s&#233;rie, une fois toutes les pages abord&#233;es.&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;spip&#034;&gt;Choix esth&#233;tiques&lt;/h2&gt;
&lt;p&gt;Voici les quelques r&#232;gles que je me suis impos&#233;es :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Aucune bordure sur les cartes (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;card_mod&lt;/code&gt; avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;border: none&lt;/code&gt;).&lt;/li&gt;&lt;li&gt; Polices larges : entre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;2rem&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;5rem&lt;/code&gt; selon le type d'information.&lt;/li&gt;&lt;li&gt; Opacit&#233; modul&#233;e : les &#233;l&#233;ments moins importants sont en gris clair.&lt;/li&gt;&lt;li&gt; Alignement &#224; gauche pour l'heure et la m&#233;t&#233;o, centr&#233; pour les compliments.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Et la suite ?&lt;/h2&gt;
&lt;p&gt;Dans le prochain article, je vous pr&#233;senterai &lt;strong&gt;la deuxi&#232;me vue&lt;/strong&gt; de mon Magic Mirror, d&#233;di&#233;e &#224; l'organisation familiale : calendriers, routines, &#233;v&#233;nements importants. L'objectif &#233;tant que chacun, en passant devant l'&#233;cran, sache ce qui est pr&#233;vu aujourd'hui ou cette semaine.&lt;/p&gt;
&lt;p&gt;&#192; bient&#244;t pour la suite de cette s&#233;rie domotique !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;strong&gt;Magic Mirror avec Home Assistant&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror' class=&#034;spip_in&#034;&gt;Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant' class=&#034;spip_in&#034;&gt;Installer et configurer HACS pour enrichir Home Assistant&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Construire les pages Lovelace du Magic Mirror&lt;/a&gt; (9 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2' class=&#034;spip_in&#034;&gt;Calendriers, routines et organisation familiale (Page 2)&lt;/a&gt; (10 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3' class=&#034;spip_in&#034;&gt;Suivi de l'environnement et bien-&#234;tre (Page 3)&lt;/a&gt; (11 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror' class=&#034;spip_in&#034;&gt;Automatiser la rotation des pages du Magic Mirror&lt;/a&gt; (12 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod' class=&#034;spip_in&#034;&gt;Personnalisation et astuces d'affichage avec card_mod&lt;/a&gt; (13 juin)&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin' class=&#034;spip_in&#034;&gt;Magic Mirror avec Home Assistant, pour aller plus loin&#8230;&lt;/a&gt; (14 juin)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Home Assistant : Routine le matin avant l'&#233;cole</title>
		<link>https://www.teddypayet.com/Home-Assistant-Routine-le-matin-avant-l-ecole</link>
		<guid isPermaLink="true">https://www.teddypayet.com/Home-Assistant-Routine-le-matin-avant-l-ecole</guid>
		<dc:date>2021-04-26T06:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Domotique</dc:subject>
		<dc:subject>Home Assistant</dc:subject>

		<description>
&lt;p&gt;Gr&#226;ce &#224; l'utilisation des &#233;v&#233;nements cr&#233;&#233;s, je pouvais diffuser des messages le matin pour rythmer l'activit&#233; de mes enfants pour ne pas &#234;tre en retard pour l'&#233;cole. Nous nous r&#233;veillons &#224; la m&#234;me heure, prenons notre petit d&#233;jeuner ensemble. Parfois, on pouvait laisser le temps s'&#233;couler tranquillement et ainsi &#234;tre en retard. De ce fait, cette routine &#233;tait la bienvenue. &lt;br class='autobr' /&gt; Avant Home Assistant &lt;br class='autobr' /&gt;
Comme indiqu&#233; dans le second article de la s&#233;rie &#171; Home Assistant, ma domotique open source &#187;, (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.teddypayet.com/Blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.teddypayet.com/Domotique" rel="tag"&gt;Domotique&lt;/a&gt;, 
&lt;a href="https://www.teddypayet.com/Home-Assistant" rel="tag"&gt;Home Assistant&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH100/arton163-e97d2.jpg?1755172282' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Gr&#226;ce &#224; l'utilisation des &#233;v&#233;nements cr&#233;&#233;s, je pouvais diffuser des messages le matin pour rythmer l'activit&#233; de mes enfants pour ne pas &#234;tre en retard pour l'&#233;cole. Nous nous r&#233;veillons &#224; la m&#234;me heure, prenons notre petit d&#233;jeuner ensemble. Parfois, on pouvait laisser le temps s'&#233;couler tranquillement et ainsi &#234;tre en retard. De ce fait, cette routine &#233;tait la bienvenue.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Avant Home Assistant&lt;/h2&gt;
&lt;p&gt;Comme indiqu&#233; dans le second article de la s&#233;rie &lt;strong&gt;&#171; Home Assistant, ma domotique open source &#187;&lt;/strong&gt;, j'utilisais les &#233;v&#233;nements dans un calendrier Google Agenda pour lancer des messages. J'utilisais le m&#234;me principe pour la routine des enfants le matin pour leur autonomie. Ils aiment se pr&#233;parer sans avoir leurs parents sur le dos. &#128522; Je ne les bl&#226;merais pas sur le sujet. Ils ont appris &#224; &#234;tre autonome tr&#232;s rapidement.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Pour la configuration, l&#224; encore, tout est expliqu&#233; dans mon &lt;a href='https://www.teddypayet.com/Home-Assistant-Envoyer-des-messages-a-mes-Google-Home-Mini' class=&#034;spip_in&#034;&gt;second article&lt;/a&gt;. Nous utilisons :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Google Agenda&lt;/li&gt;&lt;li&gt; Les Google Home Mini&lt;/li&gt;&lt;li&gt; Google Translate TTS&lt;/li&gt;&lt;li&gt; Les automations HA&lt;/li&gt;&lt;li&gt; Les scripts HA&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Disclaimer&lt;/h2&gt;
&lt;p&gt;&lt;i&gt;Pour des raisons de &#171; vie priv&#233;e &#187;, je donnerai un exemple de planning commun &#224; un ensemble de parents et d'enfants. Le but n'est pas dire si oui ou non mes enfants ou les enfants en g&#233;n&#233;ral ont CE programme. L'exemple pourrait tr&#232;s bien &#234;tre un programme pour un adulte. Ce n'est qu'un sc&#233;nario de mise en place d'automatisation.&lt;/i&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Le principe de fonctionnement&lt;/h2&gt;
&lt;p&gt;En p&#233;riode scolaire, nos enfants se r&#233;veillent &#224; 7h. Puis vont prendre leur petit-d&#233;jeuner. &lt;br class='autobr' /&gt;
&#192; 7h30, ils doivent aller se pr&#233;parer dans la salle de bain.&lt;br class='autobr' /&gt;
&#192; 7h45, un petit rappel est lanc&#233; au cas o&#249; ce matin on aurait du mal.&lt;br class='autobr' /&gt;
&#192; 8h00, c'est bient&#244;t l'heure d'aller &#224; l'&#233;cole. Donc, on doit avoir fait les derni&#232;res t&#226;ches de la matin&#233;e.&lt;br class='autobr' /&gt;
&#192; 8h10, il est temps de mettre ses chaussures.&lt;br class='autobr' /&gt;
&#192; 8h15, on prend son sac &#224; dos et on part &#224; l'&#233;cole.&lt;/p&gt;
&lt;p&gt;Le d&#233;roul&#233; est tr&#232;s simple comme vous pouvez le voir. Nous avons le principe suivant :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Nous sommes un jour d'&#233;cole primaire&lt;/li&gt;&lt;li&gt; Nous ne sommes pas en p&#233;riode de vacances&lt;/li&gt;&lt;li&gt; Nous sommes &#224; une heure pr&#233;cise de la matin&#233;e.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Nous avons tous nos crit&#232;res pour ex&#233;cuter la routine.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les capteurs (sensors)&lt;/h2&gt;
&lt;p&gt;Nous allons cr&#233;er &#224; minima 2 capteurs :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;P&#233;riode scolaire :&lt;/strong&gt; d&#233;terminer si nous sommes en vacances ou pas ;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Jour d'&#233;cole primaire :&lt;/strong&gt; dans notre acad&#233;mie, les enfants ont &#233;coles le lundi, mardi, jeudi et vendredi.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Capteurs &#171; P&#233;riode scolaire &#187;&lt;/h2&gt;
&lt;p&gt;Pour ce capteur, nous utiliserons 2 calendriers :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Jours f&#233;ri&#233;s en France. Cf. &lt;a href=&#034;https://www.data.gouv.fr/fr/datasets/jours-feries-en-france/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.data.gouv.fr/fr/datasets/jours-feries-en-france/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Vacances scolaires de la zone C. Cf. &lt;a href=&#034;https://www.data.gouv.fr/fr/datasets/le-calendrier-scolaire-2019-2020-et-2020-2021-format-ical/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.data.gouv.fr/fr/datasets/le-calendrier-scolaire-2019-2020-et-2020-2021-format-ical/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Vacances compl&#233;mentaires, compl&#233;ments. Ce calendrier est cr&#233;&#233; manuellement et permet d'indiquer des jours qui ne sont pas &#171; officiels &#187; dans l'un des 2 calendriers pr&#233;c&#233;dents. Exemple : un pont, une journ&#233;e enfant malade, etc.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Vous pouvez ajouter tr&#232;s facilement des calendriers au format ics dans Google Agenda. Ce qui permettra &#224; notre int&#233;gration HA de les retrouver. Cf. &lt;a href=&#034;https://www.home-assistant.io/integrations/calendar.google/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.home-assistant.io/integrations/calendar.google/&lt;/a&gt; &lt;br class='autobr' /&gt;
Le calendrier des jours f&#233;ri&#233;s en France sera nomm&#233; dans le pr&#233;sent article &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;calendar.jours_feries_en_france&lt;/code&gt;. Et le calendrier des vacances scolaires &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;calendar.calendrier_scolaire_zone_c&lt;/code&gt;.&lt;br class='autobr' /&gt;
Pour le calendrier de &#171; vacances scolaires compl&#233;mentaires &#187;, il suffira de cr&#233;er au besoin un &#233;v&#233;nement sur une journ&#233;e enti&#232;re (donc sans horaire) pour indication.&lt;/p&gt;
&lt;p&gt;Dans notre fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;configuration.yaml&lt;/code&gt;, je dois indiquer o&#249; trouver mes sensors. Je choisis, comme pour les automatisations d'avoir tous mes sensors dans un r&#233;pertoire :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;sensor: !include_dir_list sensors/&lt;/textarea&gt;
&lt;p&gt;Cela fait, je cr&#233;e un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;periode_scolaire.yaml&lt;/code&gt; dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sensors/&lt;/code&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='17' class='spip_cadre spip_cadre_block' dir='ltr'&gt;platform: template sensors: periode_scolaire: friendly_name: 'P&#233;riode scolaire' unique_id: sensor_periode_scolaire value_template: &gt;- {%- if is_state('calendar.jours_feries_en_france', 'off') and is_state('calendar.vacances_scolaires_complements', 'off') and is_state('calendar.calendrier_scolaire_zone_c', 'off') -%} on {%- else -%} off {%- endif -%}&lt;/textarea&gt;
&lt;p&gt;Ce capteur v&#233;rifie si les 2 calendriers ont la valeur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;off&lt;/code&gt; pour savoir &#224; quelle p&#233;riode je me trouve. La valeur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;off&lt;/code&gt; pour ces calendriers signifient qu'il n'y a pas d'&#233;v&#233;nements dans la journ&#233;e. Donc, pas de vacances, pas de jours f&#233;ri&#233;s, pas de pont du weekend, etc.&lt;br class='autobr' /&gt;
Nous serons bien en p&#233;riode scolaire.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Capteurs &#171; jours d'&#233;cole primaire &#187;&lt;/h2&gt;
&lt;p&gt;Pour ce capteur ci, nous allons simplement indiquer que nous sommes l'un de ces jours :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Lundi&lt;/li&gt;&lt;li&gt; Mardi&lt;/li&gt;&lt;li&gt; Jeudi&lt;/li&gt;&lt;li&gt; Vendredi&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Le mercredi, l'&#233;cole primaire n'a pas classe le mercredi dans notre r&#233;gion.&lt;br class='autobr' /&gt;
Pour les enfants au coll&#232;ge, on pourrait tout simplement utiliser l'int&#233;gration de &#171; workday &#187;. &lt;a href=&#034;https://www.home-assistant.io/integrations/workday/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.home-assistant.io/integrations/workday/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;M&#234;me principe que pr&#233;c&#233;demment, nous cr&#233;ons un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jour_ecole_primaire.yaml&lt;/code&gt; dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sensors/&lt;/code&gt; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='15' class='spip_cadre spip_cadre_block' dir='ltr'&gt;platform: template sensors: jour_ecole_primaire: friendly_name: 'Jours &#233;cole primaire' unique_id: sensor_jour_ecole_primaire value_template: &gt;- {%- if (now().weekday() == 0) or (now().weekday() == 1) or (now().weekday() == 3) or (now().weekday() == 4) -%} on {%- else -%} off {%- endif -%}&lt;/textarea&gt;
&lt;p&gt;Nous utilisons les fonctions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;now()&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;weekeday()&lt;/code&gt; qui retourneront, combin&#233;es, un chiffre correspondant au num&#233;ro de la semaine &lt;i&gt;(Lundi -&gt; 0, mardi -&gt; 1, mercredi -&gt; 2, jeudi -&gt; 3, vendredi -&gt; 4, samedi -&gt; 5 et dimanche -&gt; 6)&lt;/i&gt;. &lt;br class='autobr' /&gt;
On pourrait &#233;crire ce template de fa&#231;on plus condens&#233;e. Mais j'ai voulu privil&#233;gier la lisibilit&#233; dans le pr&#233;sent article.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;L'automatisation&lt;/h2&gt;
&lt;p&gt;Nous pourrions cr&#233;er une automatisation par heure de d&#233;clenchement&#8230; &#199;a se fait&#8230; Mais plus nous avons d'heure de d&#233;clenchement, plus nous auront de fichiers &#224; cr&#233;er et &#224; maintenir.&lt;br class='autobr' /&gt;
Nous allons donc cr&#233;er un fichier d'automatisation et utiliser la m&#233;thode &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;choose&lt;/code&gt; de HA. &lt;a href=&#034;https://www.home-assistant.io/docs/scripts/#choose-a-group-of-actions&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.home-assistant.io/docs/scripts/#choose-a-group-of-actions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Voici le code que j'ai utilis&#233; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;id: automation_ecole_routines alias: Routines en p&#233;riode scolaire. trigger: platform: time_pattern hours: '*' minutes: '*' condition: - condition: and conditions: - condition: state entity_id: sensor.periode_scolaire state: 'on' action: - choose: ############################## ############################## ## 07:05 - conditions: - condition: and conditions: - condition: template value_template: &#034;{{ (now().timestamp() | timestamp_custom('%H:%M')) == '07:05' }}&#034; - condition: state entity_id: sensor.jour_ecole_primaire state: 'on' sequence: - service: rest_command.mm_showalert data_template: titre: '&lt;h2&gt;Attention&lt;/h2&gt;' texte: 'Il est l'heure de se r&#233;veiller les enfants. Il faut se r&#233;veiller.' duree: &#034;120000&#034; - service: script.media_player_notify_all data_template: message: &gt; {{ [ &#034;Il est l'heure de se r&#233;veiller les enfants. Il faut se r&#233;veiller.&#034;, &#034;Il est l'or! L'or de se r&#233;veiller! Il est l'or&#034;, &#034;Bonjour mes amours, il est temps de se lever.&#034;, &#034;Bien grandir, &#231;a commence d&#232;s le matin !&#034; ] | random }} volume: 0.6 ############################## ############################## ## 07:35 - conditions: - condition: and conditions: - condition: template value_template: &#034;{{ (now().timestamp() | timestamp_custom('%H:%M')) == '07:35' }}&#034; - condition: state entity_id: sensor.jour_ecole_primaire state: 'on' sequence: - service: rest_command.mm_showalert data_template: titre: '&lt;h2&gt;Attention&lt;/h2&gt;' texte: 'Les enfants, il faut aller se pr&#233;parer maintenant, brossage de dents et des cheveux.' duree: &#034;120000&#034; - service: script.media_player_notify_all data_template: message: &gt; {{ [ &#034;Les enfants, il faut aller se pr&#233;parer maintenant, brossage de dents et des cheveux.&#034;, &#034;L'heure de se pouponner est arriv&#233;e.&#034;, &#034;Il est temps de se rev&#234;tir de son plus bel apparat!&#034;, &#034;Le soin &#224; son hygi&#232;ne et son apparence sont tr&#232;s importants! Direction la salle de bain.&#034; ] | random }} volume: 0.6 ############################## ############################## ## 07:45 - conditions: - condition: and conditions: - condition: template value_template: &#034;{{ (now().timestamp() | timestamp_custom('%H:%M')) == '07:45' }}&#034; - condition: state entity_id: sensor.jour_ecole_primaire state: 'on' sequence: - service: rest_command.mm_showalert data_template: titre: '&lt;h2&gt;Attention&lt;/h2&gt;' texte: '1er rappel, les enfants, il faut aller se pr&#233;parer maintenant, brossage de dents et des cheveux.' duree: &#034;120000&#034; - service: script.media_player_notify_all data_template: message: &gt; {{ [ &#034;1er rappel, les enfants, il faut aller se pr&#233;parer maintenant, brossage de dents et des cheveux.&#034;, &#034;1er rappel, l'heure de se pouponner est arriv&#233;e.&#034;, &#034;1er rappel, il est temps de se rev&#234;tir de son plus bel apparat!&#034;, &#034;1er rappel, le soin &#224; son hygi&#232;ne et son apparence sont tr&#232;s importants! Direction la salle de bain.&#034; ] | random }} volume: 0.6 ############################## ############################## ## 08:00 - conditions: - condition: and conditions: - condition: template value_template: &#034;{{ (now().timestamp() | timestamp_custom('%H:%M')) == '08:00' }}&#034; - condition: state entity_id: sensor.jour_ecole_primaire state: 'on' sequence: - service: rest_command.mm_showalert data_template: titre: '&lt;h2&gt;Attention&lt;/h2&gt;' texte: &#034;Derni&#232;re ligne droite avant l'&#233;cole, donc t&#226;ches m&#233;nag&#232;res, bisous et c&#226;lins.&#034; duree: &#034;120000&#034; - service: script.media_player_notify_all data_template: message: &gt; {{ [ &#034;Derni&#232;re ligne droite avant l'&#233;cole, donc t&#226;ches m&#233;nag&#232;res, bisous et c&#226;lins.&#034;, &#034;Bient&#244;t le d&#233;part pour l'&#233;cole, attenons-nous &#224; nos derni&#232;res t&#226;ches.&#034;, &#034;Le sourire aux l&#232;vres, tenons-nous pr&#234;t pour le d&#233;part &#224; l'&#233;cole.&#034;, &#034;La vie a la couleur que tu lui donnes! Choisie bien la couleur pour que chaque jour soit un kif.&#034; ] | random }} volume: 0.6 ############################## ############################## ## 08:10 - conditions: - condition: and conditions: - condition: template value_template: &#034;{{ (now().timestamp() | timestamp_custom('%H:%M')) == '08:10' }}&#034; - condition: state entity_id: sensor.jour_ecole_primaire state: 'on' sequence: - service: rest_command.mm_showalert data_template: titre: '&lt;h2&gt;Attention&lt;/h2&gt;' texte: 'Il est 8h10, on met les chaussures. Hop hop hop. Dans la joie et la bonne humeur!' duree: &#034;120000&#034; - service: script.media_player_notify_all data_template: message: &gt; {{ [ &#034;Il est 8h10, on met les chaussures. Hop hop hop. Dans la joie et la bonne humeur!&#034;, &#034;Derni&#232;re ligne droite avant le d&#233;part pour ce lieu de savoir!&#034;, &#034;Mettons nos derniers accessoires, C'est bient&#244;t l'heure du d&#233;part.&#034; ] | random }} volume: 0.6 ############################## ############################## ## 08:15 - conditions: - condition: and conditions: - condition: template value_template: &#034;{{ (now().timestamp() | timestamp_custom('%H:%M')) == '08:15' }}&#034; - condition: state entity_id: sensor.jour_ecole_primaire state: 'on' sequence: - service: rest_command.mm_showalert data_template: titre: '&lt;h2&gt;Attention&lt;/h2&gt;' texte: 'Il est 8h15, on prend son sac &#224; dos et on commence sa journ&#233;e!' duree: &#034;120000&#034; - service: script.media_player_notify_all data_template: message: &gt; {{ [ &#034;Il est 8h15, on prend son sac &#224; dos et on commence sa journ&#233;e!&#034;, &#034;C'est l'heure du d&#233;part des troupes pour l'&#233;cole! Soyons fort!&#034;, &#034;Ce n'est pas parce que nous nous quittons maintenant, que nous ne nous retrouverons pas mieux ce soir.&#034; ] | random }} volume: 0.6&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Je n'explique pas plus ce code car tout a &#233;t&#233; dit auparavant. Sauf un petit point, un bonus : le service &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rest_command&lt;/code&gt;. Vous avez pu voir que j'ai un Magic Mirror &#224; la maison. Je l'utilise pour afficher un message selon l'alerte.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;RESTful command&lt;/h2&gt;
&lt;p&gt;Il n'y a rien de complexe ici. J'utilise l'int&#233;gration HA des &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rest_command&lt;/code&gt;. Cf. &lt;a href=&#034;https://www.home-assistant.io/integrations/rest_command/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.home-assistant.io/integrations/rest_command/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Voici mon code ins&#233;r&#233; dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;configuration.yaml&lt;/code&gt; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='13' class='spip_cadre spip_cadre_block' dir='ltr'&gt;rest_command: mm_showalert: url: http://192.168.0.217:8080/api/module/alert/showalert method: POST headers: accept: 'application/json, text/html' user-agent: 'Mozilla/5.0 {{ useragent }}' payload: '{&#034;title&#034;: &#034;{{titre}}&#034;, &#034;message&#034;: &#034;{{texte}}&#034;,&#034;timer&#034;: {{ duree }} }' content_type: 'application/json; charset=utf-8'&lt;/textarea&gt;
&lt;p&gt;J'ai install&#233; sur le MagicMirror le module &#171; MMM Remote Control &#187; pour b&#233;n&#233;ficier de l'API &lt;a href=&#034;https://github.com/Jopyth/MMM-Remote-Control/blob/master/API/README.md#basic-examples-for-showing-an-alert-on-the-screen&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://github.com/Jopyth/MMM-Remote-Control/blob/master/API/README.md#basic-examples-for-showing-an-alert-on-the-screen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Je n'offre pas de SAV sur le sujet &#9786;&#65039; C'est juste un bonus pour cette automatisation.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Pour aller plus loin&lt;/h2&gt;
&lt;p&gt;On pourrait aller beaucoup plus loin en prenant en compte par exemple des capteurs :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Est-ce que l'humidit&#233; a augment&#233; dans la salle de bain ? Si oui, c'est qu'elle est en cours d'utilisation, donc, pas la peine de lancer le rappel.&lt;/li&gt;&lt;li&gt; Est-ce que le capteur de mouvement a per&#231;u une pr&#233;sence dans la salle &#224; manger ou la cuisine ?&lt;/li&gt;&lt;li&gt; Est-ce qu'il y a encore des personnes &#224; la maison ? D&#233;tection d'un t&#233;l&#233;phone portable sur le r&#233;seau ? Non, alors tout le monde est parti.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;La seule limite &#224; ces automatisations est notre imagination. Les capteurs sont accessibles financi&#232;rement et facilement int&#233;grable &#224; HA. Il faut juste prendre le temps n&#233;cessaire pour l'acqu&#233;rir et l'int&#233;grer. &#128513;&lt;/p&gt;
&lt;p&gt;Voil&#224;. Comme d'habitude, je suis preneur de vos points d'am&#233;liorations, de votre vision des choses.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Dans la m&#234;me s&#233;rie&lt;/h2&gt;
&lt;p&gt;&lt;a href='https://www.teddypayet.com/Ma-domotique-open-source' class=&#034;spip_in&#034;&gt;Pr&#233;sentation &lt;/a&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Home-Assistant-Envoyer-des-messages-a-mes-Google-Home-Mini' class=&#034;spip_in&#034;&gt;#1 Messages envoy&#233;s sur les GHM &lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.teddypayet.com/Home-Assistant-Routine-le-matin-avant-l-ecole' class=&#034;spip_in&#034;&gt;#1.1 Routine le matin avant l'&#233;cole &lt;/a&gt;&lt;/li&gt;&lt;li&gt; #1.2 Routine du soir&lt;/li&gt;&lt;li&gt; #1.3 L'&#233;cole &#224; la maison&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; #2 &#201;teindre les lumi&#232;res&lt;/li&gt;&lt;li&gt; #3 Baisser le volume des GHM&lt;/li&gt;&lt;li&gt; #4 T&#226;ches m&#233;nag&#232;res&lt;/li&gt;&lt;li&gt; #5 Habit Tracker&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Photo by &lt;a href=&#034;https://unsplash.com/@deleece?utm_content=creditCopyText&#034;&gt;Deleece Cook&lt;/a&gt; on &lt;a href=&#034;https://unsplash.com/s/photos/back-to-school?utm_content=creditCopyText&#034;&gt;Unsplash&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>



</channel>

</rss>
