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

Bonjour à tous,

Merci beaucoup @delphiki pour tout ce travail. L’intégration devient de jour en jour plus complète et agréable à utiliser !

Petite question, j’ai mis en place des notifications pour les notes et ça fonctionne super (mon fils n’apprécie par contre pas du tout, il vient de se prendre une soufflante pour son 0 en français ! :rofl:).

Par contre, pour les retards et les absences, que doit-on mettre dans le message à la place de trigger.event.data.data.grade_out_of ?

Merci d’avance pour votre réponse,
Rém’s

Hello,

Pour les retards, tu auras ces infos à dispo :

data:
  date: # la date
  minutes: # le nombre de minutes de retard
  justified: # est-ce que le retard est justifié ou pas
  justification: # la justification le cas échéant
  reasons: # la ou les raisons du retard

Donc par exemple pour récupérer le nombre de minutes, il faudra utiliser {{ trigger.event.data.data.minutes }}

Les données pour une absence :

data:
  from: # début de l'absence
  to: # fin de l'absence
  justified: # est-ce que l'absence est justifiée
  hours: # nombre d'heures d'absence
  days: # nombre de jours d'absence
  reason: # raison de l'absence

Donc de la même façon, si tu veux récupérer le nombre d’heures d’absence : {{ trigger.event.data.data.hours }}

1 « J'aime »

@delphiki Merci pour tout le boulot ! C’est fantastique !
Penses-tu pouvoir mettre les event aussi pour les évaluations ? Voir même pour tout … ?

Sans pouvoir les tester, je partage mes nouvelles autos que je peaufinerai plus tard.

ABSENCE

alias: Pronote notif nouvelle absence
description: ""
trigger:
  - platform: event
    event_type: pronote_event
    event_data:
      type: new_absence
condition: []
action:
  - service: notify.mobile_app_xxx
    data:
      message: >-
        {{ trigger.event.data.child_nickname }} est en absence {{ 
        trigger.event.data.data.justified }} de {{
        trigger.event.data.data.from.strftime('%H:%M') }} à {{
        trigger.event.data.data.to.strftime('%H:%M') }},le {{
        trigger.event.data.data.date.strftime('%d/%m/%Y') }} {{"\n"}}{{
        trigger.event.data.data.reasons }}
      title: Pronote {{ trigger.event.data.child_nickname }} absence
mode: single

RETARD

alias: Pronote notif nouveau retard
description: ""
trigger:
  - platform: event
    event_type: pronote_event
    event_data:
      type: new_delay
condition: []
action:
  - service: notify.mobile_app_xxx
    data:
      message: >-
        {{ trigger.event.data.child_nickname }} a eu  un retard {{ 
        trigger.event.data.data.justified }} de {{
        trigger.event.data.data.minutes }} le {{
        trigger.event.data.data.date.strftime('%d/%m/%Y') }} {{"\n"}}{{
        trigger.event.data.data.justification }} {{"\n"}}{{
        trigger.event.data.data.reasons }}
      title: Pronote {{ trigger.event.data.child_nickname }} retard
mode: single

NOTE

alias: Pronote notif nouvelle note
description: ""
trigger:
  - platform: event
    event_type: pronote_event
    event_data:
      type: new_grade
action:
  - service: notify.mobile_app_xxx
    data:
      message: >-
        {{ trigger.event.data.child_nickname }} a eu {{ 
        trigger.event.data.data.grade_out_of }} en {{
        trigger.event.data.data.subject }} :  {{ trigger.event.data.data.comment
        }} le {{ trigger.event.data.data.date.strftime('%d/%m/%Y') }}
      title: Pronote {{ trigger.event.data.child_nickname }} note
1 « J'aime »

Je viens de faire un PR pour les évaluations car cela me manquait aussi. On verra si elle est validée :slight_smile:
Merci pour les automatisations, ça va me simplifier le travail chez moi :+1:

1 « J'aime »

Bonjour,

Je me présente, tout nouveau membre fraichement sortit du cocon, mes débuts sur HA ne sont pas plus vieux qu’il y a quelques semaines (version 10.1 c’est pour dire).

Alors que je découvrais émerveillé le champs des possibles de cet univers qui se dévoile pas à pas, je fis la découverte de cette intégration Pronote (0.9 si je me souviens). J’en profite pour remercier et féliciter au passage @delphiki ainsi que tous les contributeurs au projet (désolé de ne pouvoir vous nommer, ma mémoire renvoi unavailable data). Formidable de pouvoir dire adieu à la rigidité de l’application.

Toutefois ma contribution en ces lieux n’est pas anodine. En effet ce matin j’ai effectué la maj .12 depuis la .11 et… tout ne s’est pas déroulé comme prévu. Un soucis d’initialisation, j’y reviens après.

Dans le doute je l’ai désinstallée puis réinstallée. La config via QR-code franchement: génial ! Je valide, les capteurs sont créés, je configure les options (en fait j’ajoute seulement le nickname). Je consulte ensuite mon dashboard, ras les tables sont hydratées. Mais c’est ensuite que ça se gâte.

Depuis, l’élément de l’intégration du module est fréquemment indisponible me fournissant un historique de mes capteurs en dents de scie.

Le journal système m’indique ceci à fréquence très soutenue

Logger: homeassistant.components.sensor
Source: runner.py:186
Integration: Capteur (documentation, issues)
First occurred: 10:36:51 (12 occurrences)
Last logged: 11:00:02

Setup of sensor platform pronote is taking over 10 seconds.

Quelqu’un d’autre observe-t’il ce phénomène ou ai-je raté quelque-chose ? A part une notif pour les notes et quelques consultations de donnée en dashboard je n’ai touché à rien susceptible d’interférer.

Du coup je suis pas contre une piste car je bloque complet. Merci

Salut a tous, je viens de voir un commentaire qui m’a plutôt énervé, sur le fait que certains ne dévoile pas les carte ou les codes , a cette personne je te signale que toute les personnes qui sur le forum sont bénévoles, de plus il y a deux intergartion Pronote

C’est la première, qui était bien plus Complexe que celle là @delphiki fait énormément d’efforts pour la rendre plus agréable a tout le monde, pour les carte, si tu cherche un peut c’est tous disponibles et c’est vrais que parfois c’est prise de tête car il y a un grand choix de carte, le problème c’est que chaque personne personnalisé comme ils veulent, tu prend @herveaurel , il a fait des carte qui s’intègre dans sont dashboard, c’est un boulot monstrueux qu’il a fait, sans compter toute les autres personnes qui on fait des modifs de toute les cartes. Si tu veut du play and play va sur jeedom .

1 « J'aime »

Je comprends ton « coup de gueule » et j’en appuie (au moins en partie) le propos, mais je ne suis pas certain que cette dernière phrase soit tout à fait dans l’esprit non plus… :slightly_frowning_face:

Pour être plus complet, HA est tout à fait adapté aussi aux débutants. Mais cette intégration ne dispose pas encore (je me suis laissé dire que certains y travaillaient) de cartes clé en main pour en traduire le résultat dans le dashboard de ceux qui ne souhaitent pas s’investir dans l’apprentissage des subtilités des cartes markdown. Et ils ont bien le droit, mais il faudra dans ce cas simplement prendre un peu son mal en patience. Le travail effectué par @delphiki , @vingerha et les autres, loin d’être inutile ou « gâché », est simplement la première étape nécessaire à ce que des cartes spécifiques à l’intégration soient conçues à leur tour. Bref, ce genre de discussion est un classique des projets de dév essentiellement mus par des bénévoles, et c’est certes malheureux, mais ça ne vaut pas de s’envoyer « voir ailleurs » à mon humble avis.

Sur un tout autre sujet, de mon côté, j’ai une des entités fournies par l’intégration qui s’évertue à rester indisponible alors que mon gamin a donné de sa personne pour me permettre de la tester:
image

Ce qui m’étonne, c’est qu’elle n’est pas affichée comme les autres entités indisponible de l’intégration:
image

Et j’ai vérifié dans ma copie du dépôt de pronotepy, les données sont bien accessibles. J’ai aussi vérifié que l’entité n’était pas désactivée dans HA, et c’est bon. Du coup, je me suis dit que j’allais venir à la pèche aux idées ici :grin:

Edit: bon, en fait, j’ai trouvé dans les journaux (c’est un problème de sérialisation JSON, donc de contenu fourni par l’école et mal digéré par l’intégration). Je ne sais pas pourquoi je n’avais pas vu ça avant, mais je vais plutôt m’orienter vers le github de l’intégration, mes excuses pour le bruit :-/

Sans punition pas de sensor. Tout simplement

Pour la note, ça ne devrait pas être plutôt:
a eu {{ trigger.event.data.data.grade }}
Selon moi, {{ trigger.event.data.data.grade_out_of }} va renvoyer le x/10 ou x/20

Je crois que le « grade_out_of » donne la note au format « note/total ». Ce qui me semble mieux a consulter.

1 « J'aime »

Tout à fait.

Si tu fais grade le sensor renvoie la note simple par exemple 4
Si tu fais grade_out_off on te renvoie la note/total, par exemple 4/5 et tu évites les sueurs froides…

2 « J'aime »

Donc c’est bien ce que je veux dans ma notif.

1 « J'aime »

il y a évidemment bien une punition, sans quoi le problème n’en serait pas un :wink:

Hello @souriceau,

Déjà bienvenue :slight_smile:
Est-ce que tu peux activer le débug dans ton fichier de config stp ?

logger:
  logs:
    custom_components.pronote: debug

@al1 j’ai situé d’où venait le souci, je corrige ça dans le week-end

salut à tous,
je viens de passer à la 0.12.
dans definisez un surnom pour votre enfant, j’ai mis celui de mon gamin, j’ai laissé le reste tel quel.
par contre je n’ai plus acces aux entités, j’ai le message Cette entité n’est plus fournie par l’intégration pronote. Si l’entité n’est plus utilisée, supprimez-la depuis les paramètres.

Tu n’as pas d’erreur dans les logs ?

Bon je reviens un peu sur le sujet.

j’ai bizarrement très peu de capteurs dispo alors que je suis connecté et en compte parent :

En gros juste : nom, timetable_nextday/period et today …

Donc description et planning quoi.

Je donne les logs si ça peux servir :

2023-10-20 22:22:22.244 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration pronote which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-10-20 22:22:32.619 DEBUG (SyncWorker_6) [custom_components.pronote.pronote_helper] Coordinator uses connection: username_password
2023-10-20 22:22:33.019 INFO (SyncWorker_6) [custom_components.pronote.pronote_helper] Mme Toiltrou Ginette
2023-10-20 22:22:33.451 DEBUG (MainThread) [custom_components.pronote.coordinator] Lessons found at: 15 days, for a maximum of 15 from today
2023-10-20 22:22:35.000 INFO (MainThread) [custom_components.pronote.coordinator] Error getting grades from pronote: Action not permitted. (onglet is not normally accessible)
2023-10-20 22:22:35.002 INFO (MainThread) [custom_components.pronote.coordinator] Error getting averages from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:35.677 INFO (MainThread) [custom_components.pronote.coordinator] Error getting homework from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:36.069 INFO (MainThread) [custom_components.pronote.coordinator] Error getting homework_period from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:36.432 INFO (MainThread) [custom_components.pronote.coordinator] Error getting information_and_surveys from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:36.433 INFO (MainThread) [custom_components.pronote.coordinator] Error getting absences from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:36.433 INFO (MainThread) [custom_components.pronote.coordinator] Error getting delays from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:36.434 INFO (MainThread) [custom_components.pronote.coordinator] Error getting evaluations from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:36.434 INFO (MainThread) [custom_components.pronote.coordinator] Error getting punishments from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:37.062 INFO (MainThread) [custom_components.pronote.coordinator] Error getting ical_url from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:37.939 INFO (MainThread) [custom_components.pronote.coordinator] Error getting menus from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:37.939 DEBUG (MainThread) [custom_components.pronote.coordinator] Finished fetching Connu Alain (via compte parent) data in 5.320 seconds (success: True)
2023-10-20 22:22:37.950 DEBUG (SyncWorker_2) [custom_components.pronote.pronote_helper] Coordinator uses connection: username_password
2023-10-20 22:22:38.249 INFO (SyncWorker_2) [custom_components.pronote.pronote_helper] Mme Toiltrou Ginette
2023-10-20 22:22:38.512 DEBUG (MainThread) [custom_components.pronote.coordinator] Lessons found at: 15 days, for a maximum of 15 from today
2023-10-20 22:22:39.443 INFO (MainThread) [custom_components.pronote.coordinator] Error getting grades from pronote: Action not permitted. (onglet is not normally accessible)
2023-10-20 22:22:39.445 INFO (MainThread) [custom_components.pronote.coordinator] Error getting averages from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:39.810 INFO (MainThread) [custom_components.pronote.coordinator] Error getting homework from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:40.434 INFO (MainThread) [custom_components.pronote.coordinator] Error getting homework_period from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:40.801 INFO (MainThread) [custom_components.pronote.coordinator] Error getting information_and_surveys from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:40.802 INFO (MainThread) [custom_components.pronote.coordinator] Error getting absences from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:40.803 INFO (MainThread) [custom_components.pronote.coordinator] Error getting delays from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:40.803 INFO (MainThread) [custom_components.pronote.coordinator] Error getting evaluations from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:40.804 INFO (MainThread) [custom_components.pronote.coordinator] Error getting punishments from pronote: 'listeOngletsPourPeriodes'
2023-10-20 22:22:41.275 INFO (MainThread) [custom_components.pronote.coordinator] Error getting ical_url from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:42.038 INFO (MainThread) [custom_components.pronote.coordinator] Error getting menus from pronote: Unknown error from pronote: 20 | La page a expiré ! (11)
2023-10-20 22:22:42.038 DEBUG (MainThread) [custom_components.pronote.coordinator] Finished fetching Connu Alain (via compte parent) data in 4.093 seconds (success: True)

Il y a des incompatibilités avec certains comptes ou j’ai juste pas de bol ? Je précise que c’est comme ça depuis le début. Que je consulte sans problème sur le site de pronote. Je suis actuellement en version en date à ce jour (donc v0.12.0)…

Je ne sais pas si il y a un soucis avec Pronote, mais vers 1h30 je m’aperçois que je n’ai plus aucun accès a HA, ni en local ni en externe, ni en ssh… 1ere fois que ca m’arrive.
Je reboot mon Raspberry électriquement et au démarrage du sytsème, ca reste tres longtmeps bloqué sur « Démarrage Pronote »… De très très très longues minutes… Et ca recommence, connexion impossible !!!..

Je reboot encore électriquement !

Ca recommence a merder : HA bloque sur le démarrage de Pronote et je m’en sors uniquement en supprimant rapidement les 3 comptes dans Intégrations puis l’intégration de hacs !!!
:dizzy_face: :face_with_spiral_eyes: :dizzy_face: :weary:

A l’instant où je supprime de hacs, HA finalise son démarrage en 3 sec…

J’ai vérifié au cas où , Pronote (le site et l’app) fonctionne tres bien.

Ca m’a donné l’impression que le changement de journée avait tout planté, car à 23h45 je me connectais encore sans soucis à HA… :face_with_raised_eyebrow: :face_with_raised_eyebrow:
Ou bien l’envoi de données, ou de connexion, de requête, j’en sais rien…

J’étais en version 0.12.0.

Bref, je n’ai plus rien. :face_with_spiral_eyes: :face_with_spiral_eyes:

1 « J'aime »

Idem, HA en panne ce matin, reboot electrique puis pronote qui bloque sur son initialisation. J’ai déactivé le module et reboot. Une fois une HA, tout opérationnel a nouveau, j’ai tenté de réactiver le module pronote. Idem, il bloque sur son initialisation et fait planter HA…Pareil, je me connecte bien au pronote du collège sur mon navigateur et sur l’appli. Idem, dernière version 0.12.0

1 « J'aime »