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

Mince je vais restaurer le fichier ent.py alors , suite à la lecture de ton ancien message j’ai fini par l’éditer …
J’ai toujours pas réussi à faire fonctionner mon compte , seul le compte démo a bien voulu fonctionner !

Je veux bien voir comment tu as configuré agora06 … et comment exemple.com ( dans ent.py ) devient la page de ton établissement .

Perso le script me retourne une erreur de compte des que tente le compte enfant ou parent

Donc, je repète que je n’ais plus de ent.py spécifique, le tout est dans pronotepy

image

EDIT: j’ai vu qu’il y a aussi 2.9.0 maintenant mais je ne change pas des versions sans raison :slight_smile:

Bonjour,
J’avais bien compris que tu utilises le fichier original maintenant , je souhaiterai seulement jeter un œil à ton fichier de config.ini ( sans les identifiants bien sur )

J’ai des doutes sur le préfixe …

Une fois identifié j’arrive sur le portail de l’établissement, puis j’ai un lien sur cette page qui me transfère vers pronote sur une page non sécurisé ( http:// pas https:// )

voici les sites par lesquels je transite :

En préfixe je prends quoi ? J’ai essayé notes / notes.clg-paul-langevin / paul-langevin , ça me retroune une erreur à chaque fois

Ça j’ai pas… je n’utilise pas la solution de Dathosim, juste pour mes tests j’ai ce fichier si-dessus.

J’ai une ‹ code › 0061670h pour l’Éganaude et aussi pareil pour le CIV (CIV est atrium-sud, pas agora06)

Bonjour,

D’abord, je voulais remercier @Dathosim et aussi tout les autres participant du topic qui m’ont permis de m’en sortir par leur message et surtout leur solution, alors que je débutais sur HA et Python. Et surtout pour m’avoir permis de comprendre le fonctionnement de docker car j’ai installé une Supervized et c’était un peu poilu d’approche pour un noob).
Tout fonctionne parfaitement de mon côté. Emploi du temps, note (je suppose y’en a pas encore pour le 3ème trimestre, les absences et les devoirs (quand les profs rajoutent pas des espaces partout…). J’ai aussi réussi à configurer les notifs pour les nouvelles notes et pour les annulation du jour.

Par contre je deviens un peu fou sur les notif pour le prochain jour, impossible de les faire fonctionner alors que tout est identique à celle du jour même.

Voici mes sensor :

binary_sensor:

  - platform: template
    sensors:
      pronote_edt_jacques_aujourdhui_cours_0_annulation:
        friendly_name: "Edt jacques Cours 0 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_aujourdhui', 'edt_aujourdhui')[0]['annulation'] }}
      pronote_edt_jacques_aujourdhui_cours_1_annulation:
        friendly_name: "Edt jacques Cours 1 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_aujourdhui', 'edt_aujourdhui')[1]['annulation'] }}
      pronote_edt_jacques_aujourdhui_cours_2_annulation:
        friendly_name: "Edt jacques Cours 2 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_aujourdhui', 'edt_aujourdhui')[2]['annulation'] }}
      pronote_edt_jacques_aujourdhui_cours_3_annulation:
        friendly_name: "Edt jacques Cours 3 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_aujourdhui', 'edt_aujourdhui')[3]['annulation'] }}
      pronote_edt_jacques_aujourdhui_cours_4_annulation:
        friendly_name: "Edt jacques Cours 4 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_aujourdhui', 'edt_aujourdhui')[4]['annulation'] }}
      pronote_edt_jacques_aujourdhui_cours_5_annulation:
        friendly_name: "Edt jacques Cours 5 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_aujourdhui', 'edt_aujourdhui')[5]['annulation'] }}
      pronote_edt_jacques_aujourdhui_cours_6_annulation:
        friendly_name: "Edt jacques Cours 6 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_aujourdhui', 'edt_aujourdhui')[6]['annulation'] }}
      pronote_edt_jacques_prochain_jour_cours_0_annulation:
        friendly_name: "Edt jacques Prochain Jour Cours 0 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_prochain_jour', 'edt_prochainjour')[0]['annulation'] }}
      pronote_edt_jacques_prochain_jour_cours_1_annulation:
        friendly_name: "Edt jacques Prochain Jour Cours 1 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_prochain_jour', 'edt_prochainjour')[1]['annulation'] }}
      pronote_edt_jacques_prochain_jour_cours_2_annulation:
        friendly_name: "Edt jacques Prochain Jour Cours 2 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_prochain_jour', 'edt_prochainjour')[2]['annulation'] }}
      pronote_edt_jacques_prochain_jour_cours_3_annulation:
        friendly_name: "Edt jacques Prochain Jour Cours 3 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_prochain_jour', 'edt_prochainjour')[3]['annulation'] }}
      pronote_edt_jacques_prochain_jour_cours_4_annulation:
        friendly_name: "Edt jacques Prochain Jour Cours 4 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_prochain_jour', 'edt_prochainjour')[4]['annulation'] }}
      pronote_edt_jacques_prochain_jour_cours_5_annulation:
        friendly_name: "Edt jacques Prochain Jour Cours 5 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_prochain_jour', 'edt_prochainjour')[5]['annulation'] }}
      pronote_edt_jacques_prochain_jour_cours_6_annulation:
        friendly_name: "Edt jacques Prochain Jour Cours 6 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_prochain_jour', 'edt_prochainjour')[6]['annulation'] }}
      pronote_edt_jacques_demain_cours_0_annulation:
        friendly_name: "Edt jacques demain Cours 0 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_demain', 'edt_demain')[0]['annulation'] }}
      pronote_edt_jacques_demain_cours_1_annulation:
        friendly_name: "Edt jacques Demain Cours 1 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_demain', 'edt_demain')[1]['annulation'] }}
      pronote_edt_jacques_demain_cours_2_annulation:
        friendly_name: "Edt jacques Demain Cours 2 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_demain', 'edt_demain')[2]['annulation'] }}
      pronote_edt_jacques_demain_cours_3_annulation:
        friendly_name: "Edt jacques Demain Cours 3 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_demain', 'edt_demain')[3]['annulation'] }}
      pronote_edt_jacques_demain_cours_4_annulation:
        friendly_name: "Edt jacques Demain Cours 4 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_demain', 'edt_demain')[4]['annulation'] }}
      pronote_edt_jacques_demain_cours_5_annulation:
        friendly_name: "Edt jacques Demain Cours 5 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_demain', 'edt_demain')[5]['annulation'] }}
      pronote_edt_jacques_demain_cours_6_annulation:
        friendly_name: "Edt jacques Demain Cours 6 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_jacques_demain', 'edt_demain')[6]['annulation'] }}
homekit:

Et mon automatisation :

alias: Edt jacques Cours du prochain jour annulé > Notification
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.pronote_edt_jacques_prochain_jour_cours_0_annulation
    from: "off"
    to: "on"
  - platform: state
    entity_id:
      - binary_sensor.pronote_edt_jacques_prochain_jour_cours_1_annulation
    from: "off"
    to: "on"
  - platform: state
    entity_id:
      - binary_sensor.pronote_edt_jacques_prochain_jour_cours_2_annulation
    from: "off"
    to: "on"
  - platform: state
    entity_id:
      - binary_sensor.pronote_edt_jacques_prochain_jour_cours_3_annulation
    from: "off"
    to: "on"
  - platform: state
    entity_id:
      - binary_sensor.pronote_edt_jacques_prochain_jour_cours_4_annulation
    from: "off"
    to: "on"
  - platform: state
    entity_id:
      - binary_sensor.pronote_edt_jacques_prochain_jour_cours_5_annulation
    from: "off"
    to: "on"
  - platform: state
    entity_id:
      - binary_sensor.pronote_edt_jacques_prochain_jour_cours_6_annulation
    from: "off"
    to: "on"
condition:
  - condition: time
    after: "00:01:00"
    before: "23:59:00"
action:
  - variables:
      idcours: "{{ trigger.entity_id.split('_')[6] }}"
  - service: notify.persistent_notification
    data:
      message: >
        Démo, un cours a été annulé ou déplacé le
        {{state_attr('sensor.pronote_edt_jacques_prochainjour','edt_prochainjour')[idcours]['date']}}
        : 
        {{state_attr('sensor.pronote_edt_jacques_prochainjour','edt_prochainjour')[idcours]['heure']}}
        {{state_attr('sensor.pronote_edt_jacques_prochainjour','edt_prochainjour')[idcours]['cours']}} 
mode: single

Je ne vois vraiment pas ce qui bug. J’ai beau modifié le json comme je le fais pour tester avec les notif du jour même, là rien à faire rien ne se déclenche alors que sur l’emploi du temps il y’a la modif en rouge du cours :

Est ce que cela pourrait être du au fait que j’ai 7 cours ce jour là (avec l’activité conversation UK durant la pause déjeuner) ?
De même j’ai un cours qui apparait deux fois, une fois en rouge (prof absent) et une fois en vert (car remplaçant).

je désespère, je suppose que c’est toujours un problème avec agora06 mais dur de savoir, existe t il une méthode pour avoir des journaux détaillés afin de debugger ?

Erreur de connexion via l'ENT avec le compte parent - vérifier les paramètres
Traceback (most recent call last):
  File "/config/python_scripts/pronote.py", line 111, in <module>
    if client.logged_in:
NameError: name 'client' is not defined ' ```

je ne sais pas si ça peut répondre à ton problème
et je ne me rappelle plus trop mais j’ai aussi galéré au début
et ensuite j’ai désactivé une partie du code pour le simplifier à mon cas

voici ce que j’ai et qui fonctionne POUR MOI
dans pronote.py

#Connection à Pronote avec ou sans ENT
#if ent:
#    if type_compte == "parent":
#        try:
#            client = pronotepy.ParentClient('https://'+prefix_url+'.index-education.net/pronote/parent.html', username, password, ent)
#        except:
#            print("Erreur de connexion via l'ENT avec le compte parent - vérifier les paramètres")
#    else:
#        try:
#            client = pronotepy.Client('https://'+prefix_url+'.index-education.net/pronote/eleve.html', username, password, ent)
#        except:
#            print("Erreur de connexion via l'ENT avec le compte eleve - vérifier les paramètres")
#else:
#    if type_compte == "parent":
#        try:
#            client = pronotepy.ParentClient('https://'+prefix_url+'.index-education.net/pronote/parent.html?login=true', username, password)
#        except:
#            print("Erreur de connexion à Pronote (sans ENT) avec le compte parent - vérifier les paramètres")
#    else:
#        try:
#            client = pronotepy.Client('https://'+prefix_url+'.index-education.net/pronote/eleve.html?login=true', username, password)
#        except:
#            print("Erreur de connexion à Pronote (sans ENT) avec le compte élève - vérifier les paramètres")

client = pronotepy.Client ('https://'+prefix_url+'.index-education.net/pronote/'+type_compte+'.html', username, password, ent)

la dernière ligne étant le seul truc qui marche dans mon càs

Bonjour @Dams ,

as tu eu le temps de faire quelque chose avec cette idée géniale ?

merci, mais pas de mieux, en réalité c’est le prefix que je n’arrive pas a obtenir

voila ou je pointe => http://notes.clg-paul-langevin.ac-nice.fr/pronote/parent.html?identifiant=xxxxxxxxxxxx

  File "/config/python_scripts/pronote.py", line 85, in <module>
    client = pronotepy.ParentClient ('https://cas.agora06.fr/login?selection=EDU&service=http://notes.clg-paul-langevin.ac-nice.fr/pronote/parent.html', username, password, ent)

edit : c est bon j’ai reussi grace à votre aide à me connecter a mon compte ent !!!

Salut, qu’elle idée géniale ? :slight_smile:

ça:

Hello à tous
je viens de faire une mise à jour de mon intégration pour gérer et afficher les évaluations (note en lettre ou en couleur)

Bonjour @Dathosim,
J’ai implémenté ta solution dans mon HA
Un grand merci pour ce partage, c’est superbe
voici ce que ça donne:

il va falloir que je mette une couleur pour le « E »
et en cercle blanc pour le « Ne »

Edit:
Je viens de rajouter ça

{% elif attr2['acquisition_niveau'] == "E+"  %} ⚫+ {% elif attr2['acquisition_niveau'] == "E"  %} ⚫ {% elif attr2['acquisition_niveau'] == "Ne"  %} ⚪
1 « J'aime »

Bonjour à tous,

mon fils a une sortie de prévue Lundi hors elle n’apparait pas dans l’extraction Pronote
alors qu’elle est dans Pronote

Screen Pronote:

Screen Lovelace:
image

et extract du fichier Json:

    "edt_aujourdhui": [
        {
            "id": "316815CFDAAF1C",
            "date_heure": "13/03/2023, 08:00",
            "date": "13/03/2023",
            "heure": "08:00",
            "heure_fin": "08:55",
            "cours": "TECHNOLOGIE",
            "salle": "SALLE 34",
            "annulation": false,
            "status": null,
            "background_color": "#0D06F9"
        },
        {
            "id": "313E22CFDAAFA3",
            "date_heure": "13/03/2023, 09:00",
            "date": "13/03/2023",
            "heure": "09:00",
            "heure_fin": "09:50",
            "cours": "EDUCATION MUSICALE",
            "salle": "SALLE 38 ED MUSICALE",
            "annulation": false,
            "status": null,
            "background_color": "#FDCF1D"
        },
        {
            "id": "3182A6C4DAAF56",
            "date_heure": "13/03/2023, 10:05",
            "date": "13/03/2023",
            "heure": "10:05",
            "heure_fin": "12:00",
            "cours": "Planning familial",
            "salle": "FOYER DES ELEVES",
            "annulation": false,
            "status": "Cours modifi\u00e9",
            "background_color": "#C9D410"
        },
        {
            "id": "319A01CEDAAFF8",
            "date_heure": "13/03/2023, 13:30",
            "date": "13/03/2023",
            "heure": "13:30",
            "heure_fin": "14:25",
            "cours": "VIE DE CLASSE",
            "salle": "SALLE 23",
            "annulation": true,
            "status": "Cours annul\u00e9",
            "background_color": "#D6A0C8"
        },
        {
            "id": "31A12ECFDAAFBB",
            "date_heure": "13/03/2023, 14:30",
            "date": "13/03/2023",
            "heure": "14:30",
            "heure_fin": "15:20",
            "cours": "MATHEMATIQUES",
            "salle": "SALLE 23",
            "annulation": true,
            "status": "Cours annul\u00e9",
            "background_color": "#FD0209"
        }
    ],
    "edt_aujourdhui_debut": "08:00",

que pourrais je modifier afin que cette sortie (et d’autre plus tard) apparaisse ?

Intéressant de voir que aussi sur les ‹ niveaux › il y a des différences entre les écoles.
Chez mon fils: Expert(Exp), Maitrise satisfaisante (A), En cour d’acquisition(ECA) …etc.
pas de jaune+ ni rouge+

Juste une remarque si je le peux :innocent:

Il serait peut être interressant de partir sur un autre post car perso j’ai commencé avec une version dathosim et j’ai des infos sur la version vingerha qui sont interressantes à intégrer mais avec tout dans le même post cela devient compliqué … ce serait plus lisible je pense si on séparait les deux approches… Qu’en pensez vous ?

De plus avec 600+ réponses pas facile de s’y retrouver et de savoir où trouver la bonne info pour la bonne version…

Mes commentaires sont liées avec la version Dathosim, même si j’utilise une autre solution
EDIT, si a l’inverse, t’as des soucis/questions avec la mienne, il faut aller sur mon github. Je ne les discute pas sur HACF

Je souhaiterais extraire et afficher les Sanctions
image

il faudrait aussi récupérer le titre ex: Avertissement, exclusion …
quelqu’un saurait comment le programmer ?

Bonjour, je suis toujour avec t’on ancien script, les notes ne fonctionne plus
Quand je vois t’on nouveau script, l’ent creuse n’y est pas et comment tu rentre les identifient des eleves et parent?