[Article] Intégration Pronote : cours, devoirs, notes, etc

Je me réponds tout seul, j’ai trouvé le bug.

Dans : /usr/local/lib/python3.13/site-packages/pronotepy/ent/ent.py

modifier :

https://cas.monbureaunumerique.fr/login?selection=EDU&service=https://example.com/

par :

https://cas.monbureaunumerique.fr/login?selection=EDU&service=

@delphiki je ne sais pas si tu peux corriger le bug direct dans l’intégration ou si c’est à faire obligatoirement dans pronotepy.

Julien

PS: testé et fonctionnel
PS2 : j’ai soumis une pull request sur le github de pronotepy

4 « J'aime »

EDIT : au temps pour moi je n’avais pas configuré le dashboard, tout fonctionne!

Petite mise à jour rapide de l’intégration, version 1.15.4, pour intégrer le correctif dans pronotepy qui permet de gérer la dernière version de Pronote qui vient de sortir.

6 « J'aime »

Merci pour ta réactivité toujours super cette intégration

1 « J'aime »

Merci pour la mise à jour !

Est-ce que tu peux faire quelque chose au niveau de l’intégration pour corriger les soucis d’auth avec login / mdp ? Ou est-ce 100% dépendant de pronotepy ? (voir mon analyse ci-dessus)

Merci !

Hello Massimo,

J’ai mis ça en place l’an dernier chez moi.

La limite est qu’il faut s’assurer d’avoir impérativement l’intitulé des cours exact pour que cela fonctionne donc mise à jour chaque année. On pourrait peut être faire plus propre mais ça fonctionne.


alias: Moyennes Camille
description: ""
mode: single
triggers:
  - entity_id:
      - sensor.pronote_guionnet_camille_averages
    trigger: state
conditions: []
actions:
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'FRANCAIS' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_francais_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'HISTOIRE-GEOGRAPHIE' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_histoire_geo_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'PHYSIQUE-CHIMIE' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_physique_chimie_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'MATHEMATIQUES' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_mathematiques_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'ESPAGNOL LV2' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_espagnol_lv2_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'ANGLAIS LV1' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_anglais_lv1_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'ED.PHYSIQUE & SPORT.' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_ed_physique_sport_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'TECHNOLOGIE' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_technologie_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'ARTS PLASTIQUES' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_arts_plastiques_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'SCIENCES VIE & TERRE' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_sciences_vie_terre_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'EDUCATION MUSICALE' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_education_musicale_camille
    action: input_number.set_value
  - data:
      value: >-
        {% set ns = namespace(moyenne=0) %} {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%}
          {% for i in range(0, items | count, 1) if items[i].subject == 'LCA LATIN' %}
             {% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
          {% endfor %}
          {{ ns.moyenne }}
    target:
      entity_id: input_number.moyenne_lca_latin_camille
    enabled: true
    action: input_number.set_value
  - data:
      value: >-
        {% set items =
        state_attr('sensor.pronote_guionnet_camille_averages','averages')%} {%
        set ns = namespace(nombre=0, moyenne_generale=0) %}
          {% for i in range(0, items | count, 1) %}
             {% set ns.moyenne_generale = items[i].average | replace (',','.') | float(0) + ns.moyenne_generale %}
             {% set ns.nombre = ns.nombre + 1 %}
          {% endfor %}
        {% set ns.moyenne_generale = ns.moyenne_generale / ns.nombre %}   {{
        ns.moyenne_generale }}  
    target:
      entity_id: input_number.moyenne_generale_camille
    action: input_number.set_value

À ta dispo pour en parler.

Matt.

1 « J'aime »

Bonjour,

Depuis cette semaine, le sensor [sensor.pronote_xxx_yyy_averages] est unavailable dans mon HA.
Est-ce pareil chez vous ? il a fallu que je réinstalle l’intégration Pronote.
Je viens de mettre à jour en 1.15.4 c’est idem !

Idem pour les sensors : pronote_xxx_yyy_information_and_surveys, pronote_xxx_yyy_timetable_ical_url

Merci pour votre aide.

Alors non pas chez moi, je viens de regarder à l’instant.
La version de mon intégration est 1.15.4

Par contre j’avais l’intégraiton complètement KO depuis quelques temps et j’ai tout désinstallé puis ré intégré et c’est reparti tout comme il faut

1 « J'aime »

Merci pour ta réponse, ce que je trouve bizarre c’est que dans HACS, j’ai bien version 1.15.4, mais quand je vais dans Paramètres/Intégration/Pronote, je vois version 0.15.4.
J’ai l’impression que ma version n’est pas bien installée.
Tu vois quoi comme version dans Intégration ?

Hello,

Pour le numéro de version, c’est ma faute, tu es bien dans la bonne version, c’est le fichier de config que j’ai mal renseigné :slight_smile:

1 « J'aime »

Tout pareil :stuck_out_tongue_winking_eye: que toi pas de soucis là

Salut @delphiki,
Bain3 a validé ma PR pour corriger les URLs pour certains ENT.
Pourrais-tu stp faire un update de l’intégration pour y inclure ce changement ?
Merci !

1 « J'aime »

Bonjour,
Je reviens avec mon problème : 3 sensors qui ne fonctionnent pas. (unavailable).
J’ai tout désinstallé Pronote et tout réinstallé. Mais maintenant je n’arrive plus à configurer le compte avec le json du QrCode : ça me met : « Unknown error occurred »
Quelqu’un peut il m’aider ? Merci,

Hello all’s petite question au grand dev @delphiki les cartes manquantes pour la choses sont prévues ? Si besoin je peux mettre ma pierre a l’édifice au cas où :wink:

(message supprimé par son auteur)

Hello,

Est-ce que quelqu’un pourrait m’aider pour recuperer mon sensor pronote_xxx_xxx_averages qui ne fonctionne toujours pas (unavailable), même après réinstall ?
Je m’en sers bcp ce celui là pour calcul de la moyenne générale.

Merci d’avance,