Pronote dans HA - les notes, devoirs, absences et emploi du temps des enfants

Pour ce qui est de l’emplois du temps,
perso, j’ai programmer les 5 prochains jours d’école en auto

voici mon code:

    #Récupération  emploi du temps du jour
    delta = 0
    lessons_today = client.lessons(date.today()+ timedelta(days = delta))
    while not lessons_today:
        lessons_today = client.lessons(date.today()+ timedelta(days = delta))
        delta = delta + 1 
    lessons_today = sorted(lessons_today, key=lambda lesson: lesson.start)


    #Récupération  emploi du lendemain
    delta = delta + 1
    lessons_tomorrow = client.lessons(date.today()+ timedelta(days = delta))
    while not lessons_tomorrow:
        lessons_tomorrow = client.lessons(date.today()+ timedelta(days = delta))
        delta = delta + 1 
    lessons_tomorrow = sorted(lessons_tomorrow, key=lambda lesson: lesson.start)

    #Récupération  emploi du Sur-lendemain
    delta = delta + 1
    lessons_day2 = client.lessons(date.today()+ timedelta(days = delta))
    while not lessons_day2:
        lessons_day2 = client.lessons(date.today()+ timedelta(days = delta))
        delta = delta + 1 
    lessons_day2 = sorted(lessons_day2, key=lambda lesson: lesson.start)

    #Récupération  emploi du prochain jour d'école (ça sert le weekend et les vacances)
    delta = delta + 1
    lessons_nextday = client.lessons(date.today()+ timedelta(days = delta))
    while not lessons_nextday:
        lessons_nextday = client.lessons(date.today()+ timedelta(days = delta))
        delta = delta + 1 
    lessons_nextday = sorted(lessons_nextday, key=lambda lesson: lesson.start)

    #Récupération  emploi du prochain2 jour d'école (ça sert le weekend et les vacances)
    delta = delta + 1
    lessons_nextday2 = client.lessons(date.today()+ timedelta(days = delta))
    while not lessons_nextday2:
        lessons_nextday2 = client.lessons(date.today()+ timedelta(days = delta))
        delta = delta + 1 
    lessons_nextday2 = sorted(lessons_nextday2, key=lambda lesson: lesson.start)

il y a des sensors à faire en plus mais moi je préfère.

sinon, prenez exemple. Je pense qu’il doit vous manquer le

delta = delta + 1

juste avant le lesson_nextday

Merci mais c’était pour les évaluations que je demandais… :wink:

J’ai pas tout à fait le mm code que toi, mais c’était bien cela.

Merci

J’utilise que les notes mais oui je viens de m’apercevoir que j’ai rien sur les évaluations dans le lovelace et que je n’ai pas non plus de sensors.
si une autre âme charitable peut aider …

Re bonjour,
j’essais de coder pour les éval
mais pour le moment, rien ne s’affiche
le sensor fonctionne très bien mais rien dans lovelace.
voici mon code

<div>Evaluation</div>
<table>
    <tbody>
        {%-for attr in states.sensor.pronote_evaluation_demo.attributes.evaluation -%}
        <tr>
            <td>{{state_attr('sensor.pronote_evaluation_demo', 'evaluation')[loop.index-1]['date_courte']}}</td>
            <td>
            {{state_attr('sensor.pronote_evaluation_demo', 'evaluation')[loop.index-1]['eval']}}
            <td>{{state_attr('sensor.pronote_evaluation_demo', 'evaluation')[loop.index-1]['prof']}}</td>
        </tr>
        {% endfor %}
  </tbody>
</table>

Hello,

Tu peux partager tes sensors pour éval ? je regarderais apres pour lovelace

Damien

Bonjour,

voici mon sensor éval


- platform: rest
  name: pronote_evaluation_demo
  scan_interval: 10
  json_attributes:
    - evaluation
  value_template: >
      {% if value_json.evaluation.0 is defined %}
          {{ value_json.evaluation.0.date }} / {{ value_json.evaluation.0.eval }} / {{ value_json.evaluation.0.palier }} 
      {% else %}
          None
      {% endif %}
  resource: https://monadresseip:port/local/pronote_Demo.json

Merci !
Ce qui est bizarre (mais peut-être normal), c’est qu’il n’y a une seule « eval » avec des « sous eval » :

Je vais regarder ds la semaine pour le lovelace.

Il ne manque pas l’index dans le sensor eval ? (j’ai tenté de comparer à celui des devoirs). Et il y a 2 tableaux par eval.

Ça s’explique 100% comme tu l’as definié, pour state il n’a qu’une valeur (ou ‹ none ›)
RESTful Sensor - Home Assistant (home-assistant.io)

1 « J'aime »

Bon… Le collège de ma fille vient de « supprimer » toutes les éval du 2nd trimestre… Du coup je peux plus faire de tests… Je vous tiens au courant quand ce sera revenu (au début du 3eme trimestre sans doute)

Dans pronote.py, tu peux (temporairement) changer le code
Ceci va exporter les eval de tout les periodes.
Dans pronote.py ça commence ligne 303

    #Transformation des evaluations en Json
    jsondata['evaluation'] = []
    for period in client.periods:
        for evaluation in period.evaluations:
            jsondata['evaluation'].append({
                'date': evaluation.date.strftime("%d/%m/%Y"),
                'date_courte': evaluation.date.strftime("%d/%m"),            
                'eval': evaluation.subject.name,
                'desc': evaluation.description,            
                'coeff': evaluation.coefficient,
                'palier': evaluation.paliers,
                'prof': evaluation.teacher,
            })
            jsondata['acquisition'] = []
            for acquisition in evaluation.acquisitions:
                jsondata['acquisition'].append({
                    'acquisition_ordre': acquisition.order,
                    'acquisition': acquisition.name,
                    'acquisition_niveau': acquisition.abbreviation,
                    'acquisition_niveau_info': acquisition.level,
                    'acquisition_domaine': acquisition.domain,
                })      
            jsondata['evaluation'].append(jsondata['acquisition'])

je vais tenter ce soir mais j’ai l’impression que je ne vois plus rien (c’est le cas sur l’ent en direct…)

Je ne connais pas l’établissement mais si je rentre dans pronote (appli) je peux voir les eval de mon fils pour sem 1 et 2, donc je ne pense (espère) pas que c’est viré.

Je pouvais aussi jusque vendredi dernier mais là je n’ai plus rien. De mémoire c’était déjà le cas entre le 1er et 2nd trimestre. Je verrais à la rentrée du coup. Je pense qu’ils doivent bloquer les écritures (et aussi la lecture) le temps de faire les bulletins…

Je ne le croix pas…mais pas 100% sûre non plus… essaie avec mon code et voir sur l’appli de ton enfant

Bonjour,

pour la partie évaluation dans pronote.py
je n’y ai pas touché (c’est d’origine du GitHub)
sauf la première ligne avec la variable Trimestre que j’ai créé afin que ça change de trimestre en auto

    #Récupération des evaluations
    #current_period  ou  periods[0 1 2]
    evaluations = client.periods[trimestre].evaluations
    evaluations = sorted(evaluations, key=lambda evaluation: (evaluation.subject.name, evaluation.date))

    #Transformation des evaluations en Json
    jsondata['evaluation'] = []
    for evaluation in evaluations:
        jsondata['evaluation'].append({
            'date': evaluation.date.strftime("%d/%m/%Y"),
            'date_courte': evaluation.date.strftime("%d/%m"),            
            'eval': evaluation.subject.name,
            'desc': evaluation.description,            
            'coeff': evaluation.coefficient,
            'palier': evaluation.paliers,
            'prof': evaluation.teacher,
        })
        jsondata['acquisition'] = []
        for acquisition in evaluation.acquisitions:
            jsondata['acquisition'].append({
                'acquisition_ordre': acquisition.order,
                'acquisition': acquisition.name,
                'acquisition_niveau': acquisition.abbreviation,
                'acquisition_niveau_info': acquisition.level,
                'acquisition_domaine': acquisition.domain,
            })      
        jsondata['evaluation'].append(jsondata['acquisition'])        

J’ai juste créé le sensor
donc est ce que le problème vient de mon sensor ou de pronote.py ? je ne sais pas

Comme le texte dit, il faut utiliser: periods[0] ou periods[1] ou periods[etc.]

c’est tout à fait ce que fait ma variable
et elle fonctionne bien sur tout le reste du programme

Je ne comprends pas tes soucis…essaie de tester que pour evluations…chez moi ça fonctionnne que pour [3] ou si t’utilse des vars… quand ‹ trimestre ›= 3