<?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=82&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>MagicMirror&#178;, configuration script&#233;e, 2&#232;me partie</title>
		<link>https://www.teddypayet.com/MagicMirror%C2%B2-configuration-scriptee-2eme-partie</link>
		<guid isPermaLink="true">https://www.teddypayet.com/MagicMirror%C2%B2-configuration-scriptee-2eme-partie</guid>
		<dc:date>2020-04-14T22:55:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Teddy Payet</dc:creator>


		<dc:subject>Astuce</dc:subject>
		<dc:subject>Notes de d&#233;veloppement</dc:subject>
		<dc:subject>Lignes de commandes</dc:subject>
		<dc:subject>MagicMirror</dc:subject>
		<dc:subject>Domotique</dc:subject>

		<description>
&lt;p&gt;Comme vous le savez tous, nous sommes en confinement depuis mi-mars. Pour m'occuper un peu en ch&#244;mage partiel, en plus de ma vie de famille, je me suis inscris &#224; une groupe d'entraide sur le MagicMirror sur Facebook. J'ai eu l'agr&#233;able surprise de voir qu'un article de mon blog &#233;tait cit&#233;. Merci de la confiance de ces utilisateurs ! Apr&#232;s quelques &#233;changes, j'ai propos&#233; d'expliquer plus en d&#233;tail mon installation script&#233;e et notamment ce &#224; quoi correspond mes diff&#233;rents principaux scripts. (&#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/Astuce" rel="tag"&gt;Astuce&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/Lignes-de-commandes" rel="tag"&gt;Lignes de commandes&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;

		</description>


 <content:encoded>&lt;img src='https://www.teddypayet.com/local/cache-vignettes/L150xH100/arton158-32c60.jpg?1755172268' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Comme vous le savez tous, nous sommes en confinement depuis mi-mars. Pour m'occuper un peu en ch&#244;mage partiel, en plus de ma vie de famille, je me suis inscris &#224; une groupe &lt;a href=&#034;https://www.facebook.com/groups/2832574870153883/about/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;d'entraide sur le MagicMirror&lt;/a&gt; sur Facebook. J'ai eu l'agr&#233;able surprise de voir qu'un article de mon blog &#233;tait cit&#233;. Merci de la confiance de ces utilisateurs ! &lt;br class='autobr' /&gt;
Apr&#232;s quelques &#233;changes, j'ai propos&#233; d'expliquer plus en d&#233;tail mon installation script&#233;e et notamment ce &#224; quoi correspond mes diff&#233;rents principaux scripts.&lt;/p&gt;
&lt;p&gt;Tout a &#233;t&#233; d&#233;pos&#233; sur github (vous pourrez trouver le lien en bas de l'article). Je reprends ici plus ou moins le contenu du fichier Readme.&lt;/p&gt;
&lt;p&gt;Cet article est un &lt;strong&gt;exemple d'automatisation de la maintenance &lt;/strong&gt; de mon installation de MagicMirror. Le d&#233;p&#244;t github a pour but de montrer la possibilit&#233; d'automatiser la maintenance d'une installation d'un MagicMirror.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Le d&#233;p&#244;t s'appelle mm_config_automate. Son existence n'est que p&#233;dagogique. Il n'est en aucun cas un module de MagicMirror.&lt;/p&gt;
&lt;p&gt;De plus, je ne suis pas responsable d'une alt&#233;ration de vos donn&#233;es. Il vous faudra tester et adapter chaque script pour correspondre &#224; VOS attentes.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Liste des scripts&lt;/h2&gt;
&lt;p&gt;L'ensemble des scripts sont en bash. Ils restent simples &#224; comprendre et &#224; prendre en main avec un peu de patience et de lecture. Voici la liste des scripts :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; first_install.sh&lt;/li&gt;&lt;li&gt; mm_reset.sh&lt;/li&gt;&lt;li&gt; mm_update.sh&lt;/li&gt;&lt;li&gt; update_files_config.sh&lt;/li&gt;&lt;li&gt; disk_usage.sh&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;first_install.sh&lt;/h2&gt;
&lt;p&gt;Ce script permet &lt;strong&gt;d'installer l'ensemble des &#233;l&#233;ments de base pour qu'un MagicMirror puisse fonctionner.&lt;/strong&gt; Il est &#224; lancer sur une installation toute belle, toute neuve d'un Raspberry Pi 3. Je n'ai pas test&#233; sur un Raspberry Pi 4 pour le moment. Il prend en compte un Raspbian bas&#233; sur un Debian Buster (10) mis &#224; disposition des utilisateurs en f&#233;vrier 2020.&lt;/p&gt;
&lt;p&gt;Il fera dans l'ordre :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;i&gt;sudo apt update -y&lt;/i&gt; : R&#233;cup&#232;re la liste des mises &#224; jour disponibles&lt;/li&gt;&lt;li&gt; &lt;i&gt;sudo apt upgrade -y&lt;/i&gt; : Installe quelques mises &#224; jour, ne supprime pas les packages&lt;/li&gt;&lt;li&gt; &lt;i&gt;sudo apt autoremove -y&lt;/i&gt; : Supprime tous les anciens paquets qui ne sont plus n&#233;cessaires&lt;/li&gt;&lt;li&gt; &lt;i&gt;sudo apt clean -y&lt;/i&gt; : Cette commande de terminal lib&#232;re de l'espace disque en nettoyant les fichiers .deb t&#233;l&#233;charg&#233;s du r&#233;f&#233;rentiel local.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Puis :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; On active le son par le HDMI ;&lt;/li&gt;&lt;li&gt; Forcer le HDMI ;&lt;/li&gt;&lt;li&gt; Forcer l'affichage vertical de l'&#233;cran ;&lt;/li&gt;&lt;li&gt; Enlever des programmes inutiles ;&lt;/li&gt;&lt;li&gt; Installation de quelques packages ;&lt;/li&gt;&lt;li&gt; Installation de Nodejs et NPM selon la m&#233;thode indiqu&#233;e ici : &lt;a href=&#034;https://github.com/audstanley/NodeJs-Raspberry-Pi&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://github.com/audstanley/NodeJs-Raspberry-Pi&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Ajouter les binaires de node dans le PATH ;&lt;/li&gt;&lt;li&gt; Installation de PM2 ;&lt;/li&gt;&lt;li&gt; Enregistrer les variables d'environnement (le home de MagicMirror, ainsi que de PM2) ;&lt;/li&gt;&lt;li&gt; Cr&#233;ation du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mm.sh&lt;/code&gt; dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/&lt;/code&gt; ;&lt;/li&gt;&lt;li&gt; Ex&#233;cution du script d'installation du MagicMirror ;&lt;/li&gt;&lt;li&gt; Sauvegarder les r&#233;glages de pm2 et lancement des scripts au d&#233;marrage ;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Et enfin, on enregistre le contenu du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;crontab.txt&lt;/code&gt; dans le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;crontab&lt;/code&gt; de l'utilisateur en cours.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;mm_reset.sh&lt;/h2&gt;
&lt;p&gt;Ce script installe MagicMirror &#224; partir du d&#233;p&#244;t github dudit projet. Il s'appelle &lt;i&gt;&#034;mm_reset&#034;&lt;/i&gt; au lieu de &lt;i&gt;&#034;mm_install&#034;&lt;/i&gt; car il supprime le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/MagicMirror/&lt;/code&gt; s'il existe. Donc, il faut faire attention &#224; ce point si vous d&#233;sirez garder une pr&#233;c&#233;dente installation.&lt;/p&gt;
&lt;p&gt;A son tour, ce script va lancer une s&#233;rie de commandes :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Arr&#234;t de MM gr&#226;ce &#224; pm2 stop mm ;&lt;/li&gt;&lt;li&gt; Effacer le r&#233;pertoire de MagicMirror si existant ;&lt;/li&gt;&lt;li&gt; R&#233;cup&#233;ration du d&#233;p&#244;t de MagicMirror ;&lt;/li&gt;&lt;li&gt; Passer sur la branche develop de MagicMirror ;&lt;/li&gt;&lt;li&gt; Cr&#233;ation des liens symboliques dans MM (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;custom.css&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config.js&lt;/code&gt;) ;&lt;/li&gt;&lt;li&gt; Installation des d&#233;pendances de MM gr&#226;ce &#224; npm ;&lt;/li&gt;&lt;li&gt; Lancement du script d'update des modules de MM (cf. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;update_files_config.sh&lt;/code&gt;) ;&lt;/li&gt;&lt;li&gt; Relancer MM sur pm2.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Liens symboliques&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dans le script &lt;i&gt;mm_reset.sh&lt;/i&gt;, il est pr&#233;sum&#233; que le fichier &lt;i&gt;&#034;config.js&#034;&lt;/i&gt; et le fichier de personnalisation de css vitaux &#224; MagicMirror soient pr&#233;sents dans votre r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/mm_config_automate/&lt;/code&gt;. Un lien symbolique dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/MagicMirror/css/&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/MagicMirror/config/&lt;/code&gt; sera fait pointant vers votre r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mm_config_automate&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;MagicMirror n'y verra que du feu !&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;mm_update.sh&lt;/h2&gt;
&lt;p&gt;Ce script est plus rapide. Dans ce d&#233;p&#244;t d'exemple, il n'est pas utilis&#233; dans le crontab. Il est &#224; utiliser manuellement lorsque MM doit &#234;tre mis &#224; jour.&lt;/p&gt;
&lt;p&gt;Il arr&#234;te MM par pm2, puis va dans le r&#233;pertoire de MagicMirror. A partir de l&#224;, le d&#233;p&#244;t git est mis &#224; jour avec les derniers fichiers. Une installation et une mise &#224; jour des packages npm sont lanc&#233;es.&lt;/p&gt;
&lt;p&gt;Cela fait, on relance MM sur pm2.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;update_files_config.sh&lt;/h2&gt;
&lt;p&gt;Ce script bash est le nerf de la guerre. Crontab appellera dans notre exemple le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;update_files_config.sh&lt;/code&gt; tous les jours &#224; 00h15.&lt;/p&gt;
&lt;p&gt;Ce script contient 2 fonctions cl&#233;s :&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;import_module&lt;/code&gt; ;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;delete_modules&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Apr&#232;s l'utilisation de ces fonctions, une boucle est lanc&#233;e pour v&#233;rifier l'existence du module MMM-AlarmClock. Ce dernier peut utiliser des fichiers mp3 comme sonnerie d'alarme.&lt;/p&gt;
&lt;p&gt;Si vous d&#233;sirez ajouter des fichiers mp3 &#224; votre convenance, il vous suffira de les copier dans le r&#233;pertoire sounds de votre d&#233;p&#244;t &lt;i&gt;&#034;mm_config_automate&#034;&lt;/i&gt;. Automatiquement, tous les soirs (selon le crontab mis en place), chaque fichier mp3 pr&#233;sent sera copi&#233; dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/MagicMirror/modules/MMM-AlarmClock/sounds/&lt;/code&gt;. Vous n'aurez plus &#224; vous soucier d'autres choses que sa bonne utilisation dans votre fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config.js&lt;/code&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;update_files_config.sh : fonction import_module&lt;/h2&gt;
&lt;p&gt;Cette fonction bash attend un param&#232;tre : l'url vers le d&#233;p&#244;t git du module que vous d&#233;sirez installer sur votre MagicMirror.&lt;/p&gt;
&lt;p&gt;Par exemple, si vous d&#233;sirez utiliser le module de pages de MM, vous devez indiquer dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;update_files_config.sh&lt;/code&gt; la commande suivante :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;import_module https://github.com/edward-shen/MMM-pages.git&lt;/textarea&gt;
&lt;p&gt;Elle ira dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/MagicMirror/modules/&lt;/code&gt;, v&#233;rifiera si le module existe d&#233;j&#224; (en gros l'existence du r&#233;pertoire &#034;MMM-pages&#034;) ou pas. S'il n'existe pas, elle clonera le r&#233;pertoire. Puis :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Acc&#233;der au r&#233;pertoire du module ;&lt;/li&gt;&lt;li&gt; Si un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;package.json &lt;/code&gt;existe, l'installation des packages &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;npm&lt;/code&gt; est lanc&#233;e.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Il faudra utiliser cette fonction autant de fois que de modules d&#233;sir&#233;s. Vous trouverez des exemples dans ledit fichier. &lt;br class='autobr' /&gt;
Cerise sur le gateau, si le module existe d&#233;j&#224;, il le mettra &#224; jour avec les derniers fichiers provenant du d&#233;p&#244;t que vous avez indiqu&#233; en param&#232;tre.&lt;/p&gt;
&lt;div style=&#034;width:100%;height:0;padding-bottom:92%;position:relative;&#034;&gt;&lt;iframe src=&#034;https://giphy.com/embed/12NUbkX6p4xOO4&#034; width=&#034;100%&#034; height=&#034;100%&#034; style=&#034;position:absolute&#034; frameBorder=&#034;0&#034; class=&#034;giphy-embed&#034; allowFullScreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;update_files_config.sh : fonction delete_modules&lt;/h2&gt;
&lt;p&gt;Cette fonction se lance apr&#232;s l'ensemble des appels &#224; &lt;i&gt;import_module&lt;/i&gt;. Elle a pour but de supprimer les modules pr&#233;sents dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/MagicMirror/modules/&lt;/code&gt; devenus obsol&#232;tes.&lt;/p&gt;
&lt;p&gt;Comme vous le savez, pour utiliser un module dans MagicMirror, nous devons l'avoir t&#233;l&#233;charg&#233; d'une part dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/MagicMirror/modules/&lt;/code&gt; mais d'autre part l'avoir indiqu&#233; dans notre fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config.js&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/MagicMirror/modules/nom_repertoire/&lt;/code&gt; n'est pas indiqu&#233; dans ce fichier, le r&#233;pertoire sera consid&#233;r&#233; comme obsol&#232;te. Donc, qu'il peut &#234;tre supprim&#233;. La pr&#233;sente fonction v&#233;rifiera chaque r&#233;pertoire dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;modules/&lt;/code&gt; &#224; l'exclusion de :&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;default/&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;node_modules/&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Cela pr&#233;servera l'espace disque de votre Raspberry Pi et &#233;vitera des erreurs dans votre MagicMirror.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;disk_usage.sh&lt;/h2&gt;
&lt;p&gt;Ce script permet de savoir le pourcentage d'utilisation d'espace disque. Dans le pr&#233;sent exemple, si le taux d'utilisation arrive &#224; 90% de sa capacit&#233;, un email est envoy&#233; (je vous laisse le soin de configurer le serveur d'envoi d'emails).&lt;/p&gt;
&lt;p&gt;Il faut savoir que pm2 &#233;crit beaucoup d'information dans les logs (cela d&#233;pend surtout des applications lanc&#233;es sous pm2 mais c'est un autre sujet). En prenant cela en compte, si le taux d'utilisation exc&#232;de les 90%, le script lance en premier lieu la commande pm2 flush pour vider l'ensemble des fichiers logs de pm2. Puis v&#233;rifie &#224; nouveau le taux de remplissage. Si la commande n'a pas chang&#233; la donne, l'email est envoy&#233;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;crontab.txt&lt;/h2&gt;
&lt;p&gt;Ce petit bout de fichier vous permet d'indiquer l'heure &#224; laquelle vos routines doivent &#234;tre mises en place.&lt;/p&gt;
&lt;p&gt;Dans le pr&#233;sent exemple, voici les routines :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; A 0h00 : On v&#233;rifie d'abord l'espace disque&lt;/li&gt;&lt;li&gt; A 0h05 : On met &#224; jour les fichiers de mm_config_automate&lt;/li&gt;&lt;li&gt; A 0h10 : On importe le contenu du fichier crontab.txt dans le crontab &#224; 00h10&lt;/li&gt;&lt;li&gt; A 0h15 : On peut maintenant lancer les scripts de routine (update_files_config.sh)&lt;/li&gt;&lt;li&gt; A 0h20 : On relance MagicMirror pour prendre en compte la configuration &#224; jour.&lt;/li&gt;&lt;li&gt; Tous les mois, on red&#233;marre le Raspberry Pi&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Si vous &#234;tes parents et/ou assujetti &#224; des p&#233;riodes de vacances et un planning diff&#233;rents durant ces p&#233;riodes, il est possible de mettre en place un fichier de config d&#233;di&#233; &#224; cette p&#233;riode.&lt;/p&gt;
&lt;p&gt;Dans notre exemple, le contenu de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config.js&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config_vac.js&lt;/code&gt; sont identiques. Le but est d'illustrer l'existence des fichiers selon la p&#233;riode. En ayant en t&#234;te les dates de vacances qui vous int&#233;ressent, vous pouvez ajouter une ligne d&#233;di&#233;e dans crontab pour que le lien symbolique de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/MagicMirror/config/config.js&lt;/code&gt; pointe vers le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/mm_config_automate/config_vac.js&lt;/code&gt; au lieu de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/mm_config_automate/config.js&lt;/code&gt;. Le jour o&#249; vous devez revenir au travail (donc la fin de votre p&#233;riode de vacances) &#224; 00h30, il suffira de remettre le lien symbolique vers &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/pi/mm_config_automate/config.js&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Exemple pour les vacances de l'Ascension de la zone C :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='9' class='spip_cadre spip_cadre_block' dir='ltr'&gt;############### # Vacances Ascension : 20 mai 30 0 20 5 0 cd /home/pi/MagicMirror/config/; rm -rf config.js; ln -s /home/pi/mm_config_automate/config_vac.js config.js; pm2 restart mm # Rentr&#233;e : 25 mai 30 0 25 5 * cd /home/pi/MagicMirror/config/; rm -rf config.js; ln -s /home/pi/mm_config_automate/config.js config.js; pm2 restart mm&lt;/textarea&gt;
&lt;p&gt;Voil&#224;. A vous de prendre en main ce projet en le copiant dans un d&#233;p&#244;t personnel priv&#233; et de le faire vivre.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Le projet sur github&lt;/h2&gt;
&lt;p&gt;Comme indiqu&#233; en d&#233;but de cet article, les diff&#233;rents fichiers ont &#233;t&#233; d&#233;pos&#233; sur github. Ils ont pour but de vous aider &#224; mettre en place votre automatisation :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://github.com/Ybbet/mm_config_automate&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://github.com/Ybbet/mm_config_automate&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Attention de ne pas mettre le projet en public si vous l'utiliser sur VOTRE installation. Pr&#233;servez votre vie... priv&#233;e.&lt;/p&gt;
&lt;div class=&#034;row&#034;&gt; &lt;div class=&#034;col-xs-12&#034;&gt; &lt;h2&gt;A lire aussi&lt;/h2&gt; &lt;ul class=&#034;spip spip-list&#034;&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/MagicMirror2-un-miroir-qui-vous-veut-du-bien'&gt;MagicMirror&#178;, un miroir qui vous veut du bien.&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/MagicMirror2-on-recommence-depuis-le-debut'&gt;MagicMirror&#178;, on recommence depuis le d&#233;but&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/MagicMirror2-un-socle-qui-lui-va-comme-un-gant'&gt;MagicMirror&#178;, un socle qui lui va comme un gant&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/MagicMirror2-un-Raspberry-Pi-un-ecran-et-cie-sont-dans-un-bateau'&gt;MagicMirror&#178;, un Raspberry Pi, un &#233;cran et cie sont dans un bateau&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/MagicMirror2-ma-configuration-personnalisee'&gt;MagicMirror&#178;, ma configuration personnalis&#233;e&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/MagicMirror2-configuration-scriptee'&gt;MagicMirror&#178;, configuration script&#233;e&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;em&gt;MagicMirror&#178;, configuration script&#233;e, 2&#232;me partie&lt;/em&gt;&lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/Pourquoi-j-ai-integre-Home-Assistant-dans-mon-MagicMirror'&gt;Pourquoi j'ai int&#233;gr&#233; Home Assistant dans mon MagicMirror&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/Installer-et-configurer-HACS-pour-enrichir-Home-Assistant'&gt;Installer et configurer HACS pour enrichir Home Assistant&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/Construire-les-pages-Lovelace-du-Magic-Mirror'&gt;Construire les pages Lovelace du Magic Mirror&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/Calendriers-routines-et-organisation-familiale-Page-2'&gt;Calendriers, routines et organisation familiale (Page 2)&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/Suivi-de-l-environnement-et-bien-etre-Page-3'&gt;Suivi de l'environnement et bien-&#234;tre (Page 3)&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/Automatiser-la-rotation-des-pages-du-Magic-Mirror'&gt;Automatiser la rotation des pages du Magic Mirror&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/Personnalisation-et-astuces-d-affichage-avec-card_mod'&gt;Personnalisation et astuces d'affichage avec card_mod&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/Magic-Mirror-avec-Home-Assistant-pour-aller-plus-loin'&gt;Magic Mirror avec Home Assistant, pour aller plus loin&#8230;&lt;/a&gt; &lt;/li&gt; &lt;li class=&#034;item&#034;&gt;&lt;a href='https://www.teddypayet.com/20-ans-de-blogging-technique-ce-que-j-ai-appris'&gt;20 ans de blogging technique : ce que j'ai appris&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
