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

Bravo pour l’avancement !
ah ok pour le nom de variable : et bien tu peux renommer la variable sans les underscore
Je vais corriger le script et enlever les « __ » > c’est fait !

toujours une erreur avec les doubles underscore file

Logger: homeassistant.components.python_script
Source: components/python_script/__init__.py:154
Integration: Python Scripts (documentation, issues)
First occurred: 15:23:10 (1 occurrences)
Last logged: 15:23:10

Error loading script pronote.py: Line 128: "__file__" is an invalid variable name because it starts with "_"

Et quand j’enleve les double underscore autours de file, nouvelle erreur

Logger: homeassistant.components.python_script.pronote.py
Source: components/python_script/__init__.py:222
Integration: Python Scripts (documentation, issues)
First occurred: 15:25:14 (1 occurrences)
Last logged: 15:25:14

Error executing script: __import__ not found
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/python_script/__init__.py", line 222, in execute
    exec(compiled.code, restricted_globals)
  File "pronote.py", line 1, in <module>
ImportError: __import__ not found

Bonjour et super boulot.

Si je comprend bien on modifie les lignes suivantes :

          <td id="LC9" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>eleve</span><span class=pl-c1>=</span><span class=pl-s>&quot;demo&quot;</span></td>
        </tr>
        <tr>
          <td id="L10" class="blob-num js-line-number js-code-nav-line-number" data-line-number="10"></td>
          <td id="LC10" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>prefix_url</span> <span class=pl-c1>=</span> <span class=pl-s>&quot;demo&quot;</span></td>
        </tr>
        <tr>
          <td id="L11" class="blob-num js-line-number js-code-nav-line-number" data-line-number="11"></td>
          <td id="LC11" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>username</span><span class=pl-c1>=</span><span class=pl-s>&quot;demonstration&quot;</span></td>
        </tr>
        <tr>
          <td id="L12" class="blob-num js-line-number js-code-nav-line-number" data-line-number="12"></td>
          <td id="LC12" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>password</span><span class=pl-c1>=</span><span class=pl-s>&quot;password&quot;</span></td>

On remplace par les logins et mot de passe d’accès à pronote. Ensuite on modifie les deux occurrences par le prénom de l’enfant c’est ça?
Ne faut il pas une url particulière propre à l’établissement?
Merci d’avance de tes lumières

Merci !

en effet, les 4 variables a modifier sont :

eleve="demo" #changer avec le nom de son enfant
prefix_url = "demo" #changer par le prefix de l'url de votre Pronote qui se forme comme ça https://PREFIX.index-education.net/pronote/eleve.html?login=true
username="demonstration" # c'est le nom d'utilisateur de votre enfant dans pronote
password="pronotevs" : # le mot de passe du compte de votre enfant

Mais il faut connaitre l’adresse complète de son Pronote :
Exemple : https://0750362l.index-education.net/pronote/eleve.html?login=true
Alors le prefix_url = « 0750362l »

Mais mon conseil c’est déjà :

  • d’essayer de se connecter à Pronote via une url du type https://PREFIX.index-education.net/pronote/eleve.html?login=true et le login et pass de son enfant
  • de faire tourner la premiere fois le script avec le compte de démo
  • et ensuite remplacer les variables

Merci.
Pour le nom de l’enfant c’est sous quelle forme ? Nom de famille, Prénom ou prénom espace nom.

D’autres variables à modifier?

Je connais pas trop python. Comment on le lance a la main?
Depuis le linux je pense.
Idem pour le crontab?
Désolé si c’est beaucoup de questions.

nom de l’enfant : il sert juste pour le nom du fichier json - donc éviter les accents

les variables a modifier :

eleve="demo" #changer avec le nom de son enfant
prefix_url = "demo" #changer par le prefix de l'url de votre Pronote qui se forme comme ça https://PREFIX.index-education.net/pronote/eleve.html?login=true
username="demonstration" # c'est le nom d'utilisateur de votre enfant dans pronote
password="pronotevs" : # le mot de passe du compte de votre enfant

oui ! a lancer depuis linux
idem pour la crontab
il faut python sur votre linux et ne pas oublier d’ajouter les module os, date et pronotepy à python
via des commande du type :

pip install os 
pip install pronotepy
pip install date

ou pip3 suivant la version de python installé

si on a python 3.9.7, il faut remplacer pip par pip3 pour toutes tes lignes de codes?

a priori oui !
python3 vient avec pip3
il suffit d’essayer en tapant pip3 tout seul
nb : pour comprendre un minimum, pip sert à installer des lib ou module dépendant dans python

Sur mon PI2 j’ai bien python 3 mais pip install os et pip install date donnent une erreur 404

Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/os/

je crois que je dis une bêtise : tu as juste besoin de faire pip install pronotepy (date et os sont installé de base)

Quand je lance le scripte j’ai une erreur :

  File "pronote.py", line 7
    <!DOCTYPE html>
    ^
SyntaxError: invalid syntax

Merci pour le script et les fichiers yaml

Mes fils ne souhaitant pas me donner leur mot de passe (dans l’absolu ils ont raison), on peut modifier très légèrement le script python pour passer par l’authentification parent au lieu d’élève, et si plusieurs élèves, il ne faut pas oublier de sélectionner le bon.

Voila les lignes :

#Connection à Pronote
client = pronotepy.ParentClient('https://'+prefix_url+'.index-education.net/pronote/parent.html?login=true', username, password)

#Si on est bien connecté
if client.logged_in:
    client.set_child('Nom + Prénom de l élève')
2 « J'aime »

Bonjour,
Comme beaucoup de grand parents, nous utilisons Pronote tous les mercredis et le reste de la semaine on s’amuse avec Home Assistant :slight_smile:

J’aimerai bien utiliser cette méthode pour remonter les informations (pour impressionner mes petits-enfants la semaine prochaine) mais je ne connais pas assez Pyton alors j’hésite a me lancer dans l’installation du script et du cronjob de peur de démolir mon installation HA.

Serait-il possible de détailler un peu la procédure pour installer ce script dans un dossier ; est-ce qu’il faut juste le copier dans le dossier avec Samba ?

Pour la crontab, j’ai besoin d’aide, je ne vois pas comment il faut procéder?

Pour le reste, je pense pouvoir me débrouiller.

Merci d’avance et félicitations pour ce travail, je progresse tous les jours grâce à vous.

Merci pour vos retours
Lancez-vous ! Aucun risque de démolir votre installation.

il suffit juste de savoir se connecter en ligne de commande sur le serveur en SSH.
Installer le script c’est le poser au bon endroit (d’ailleurs ça peut être n’importe ou mais il faudra adapter le chemin du fichier json qu’il génère.
Enfin, pour la contrab rien de bien compliqué

Oh merci ! c’es vrai je n’avais pas pensé au enfants qui ne veulent pas donner leur mot de passe.
D’ailleurs c’est vrai qu’il n’est pas nécessaire d’avoir un compte eleve ! tout est visible dans le compte parent.
As-tu testé ? cela fonctionne ? Toutes les données remonte dans HA ?

NB : il faudra un compte élève le jour ou on voudra que les enfants cocher leur devoir fait dans HA…mais on n’y est pas

Oui cela fonctionne parfaitement tout remonte dans home assistant, par contre il faut bien faire le set_child lorsque tu as plusieurs enfants, sinon tu n’as pas les bonnes notes :rofl:

Bravo ! je suis content que ça fonctionne chez d’autres !

Je bloque de mon coté sur un début de script qui permettrait d’avoir un seul script pour plusieurs enfants.
Une sorte de tableau de variable (ou liste de liste) et bouclé dans ce tableau tant que y’a des enfants déclaré en haut du script

confs[0] = {eleve: "demo", prefix_url : "demo", username: "demonstration", password: "pronotevs"}
confs[1] = {eleve: "demo2", prefix_url : "demo2", username: "autrelogin", password: "autrepass"}
for conf in confs
# et mettre ici tout le reste du code pour que ça boucle...

Mais je bloque je voudrais faire faire un tableau de liste…une idée ?

Bonjour,

Un grand merci pour ce travail ! J’en rêvais, tu l’as fait, merci !
Par contre, il me manque apparemment aussi le module pronotepy.
Le problème, c’est que je n’ai pas d’accès ssh pour l’installer.
Une méthode pour le faire depuis le terminal intégré à Home Assistant OS ? (pip install et pip3 install ne fonctionnent pas)
Merci d’avance.

Il faut installer terminal ssh en addon

ça, c’est fait, je voudrais juste connaitre la commande pour installer pronotepy, dans ce module, car pip et pip3 me retourne un " command not found" ?
Merci d’avance.