{"id":4480,"date":"2023-06-18T19:29:04","date_gmt":"2023-06-18T17:29:04","guid":{"rendered":"https:\/\/www.sigalou-domotique.fr\/?p=4480"},"modified":"2026-01-02T17:01:22","modified_gmt":"2026-01-02T15:01:22","slug":"travail-sur-les-cartes-ha-de-pronote","status":"publish","type":"post","link":"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote","title":{"rendered":"I'm working on Pronote's HA cards."},"content":{"rendered":"<p>This block is the follow-up of my work on the maps proposed by @vingerha and those of @dathosim.<\/p>\r\n<p>My goal is to replace the script <a href=\"https:\/\/github.com\/dathosim\/Pronote2Homeassistant\" target=\"_blank\" rel=\"noopener\">python<\/a> by <a href=\"https:\/\/github.com\/delphiki\/hass-pronote\" target=\"_blank\" rel=\"noopener\">integration<\/a>.<!--more--><\/p>\r\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<label for=\"ez-toc-cssicon-toggle-item-6aea4cf37a900\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6aea4cf37a900\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote\/#Mise_a_jour_de_cette_page\" >[Update of this page]<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote\/#Prerequis\" >Prerequisite<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote\/#La_carte_emploi_du_temps\" >The Time Use Map<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote\/#La_carte_des_devoirs\" >The homework map<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote\/#La_carte_des_evaluations\" >Map of evaluations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote\/#La_carte_des_absences\" >The map of absences<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote\/#Carte_du_Menu_de_la_cantine\" >Menu map of the canteen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote\/#Ajout_dinformations_complementaires\" >Addition of additional information<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigalou-domotique.fr\/en\/travail-sur-les-cartes-ha-de-pronote\/#Resultat_final\" >Final result\u00a0<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Mise_a_jour_de_cette_page\"><\/span>[Update of this page]<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<ul>\r\n<li>Following the correction of V0.6.0, <code>homeworks<\/code> replaced by <code>homework<\/code>\u00a0<\/li>\r\n<li>Added Canteen Menu card (&gt;V6.0.6)<\/li>\r\n<\/ul>\r\n<h3><span class=\"ez-toc-section\" id=\"Prerequis\"><\/span>Prerequisite<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>I am thinking of installing the interface <a href=\"https:\/\/github.com\/thomasloven\/lovelace-card-mod\" target=\"_blank\" rel=\"noopener\">card-mod<\/a> in HACS<\/p>\r\n<p><a href=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/8ce2defc80963bf54ef910b4261023c546729b5c_2_690x338.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5014\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/8ce2defc80963bf54ef910b4261023c546729b5c_2_690x338.png\" alt=\"\" width=\"690\" height=\"338\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/8ce2defc80963bf54ef910b4261023c546729b5c_2_690x338.png 690w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/8ce2defc80963bf54ef910b4261023c546729b5c_2_690x338-600x294.png 600w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/8ce2defc80963bf54ef910b4261023c546729b5c_2_690x338-300x147.png 300w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><\/a><\/p>\r\n<ul>\r\n<li><strong>Attention<\/strong>, I think about installing the type card <a href=\"https:\/\/github.com\/thomasloven\/lovelace-auto-entities\" target=\"_blank\" rel=\"noopener\">self-entities<\/a><\/li>\r\n<\/ul>\r\n<h3><span class=\"ez-toc-section\" id=\"La_carte_emploi_du_temps\"><\/span>The Time Use Map<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4481\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot1.png\" alt=\"\" width=\"793\" height=\"183\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot1.png 793w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot1-600x138.png 600w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot1-300x69.png 300w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot1-768x177.png 768w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4482\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot2.png\" alt=\"\" width=\"380\" height=\"275\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot2.png 380w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot2-300x217.png 300w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><\/p>\r\n<p>Both are super clean, for the cancelled course I hesitate between the red button or the crossed-out time, both are relevant.<\/p>\r\n<p>I made a mix of the two and added a space before \u2018class council\u2019, I also reworked the date in the title because it had to be found.<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4483\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot3.png\" alt=\"\" width=\"501\" height=\"181\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot3.png 501w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot3-300x108.png 300w\" sizes=\"auto, (max-width: 501px) 100vw, 501px\" \/><\/p>\r\n<p>The code is:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- type: markdown content: &amp;gt;- {% set items = state_attr(&#039;sensor.pronote_xx _coralie _timetable _next_day&#039;,&#039;lessons&#039;) %} &lt;div&gt;Time use of: {{as _timestamp(items[0].start _at) | int | timestamp _custom(&#039;%d\/%m\/%Y&#039;, true)}} &lt;\/div&gt;\r\n\r\n    &lt;table&gt;   {% for i in range(0, items | count, 1) %}  &lt;tr&gt; \r\n      {%- if items[i].canceled!= True -%} \r\n      &lt;td&gt;&lt;mark&gt;{{ items[i].start_time}}&lt;\/td&gt; \r\n      &lt;td&gt;&lt;mark&gt;{{ items[i].end _time }}&lt;\/td&gt;&lt;\/mark&gt;\r\n      &lt;td&gt;{{ items[i].lesson }} {% else %} &lt;td&gt;&lt;del&gt;{{ items[i].start _time }}&lt;\/td&gt; &lt;td&gt;&lt;del&gt;{{ items[i].end _time}}&lt;\/td&gt; &lt;td&gt;&lt;del&gt;{{ items[i].lesson }}&lt;\/del&gt;&emsp;{%- endive -%} {% if items[i].status!= None %} &lt;span&gt; {{ items[i].status }}&lt;\/td&gt; {% endif %} &lt;td&gt; {{items[i].classroom }}&lt;\/td&gt; &lt;\/tr&gt; {% endfor %} &lt;\/table&gt; \r\n  card_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:0px } ha-markdown$: | div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-size: 0.9em; font-family: Roboto; width: 100%; outline: 0px solid #393c3d; margin-top:5px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 5px 10px 5px 10px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; }* mark { background: #009767; color: #222627; border-radius: 5px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 5px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; }type: &#039;&#039;\r\n<\/pre>\r\n<h3><span class=\"ez-toc-section\" id=\"La_carte_des_devoirs\"><\/span>The homework map<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4488\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot4.png\" alt=\"\" width=\"354\" height=\"147\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot4.png 354w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot4-300x125.png 300w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4489\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot5.png\" alt=\"\" width=\"377\" height=\"141\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot5.png 377w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot5-300x112.png 300w\" sizes=\"auto, (max-width: 377px) 100vw, 377px\" \/><\/p>\r\n<p>I have changed entities and the result is:<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4492\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot6.png\" alt=\"\" width=\"497\" height=\"74\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot6.png 497w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot6-300x45.png 300w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><\/p>\r\n<p>Its code:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- type: markdown content: | -\r\n    &lt;div&gt;Duties&lt;\/div&gt;\r\n    &lt;table&gt;\r\n        &lt;tbody&gt;\r\n            {% set items = state_attr(&#039;sensor.pronote_xx _coralie _homework&#039;,&#039;homework&#039;) %} {%-for i in range(0, items | count, 1) -%}\r\n            &lt;tr&gt;\r\n                &lt;td&gt;\r\n                {%- if items[i].done == true -%}\r\n                    &lt;mark&gt;\r\n                    {{items[i].date.strftime(&quot;%d\/%m&quot;)}}\r\n                    &lt;\/mark&gt;\r\n                {%- else -%}\r\n                    &lt;span&gt;\r\n                    {{items[i].date.strftime(&quot;%d\/%m&quot;)}}\r\n                    &lt;\/span&gt;\r\n                {% endif %}&lt;\/td&gt;              \r\n                &lt;td&gt;{{items[i].subject}}&lt;\/td&gt;\r\n                &lt;td&gt;{{items[i].description}}&lt;\/td&gt;\r\n            &lt;\/tr&gt;\r\n            {% endfor %}\r\n      &lt;\/tbody&gt;\r\n    &lt;\/table&gt;\r\n  card_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:0px } ha-markdown$: | h1 { font-weight: normal; font-size: 24px; } div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-size: 0.9em; font-family: Roboto; width: auto; outline: 0px solid #393c3d; margin-top: 10px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 5px 5px 5px 5px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; } mark { background: #009767; color: #222627; border-radius: 5px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 5px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; }<\/pre>\r\n<p>note: It will be necessary to check whether to use sensor.pronote _xx _coralie _homework _period or sensor.pronote _xx _coralie _homework when there are several days.<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"La_carte_des_evaluations\"><\/span>Map of evaluations<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4501\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot8.png\" alt=\"\" width=\"477\" height=\"213\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot8.png 477w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot8-300x134.png 300w\" sizes=\"auto, (max-width: 477px) 100vw, 477px\" \/><\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4500\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot7.png\" alt=\"\" width=\"379\" height=\"269\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot7.png 379w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot7-300x213.png 300w\" sizes=\"auto, (max-width: 379px) 100vw, 379px\" \/><\/p>\r\n<p>I had already turned green more into green heart, I think it is nicer. Here is the map with the integration:<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4502\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot9.png\" alt=\"\" width=\"432\" height=\"411\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot9.png 432w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot9-300x285.png 300w\" sizes=\"auto, (max-width: 432px) 100vw, 432px\" \/><\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- type: markdown content: &amp;gt;-\r\n    &lt;div&gt;Evaluations&lt;\/div&gt; {% set items = state_attr(&#039;sensor.pronote_xx_coralie_evaluations&#039;,&#039;evaluations&#039;)%}\r\n    &lt;table width=&#039;100%&#039;&gt;\r\n      &lt;tbody&gt;\r\n      {% for i in range(0, items | count, 1) %}\r\n      &lt;tr&gt;&lt;td width=&#039;10%&#039;&gt;{{ items[i].date.strftime(&quot;%d-%m&quot;) }}&lt;\/td&gt;&lt;td width=&#039;60%&#039;&gt;{{ items[i].subject }}&lt;\/td&gt;&lt;td width=&#039;30%&#039;&gt;\r\n      {% set acquisitions = items[i]. acquisitions %} {% for j in range(0, acquisitions|count,1) %}{% if acquisitions[j].level == &#039;Very good mastery&#039; %\ud83d\udc9a{% elif acquisitions[j].level == &#039;Satisfactory control&#039; %\ud83d\udfe2{% elif acquisitions[j].level == &quot;Beginning of mastery&quot; %\ud83d\udfe1{% elif acquisitions[j].level == &#039;Fragile mastery&#039; %\ud83d\udfe1{% elif acquisitions[j].level == &#039;Insufficient control&#039; %\ud83d\udfe0{% else %}?{% endif %}{% endfor %}&lt;\/td&gt;&lt;\/tr&gt;\r\n      {% endfor %}\r\n    &lt;\/tbody&gt; &lt;\/table&gt;\r\n  card_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:0px } ha-markdown$: | h1 { font-weight: normal; font-size: 24px; } div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-weight:normal; font-size:1.2em; font-family: Roboto; width: auto; outline: 0px solid #393c3d; margin-top: 10px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 0px 5px 0px 5px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; line-height: 4px; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; } mark { background: #009767; color: #222627; border-radius: 10px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 10px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; }\r\n<\/pre>\r\n<h3><span class=\"ez-toc-section\" id=\"La_carte_des_absences\"><\/span>The map of absences<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4505\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot10.png\" alt=\"\" width=\"377\" height=\"269\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot10.png 377w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot10-300x214.png 300w\" sizes=\"auto, (max-width: 377px) 100vw, 377px\" \/><\/p>\r\n<p>It is perfect, to fit the design of the other cards, the result is:<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4506\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot11.png\" alt=\"\" width=\"784\" height=\"127\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot11.png 784w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot11-600x97.png 600w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot11-300x49.png 300w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot11-768x124.png 768w\" sizes=\"auto, (max-width: 784px) 100vw, 784px\" \/><\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- type: markdown content: &amp;gt;-\r\n    &lt;div&gt;Absences&lt;\/div&gt;&lt;table&gt; \r\n\r\n    {% set items = state_attr(&#039;sensor.pronote_xxxx _coralie _absences&#039;,&#039;absences&#039;) %} {% for i in range(0, items | count, 1) %}\r\n\r\n    &lt;tr&gt;\r\n\r\n    {%- if items[i].justified == True -%}\r\n\r\n    &lt;td&gt; &lt;mark&gt; {{ items[i].from.strftime(&quot;%d-%m&quot;) }}&lt;\/mark&gt;&lt;\/td&gt;\r\n\r\n    {% else %}\r\n\r\n    &lt;td&gt; &lt;span&gt;{{ items[i].from.strftime(&quot;%d-%m&quot;) }}&lt;\/span&gt;&lt;\/td&gt; \r\n\r\n    {%- endive -%} \r\n\r\n    &lt;td&gt;{{ items[i].hours }}&lt;\/td&gt;\r\n\r\n    &lt;td&gt;{{ items[i].reason }}&lt;\/td&gt;\r\n\r\n    {% endfor %} card_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:0px } ha-markdown$: | div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-family: Roboto; width: 100%; outline: 0px solid #393c3d; margin-top:5px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 5px 10px 5px 10px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; }* mark { background: #009767; color: #222627; border-radius: 5px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 5px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; }\r\n<\/pre>\r\n<h3><span class=\"ez-toc-section\" id=\"Carte_du_Menu_de_la_cantine\"><\/span>Menu map of the canteen<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>V6.0.6 minimum required<\/p>\r\n<p><a href=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronotecantine.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5029\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronotecantine.png\" alt=\"\" width=\"1049\" height=\"606\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronotecantine.png 1049w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronotecantine-600x347.png 600w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronotecantine-300x173.png 300w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronotecantine-1024x592.png 1024w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronotecantine-768x444.png 768w\" sizes=\"auto, (max-width: 1049px) 100vw, 1049px\" \/><\/a><\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">Type: markdown content: | -\r\n  &lt;div&gt;Menus Canteen&lt;\/div&gt;\r\n  &lt;table&gt;\r\n      &lt;tbody&gt;\r\n  {% set items = state_attr(&#039;sensor.pronote_xxx_menus&#039;,&#039;menus&#039;) %}\r\n    &lt;tr&gt;\r\n    &lt;td&gt;&lt;h4&gt;Date&lt;\/td&gt;\r\n    &lt;td&gt;&lt;h4&gt;Entrance&lt;\/td&gt;\r\n    &lt;td&gt;&lt;h4&gt;Main course&lt;\/td&gt;\r\n    &lt;td&gt;&lt;h4&gt;Accompaniment&lt;\/td&gt;\r\n    &lt;td&gt;&lt;h4&gt;Cheese&lt;\/td&gt;\r\n    &lt;td&gt;&lt;h4&gt;Dessert&lt;\/td&gt;\r\n    &lt;\/tr&gt;\r\n  {% for i in range(0, items | count, 1) %} {% if items[i].is_lunch == True %}\r\n    &lt;tr&gt;\r\n    &lt;td&gt;      \r\n    &lt;mark&gt;  \r\n    {{ items[i].date | as_datetime | as_timestamp | timestamp _custom(&#039;%d\/%me&#039;) }}\r\n    &lt;\/mark&gt;\r\n    &lt;\/td&gt;\r\n    &lt;td&gt; \r\n      {% for entry in items[i].first_meal %} {{ entry.name }} {% endfor %}\r\n    &lt;\/td&gt;\r\n    &lt;td&gt; \r\n      {% for main in items[i].main_meal %} {{ main.name }} {% endfor %}\r\n    &lt;\/td&gt;\r\n    &lt;td&gt;\r\n      {% if items[i].side_meal %} {% for side in items[i].side_meal %} {{ side.name }} {% endfor %} {% else %} PAS _DISPO {% endif %}\r\n    &lt;\/td&gt;\r\n    &lt;td&gt;\r\n      {% for cheese in items[i].cheese %} {{ cheese.name }} {% endfor %}\r\n    &lt;\/td&gt;\r\n    &lt;td&gt;\r\n      {% for dessert in items[i].dessert %} {{ dessert.name }} {% endfor %}\r\n    &lt;\/td&gt;\r\n      {% endif %} {% endfor %}\r\n    &lt;\/tbody&gt;\r\n  &lt;\/table&gt;\r\ncard_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:10px } ha-markdown$: | div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-family: Roboto; width: 100%; outline: 0px solid #393c3d; margin-top:5px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 5px 10px 5px 10px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; }* mark { background: #009767; color: #222627; border-radius: 5px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 5px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; }\r\n<\/pre>\r\n<p>&nbsp;<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"Ajout_dinformations_complementaires\"><\/span>Addition of additional information<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4516\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/e3f57b33ee45aa223a3b18a8e2d975136d491fb0.png\" alt=\"\" width=\"521\" height=\"181\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/e3f57b33ee45aa223a3b18a8e2d975136d491fb0.png 521w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/e3f57b33ee45aa223a3b18a8e2d975136d491fb0-300x104.png 300w\" sizes=\"auto, (max-width: 521px) 100vw, 521px\" \/><\/p>\r\n<p>Thanks to the excellent idea of <a href=\"https:\/\/github.com\/dathosim\/Pronote2Homeassistant\" target=\"_blank\" rel=\"noopener\">@dathosim script<\/a>, I will add templates that give me this information, code to place in template<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- sensor: - name: Last update of Pronote Unique _id: sensor.latest _mise _a _jour _de _pronote icon: \"mdi:update\" state: \"{{state_attr('sensor.pronote_xx_coralie','updated_at').strftime('%d-%m-%Y to %H:%M') }}\" - sensor: - name: Beginning of Coralie's classes - Demain unique _id: sensor.debut_des_courses_de_coralie_demain icon: \"mdi:clock-time-five-outline\" state: &gt;- {% if state_attr('sensor.pronote_xx _coralie _timetable _tomorrow', 'lessons')[0] is defined %} {{state _attr('sensor.pronote _xx _coralie _timetable _tomorrow', 'lessons')[0]['start _at'].strftime('%H:%M')}} {% else %} No class {% endif %} - sensor: - name: Beginning of Coralie's classes - Today unique _id: sensor.debut_des_courses_de_coralie_today _hui icon: \"mdi:clock-time-five-outline\" state: &gt;- {% if state_attr('sensor.pronote_xx _coralie _timetable _today', 'lessons')[0] is defined %} {{state _attr('sensor.pronote _xx _coralie _timetable _today', 'lessons')[0]['start _at'].strftime('%H:%M')}} {% else %} No class {% endif %}<\/pre>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"Resultat_final\"><\/span>Final result\u00a0<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4513\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot00.png\" alt=\"\" width=\"1532\" height=\"781\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot00.png 1532w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot00-600x306.png 600w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot00-300x153.png 300w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot00-1024x522.png 1024w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2023\/06\/pronot00-768x392.png 768w\" sizes=\"auto, (max-width: 1532px) 100vw, 1532px\" \/><\/p>\r\n<p>Final code of the complete tile:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">Type: horizontal-stack columns: 1 square: false cards: - type: vertical-stack cards: - type: markdown content: &amp;gt;- {% set items = state_attr(&#039;sensor.pronote_xx _coralie _timetable_today&#039;,&#039;lessons&#039;) %} &lt;div&gt;Time use of: {{as _timestamp(items[0].start _at) | int | timestamp _custom(&#039;%d\/%m\/%Y&#039;, true)}} &lt;\/div&gt;\r\n\r\n          &lt;table&gt;   {% for i in range(0, items | count, 1) %}  &lt;tr&gt; \r\n            {%- if items[i].canceled!= True -%} \r\n            &lt;td&gt;&lt;mark&gt;{{ items[i].start_time}}&lt;\/td&gt; \r\n            &lt;td&gt;&lt;mark&gt;{{ items[i].end _time }}&lt;\/td&gt;&lt;\/mark&gt;\r\n            &lt;td&gt;{{ items[i].lesson }} {% else %} &lt;td&gt;&lt;del&gt;{{ items[i].start _time }}&lt;\/td&gt; &lt;td&gt;&lt;del&gt;{{ items[i].end _time}}&lt;\/td&gt; &lt;td&gt;&lt;del&gt;{{ items[i].lesson }}&lt;\/del&gt;&emsp;{%- endive -%} {% if items[i].status!= None %} &lt;span&gt; {{ items[i].status }}&lt;\/td&gt; {% endif %} &lt;td&gt; {{items[i].classroom }}&lt;\/td&gt; &lt;\/tr&gt; {% endfor %} &lt;\/table&gt; \r\n        card_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:10px } ha-markdown$: | div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-family: Roboto; width: 100%; outline: 0px solid #393c3d; margin-top:5px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 5px 10px 5px 10px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; }* mark { background: #009767; color: #222627; border-radius: 5px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 5px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; } - type: markdown content: &amp;gt;- {% set items = state_attr(&#039;sensor.pronote_xx _coralie _timetable _next_day&#039;,&#039;lessons&#039;) %} &lt;div&gt;Time use of: {{as _timestamp(items[0].start _at) | int | timestamp _custom(&#039;%d\/%m\/%Y&#039;, true)}} &lt;\/div&gt;\r\n\r\n          &lt;table&gt;   {% for i in range(0, items | count, 1) %}  &lt;tr&gt; \r\n            {%- if items[i].canceled!= True -%} \r\n            &lt;td&gt;&lt;mark&gt;{{ items[i].start_time}}&lt;\/td&gt; \r\n            &lt;td&gt;&lt;mark&gt;{{ items[i].end _time }}&lt;\/td&gt;&lt;\/mark&gt;\r\n            &lt;td&gt;{{ items[i].lesson }} {% else %} &lt;td&gt;&lt;del&gt;{{ items[i].start _time }}&lt;\/td&gt; &lt;td&gt;&lt;del&gt;{{ items[i].end _time}}&lt;\/td&gt; &lt;td&gt;&lt;del&gt;{{ items[i].lesson }}&lt;\/del&gt;&emsp;{%- endive -%} {% if items[i].status!= None %} &lt;span&gt; {{ items[i].status }}&lt;\/td&gt; {% endif %} &lt;td&gt; {{items[i].classroom }}&lt;\/td&gt; &lt;\/tr&gt; {% endfor %} &lt;\/table&gt; \r\n        card_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:10px } ha-markdown$: | div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-family: Roboto; width: 100%; outline: 0px solid #393c3d; margin-top:5px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 5px 10px 5px 10px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; }* mark { background: #009767; color: #222627; border-radius: 5px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 5px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; } - type: markdown content: | -\r\n          &lt;div&gt;Duties&lt;\/div&gt;\r\n          &lt;table&gt;\r\n              &lt;tbody&gt;\r\n                  {% set items = state_attr(&#039;sensor.pronote_xx _coralie _homework&#039;,&#039;homework&#039;) %} {%-for i in range(0, items | count, 1) -%}\r\n                  &lt;tr&gt;\r\n                      &lt;td&gt;\r\n                      {%- if items[i].done == true -%}\r\n                          &lt;mark&gt;\r\n                          {{items[i].date.strftime(&quot;%d\/%m&quot;)}}\r\n                          &lt;\/mark&gt;\r\n                      {%- else -%}\r\n                          &lt;span&gt;\r\n                          {{items[i].date.strftime(&quot;%d\/%m&quot;)}}\r\n                          &lt;\/span&gt;\r\n                      {% endif %}&lt;\/td&gt;              \r\n                      &lt;td&gt;{{items[i].subject}}&lt;\/td&gt;\r\n                      &lt;td&gt;{{items[i].description}}&lt;\/td&gt;\r\n                  &lt;\/tr&gt;\r\n                  {% endfor %}\r\n            &lt;\/tbody&gt;\r\n          &lt;\/table&gt;\r\n        card_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:10px } ha-markdown$: | h1 { font-weight: normal; font-size: 24px; } div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-weight:normal; font-size:1.2em; font-family: Roboto; width: auto; outline: 0px solid #393c3d; margin-top: 10px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 5px 5px 5px 5px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; } mark { background: #009767; color: #222627; border-radius: 5px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 5px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; } - type: markdown content: &amp;gt;-\r\n          &lt;div&gt;Absences&lt;\/div&gt;&lt;table&gt; \r\n\r\n          {% set items = state_attr(&#039;sensor.pronote_xx_coralie_absences&#039;,&#039;absences&#039;) %} {% for i in range(0, items | count, 1) %}\r\n\r\n          &lt;tr&gt;\r\n\r\n          {%- if items[i].justified == True -%}\r\n\r\n          &lt;td&gt; &lt;mark&gt; {{ items[i].from.strftime(&quot;%d-%m&quot;) }}&lt;\/mark&gt;&lt;\/td&gt;\r\n\r\n          {% else %}\r\n\r\n          &lt;td&gt; &lt;span&gt;{{ items[i].from.strftime(&quot;%d-%m&quot;) }}&lt;\/span&gt;&lt;\/td&gt; \r\n\r\n          {%- endive -%} \r\n\r\n          &lt;td&gt;{{ items[i].hours }}&lt;\/td&gt;\r\n\r\n          &lt;td&gt;{{ items[i].reason }}&lt;\/td&gt;\r\n\r\n          {% endfor %} card_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:10px } ha-markdown$: | div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-family: Roboto; width: 100%; outline: 0px solid #393c3d; margin-top:5px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 5px 10px 5px 10px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; }* mark { background: #009767; color: #222627; border-radius: 5px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 5px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; } - type: custom:auto-entities card: Type: entities filter: include: - entity_id: binary_sensor.open_today_ - entity_id: binary_sensor.open_demain - entity_id: binary_sensor.vacances_schools_today - entity_id: binary_sensor.vacances_scolaires_demain - entity_id: sensor.debut_des_courses_coralie_today_ - entity_id: sensor.debut_des_courses_de_coralie_demain - entity_id: sensor.coralie_next_alarm - type: custom:auto-entities card: Type: entities filter: include: - entity_id: sensor.latest _mise_a_jour_de_pronote - type: vertical-stack cards: - type: markdown content: &amp;gt;-\r\n          &lt;div&gt;Evaluations&lt;\/div&gt; {% set items = state_attr(&#039;sensor.pronote_xx_coralie_evaluations&#039;,&#039;evaluations&#039;)%}\r\n          &lt;table width=&#039;100%&#039;&gt;\r\n            &lt;tbody&gt;\r\n            {% for i in range(0, items | count, 1) %}\r\n            &lt;tr&gt;&lt;td width=&#039;10%&#039;&gt;{{ items[i].date.strftime(&quot;%d-%m&quot;) }}&lt;\/td&gt;&lt;td width=&#039;60%&#039;&gt;{{ items[i].subject }}&lt;\/td&gt;&lt;td width=&#039;30%&#039;&gt;\r\n            {% set acquisitions = items[i]. acquisitions %} {% for j in range(0, acquisitions|count,1) %}{% if acquisitions[j].level == &#039;Very good mastery&#039; %\ud83d\udc9a{% elif acquisitions[j].level == &#039;Satisfactory control&#039; %\ud83d\udfe2{% elif acquisitions[j].level == &quot;Beginning of mastery&quot; %\ud83d\udfe1{% elif acquisitions[j].level == &#039;Fragile mastery&#039; %\ud83d\udfe1{% elif acquisitions[j].level == &#039;Insufficient control&#039; %\ud83d\udfe0{% else %}?{% endif %}{% endfor %}&lt;\/td&gt;&lt;\/tr&gt;\r\n            {% endfor %}\r\n          &lt;\/tbody&gt; &lt;\/table&gt;\r\n        card_mod: style: .: | ha-card ha-markdown { padding:0px } ha-card ha-markdown.no-header { padding:10px } ha-markdown$: | h1 { font-weight: normal; font-size: 24px; } div { background-color:rgb(100, 100, 100); padding: 12px 12px; color:white; font-weight:normal; font-size:1.2em; border-top-left-radius: 5px; border-top-right-radius: 5px; } table{ border-collapse: collapse; font-weight:normal; font-size:1.2em; font-family: Roboto; width: auto; outline: 0px solid #393c3d; margin-top: 10px; } caption { text-align: center; font-weight: bold; font-size: 1.2em; } td { padding: 0px 5px 0px 5px; text-align: left; border-bottom: 0px solid #1c2020; } tr { border-bottom: 0px solid #1c2020; line-height: 4px; } tr:nth-of-type(even) { background-color: rgb(54, 54, 54, 0.3); } tr:last-of-type { border-bottom: transparent; } mark { background: #009767; color: #222627; border-radius: 10px; padding: 5px; } span { background: #EC4B34; color: #222627; border-radius: 10px; padding: 5px; } span { padding: 5px; } tr:nth-child(n+2) &amp;gt; td:nth-child(2) { text-align: left; }\r\n<\/pre>\r\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>This block is the follow-up of my work on the maps proposed by @vingerha and those of @dathosim. My goal is to replace the Python script with integration.<\/p>","protected":false},"author":1,"featured_media":4513,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14,53,166],"tags":[84],"class_list":["post-4480","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-domotique","category-home-assistant","category-retex","tag-pronote"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/posts\/4480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/comments?post=4480"}],"version-history":[{"count":0,"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/posts\/4480\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/media\/4513"}],"wp:attachment":[{"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/media?parent=4480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/categories?post=4480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/en\/wp-json\/wp\/v2\/tags?post=4480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}