Un template editor, tu la eut ou?
Ha ok je pensé à une intégration.
Vérifiez sur pronote web si il y à bien les devoirs pour les 2 comptes qui donnent une erreur.
De mon côté, les devoirs sont sur l’ent. C’est certainement le même cas pour vous car c’était pour moi la même erreur.
Donnez un peu plus details, cliquez sur l’erreur dans le journal. vous êtes certainement dans le même cas que @albattar .
Je n’ai pas beaucoup plus de détails…
Première installation, j’ai activé les log de debug dans le fichier conf. Je n’ai que ça.
Pas de soucis pour voir les devoirs, absence, planning,ect sur Pronote directement.
J’ai fais la connexion sans le /parents.html
Hello,
Un soucis avec la carte des menus ? Je reçois bien les attribus sur l’entité pourtant mais plus rien ne s’affiche sur la carte
EDIT: voici l’erreur qui apparaît dans « templates »:
UndefinedError: list object has no element 0
slt
je pense que c’est la meme erreur que j’avais , regarde plus haut dans la discution , j’ai mis ma carte cantine modifiée qui justement ne genere pas d’erreur quand un plat est manquant
(tu dois avoir dans tes plats un plat sans accompagnement )
ci dessous une carte emploi du temps dynamique qui met en evidence le cours actuel : (surlignage en bleu de la matiere) (ce n’est pas a l’instant T mais basé sur le dernier raffraichissement de pronote (tous les 1/4 d’heure)
une fois que tous les cours sont passés , l’emploi du temps du jour reste encore 1 heure puis est remplacé par l’emploi du temps du lendemain
pour les personnes intéréssées , voici le lien
je suis partir d’une carte de @Sigalou (merci a lui) la mise en forme n’est pas modifiée (sauf peut etre les couleurs du span et mark)
Effectivement c’était bien le cas, merci pour la carte !
En revanche le contenu dépasse des bords, j’ai tenté de modifier les valeurs dans la partie card-mod mais en vain. Une idée ?
Ben effectivement, c’était mon soucis … Merci !
Si pas de panneau on peut penser de grouper par date et le lister vertical au lieu d’horizontal
Pas vraiment plus de détail :
Cette erreur provient d'une intégration personnalisée
Logger: custom_components.pronote.coordinator
Source: custom_components/pronote/coordinator.py:203
Integration: Pronote (documentation, issues)
First occurred: 19:08:26 (1 occurrences)
Last logged: 19:08:26
Unexpected error fetching Robert Dugesclin (via compte parent) data: Unknown error from pronote: 20 | La page a expiré ! (11)
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/pronotepy/clients.py", line 759, in post
return self.communication.post(function_name, post_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pronotepy/pronoteAPI.py", line 181, in post
raise PronoteAPIError(
pronotepy.exceptions.PronoteAPIError: Unknown error from pronote: 20 | La page a expiré ! (11)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 293, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/pronote/coordinator.py", line 221, in _async_update_data
raise ex
File "/config/custom_components/pronote/coordinator.py", line 203, in _async_update_data
homeworks = await self.hass.async_add_executor_job(client.homework, date.today())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pronotepy/clients.py", line 502, in homework
response = self.post("PageCahierDeTexte", 88, json_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pronotepy/clients.py", line 768, in post
return self.communication.post(function_name, post_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pronotepy/pronoteAPI.py", line 181, in post
raise PronoteAPIError(
pronotepy.exceptions.PronoteAPIError: Unknown error from pronote: 20 | La page a expiré ! (11)
Page expiré …
Si, les détails sont important pour debug. Peut-être qu’il y a plus, mais vous avez bien un problème avec les « homeworks ».
J’ai dû modifier mon intégration pour qu’elle fonctionne. J’ai rajouté un try : exept: sur les devoirs pour continuer le log s’il y à une erreur.
Si @delphiki passe par là pour l’ajouter.
C’était le même problème pour certains avec les menus.
D’ailleurs, c’est aussi ce qui fesait complétement planter ha en fin d’année scolaire dernière. En mettant un try: exept sur tout les appels de periodes particulières (Devoirs, menus, edt,…) l’intégration ne plantait plus et ne faisait plus planter ha.
try:
homework_period = await self.hass.async_add_executor_job(client.homework, date.today(), date.today() + timedelta(days=HOMEWORK_MAX_DAYS))
self.data['homework_period'] = sorted(
homework_period, key=lambda homework: homework.date)
except:
homework_period = []
En attendant, vous pouvez vous le faire vous même pour vous dépanner.
C’est déjà ce que j’ai fait dans ma version de dev pour tous les sensors, ils passent en state unavailable s’il y a un souci pour récupérer les infos. Je vais essayer de sortir une version d’ici fin de semaine.
Super. Ça va en dépanner plus d’un. Merci.
Nouveaux trucs pour des scrollbars… j’ai maintenant le ‹ header › fixé.

A faire:
- ajouter section thead et tbody comme ci-dessous
- ajouter thead/tbody dans le css (completement en bas)
- virer overflow du CSS " ha-card ha-markdown"
Exemple:
type: markdown
content: >-
<table>
{% set items =
state_attr('sensor.pronote_parent_fanny_timetable_period','lessons') %}
<thead><tr>
<td><h4>Start</td>
<td><h4>End</td>
<td><h4>Course</td>
<td><h4>Room</td>
</tr></thead>
<tbody>
{% for i in range(0, items | count, 1) %}
{% if i == 0 %}
<tr><td colspan="5"><b>{{ items[i].start_at.strftime("%A %d") }}</td></tr>
{% endif %}
{% if items[i].start_at.strftime("%F") > items[i-1].start_at.strftime("%F")
%}
<tr><td colspan=4><p><b>{{ items[i].start_at.strftime("%A %d")
}}</p></td></tr>
{% endif %}
<tr>
{%- if items[i].canceled != True -%}
<td> <mark>{{ items[i].start_time }}</td>
<td> <mark>{{ items[i].end_time }}</td></mark>
{% else %}
<td><del>{{ items[i].start_time }}</td>
<td><del>{{ items[i].end_time }}</td>
{%- endif -%}
<td>{{ items[i].lesson }}
{% if items[i].status != None %}
<span>{{ items[i].status }}</td>
{% endif %}
<td>{{ items[i].classroom }}</td>
{% endfor %}
</tbody>
title: Lesson Period
card_mod:
style:
.: |
ha-card ha-markdown {
padding:0px
border-top: 1px groove var(--divider-color);
height: 300px;
}
ha-card ha-markdown.no-header {
padding:0px
}
$: |
h1.card-header {
background-color:rgb(100, 100, 100);
padding: 0px 0px 0px 12px !important;
color: white !important;
font-weight: normal;
font-size: 1.5em !important;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
height: 100%;
}
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: 100%;
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:last-of-type {
border-bottom: transparent;
}
tr:nth-of-type(even) {
background-color: rgb(54, 54, 54, 0.3);
}
mark {
background: lightgreen;
border-color: green;
border-radius: 10px;
padding: 5px;
}
span {
background: orange;
color: #222627;
border-radius: 5px;
padding: 5px;
}
tr:nth-child(n+2) > td:nth-child(2) {
text-align: left;
}
thead, tbody { display: block; }
thead {
margin-top: -20px;
height: 35px;
padding: 5px;
}
tbody {
height: 300px; /* Just for the demo */
overflow-y: auto; /* Trigger vertical scroll */
overflow-x: hidden; /* Hide the horizontal scroll */
}







