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

Bonjour tout fonctionnait nickel mais depuis 2 jours j’ai cette erreur là, vous sauriez d’ou ça vient ?

Traceback (most recent call last):
  File "/config/python_scripts/pronote.py", line 18, in <module>
    client = pronotepy.Client('https://0911145a.index-education.net/pronote/eleve.html',
  File "/usr/lib/python3.9/site-packages/pronotepy/clients.py", line 283, in __init__
    super().__init__(pronote_url, username, password, ent)
  File "/usr/lib/python3.9/site-packages/pronotepy/clients.py", line 58, in __init__
    self.attributes, self.func_options = self.communication.initialise()
  File "/usr/lib/python3.9/site-packages/pronotepy/pronoteAPI.py", line 60, in initialise
    self.attributes = self._parse_html(get_response.content)
  File "/usr/lib/python3.9/site-packages/pronotepy/pronoteAPI.py", line 203, in _parse_html
    raise PronoteAPIError(
pronotepy.exceptions.PronoteAPIError: Page html is different than expected. Be sure that pronote_url is the direct url to your pronote page.

Apparement l’URL qui pointe vers pronote n’est plus la bonne ?

j’avais cette config :

Connection à Pronote 
client = pronotepy.Client('https://0911145a.index-education.net/pronote/eleve.html',
                          username='toto',
                          password='toto',
                          ent=ent_essonne)

#Si on est bien connecté
if client.logged_in:

Merci pour votre aide

Je pense que c’est plutôt la façon de te connecter à l’ent qui à changé, pas l’adresse pronote qui aurait changé.
Il y a eu des mise à jour d’ent récemment pour pouvoir s’y connecter avec educonnect.
Ta page de connexion est-elle pareille qu’avant ?

Désolé en faite ce n’était pas un problème avec la page mais un problème de mot de passe, ma fille ne m’avait pas dit que son mot de passe avait changé :slight_smile: Merci

@umustseeit : ça y’est ! J’ai enfin mis sur GitHub les configurations pour les notifications sur nouvelle note et cours annulé ! À toi de jouer !

DathoSim super merci encore pour ton travail et de m’avoir prévenu je vais mettre ça en place dès aujourd’hui ! :blush:

C’est bon j’ai mis en place via les notifications via le GitHub cependant je me pose la question sur le fonctionnement des sensors binaire j’ai tous mes sensors binaire qui ont un statut indisponible (unavailable) . Tous ceux qui vont de 0 à 6 : binary_sensor.pronote_edt_kelia_aujourdhui_cours_0_annulation, binary_sensor.pronote_edt_kelia_aujourdhui_cours_1_annulation
binary_sensor.pronote_edt_kelia_aujourdhui_cours_2_annulation
etc….
Je me demandais si ce n’était pas lié au fait que nous soyons en vacances du coup pas de cours annulé mais je voulais être sûr ?
Pour info l’état de attribut du sensor qui est utilisé pour les sensors binaires qui remontent bien l’info « none » donc je suppose que mes sensors binaire auraient dû être en off au lieu d’être indisponible.

J’ai également essayé de rentrer la valeur state en off manuellement sur les binary_sensor.pronote_edt_kelia_aujourdhui_cours_x_annulation mais à chaque redémarrage de home assistant ça remet l’état indisponible.

Vous auriez une idée du souci ?

Merci

Merci pour ton aide Defre, je suis sous Home Assistant OS également!
Je ne comprends pas où copier cette ligne afin de copier le répertoire. Dans configuration.yaml, dans le terminal SSH?

Bonjour emy,
il s’agit d’une ligne de commande Linux (commande cp). Elle est à exécuter dans un terminal SSH.

Merci beaucoup!
Je fait de même pour pycryptodome-3.14.0.dist-info?

cp -R /usr/lib/python3.9/site-packages/pycryptodome-3.14.0.dist-info /config/python_scripts/local-packages

Oui ! c’est normal que les binary_sensor qui gère les annulations pour aujourd’hui soient unavailable :wink:
Car en effet, on est en vacances scolaire dont le sensor REST EDT est null pour aujourd’hui…
Par contre ceux du prochain jour (de cours) doivent être disponible et à on ou off
Exemple : binary_sensor.pronote_edt_demo_prochain_jour_cours_0_annulation

Si tu fais ça le sensor se remet à jour automatiquement et quasi immédiatement : comportement normal
Je te conseille si tu veux tester de couper le cron (pour ne plus remettre le json a jour pendant le temps que tu veux)
Et de mettre les valeurs à la main dans le json : annulation: true (au lieu de false)

Merci effectivement tous les autres binary sensor sont en off Hormis ceux là :

binary_sensor.pronote_edt_kelia_prochain_jour_cours_5_annulation
binary_sensor.pronote_edt_kelia_prochain_jour_cours_6_annulation

Je vais tester la désactivation du cron merci

Oui ! j’ai oublié de préciser que s’il n’y a pas de cours pour les heures 5 et 6 de la journée (ou du prochain jour)
alors le sensor d’annulation est aussi unaivalable (normal y’a pas cours - donc on peut pas dire s’il est annulé ou pas)

Ok merci je comprends mieux du coup :slightly_smiling_face: all good !

Bonjour, je n’arrive toujours pas à lancer l’exécution du script pronote automatiquement.
Je suis sous Home Assistant OS 7.4 core-2022.2.9 installé sur un Raspberry

J’ai essayé de taper crontab -e dans le terminal mais j’arrive ici et je ne sais pas comment valider!
Je pense avoir compris que comme j’utilise home assistant OS je ne peut pas utiliser cette méthode.

J’ai également tenté la méthode donné par defre:
dans mon fichier configuration.yaml j’ai ajouté :

shell_command:
  pronote_get_data: python /config/python_scripts/pronote.py

ensuite une automation toute les 10min :

alias: ' automatisation pronote'
description: ''
trigger:
  - platform: time_pattern
    minutes: '10'
condition: []
action:
  - service: shell_command.pronote_get_data
    data: {}
mode: single

J’ai modifier mon script pronote.py en ajoutant import sys


A partir d’ici je bloque,
je n’ai rien dans config\python_scripts\local-packages car je n’arrive pas à faire la copie de package expliqué par Defre

Comprenez vous où est mon erreur?

Il me semble qu’il manque un espace dans ta commande de copie, entre « … /pronote.py » et « /config/… »

Je pense qu’une fois les packages copiés, tu ne devrais plus avoir de problème.

1 « J'aime »

Re à toutes et tous,
De mon côté j’ai un souci avec les notifications (pour une nouvelle note par exemple) : la notif est bien envoyée au tel, comme je le veux, j’ai le titre en texte, mais pas les messages.
Pour celle-ci, j’ai entré ça :

alias: Nouvelle Note pour Elisa
description: Notification sur nouvelle note
trigger:
  - platform: state
    entity_id: sensor.note
condition: []
action:
  - service: notify.mobile_app_tel_de_nico
    data:
      title: Elisa a une nouvelle note
      message: |
        {{states('sensor.note')}}
mode: single

Si vous aviez une idée ?
Merci d’avance.

Merci!! c’était bien cela comme erreur ainsi que ma modification du script pronote.py : il faut ajouter la ligne import sys en première ligne!

Moi j’ai cela :

alias: PRONOTE Nouvelle Note Lina > Notification
description: Notification persistante sur nouvelle note
trigger:
  - platform: state
    entity_id: sensor.note_lina
    attribute: note
condition: []
action:
  - device_id: 62360fff958abb0b901de9a29005874b
    domain: mobile_app
    type: notify
    message: 'Lina, tu as une nouvelle note : {{states(''sensor.note_lina'')}}'
    title: Note Lina
mode: single

j’ai bien la matière ainsi que la note qui s’affiche sur mon téléphone

1 « J'aime »

Super, merci.
Je vois comme différences « attribute: note » et des « double quote » là où je n’avais que des simples.
Je vais tester ça et attendre la prochaine note pour voir.

Cela te dérangerait de me mettre aussi ce que tu as pour les cours annulés ?
Merci d’avance.