dathosim / Pronote2Homeassistant

Tuto et bout de code pour ajouter des éléments de Pronote dans Home assistant
Apache License 2.0
42 stars 20 forks source link

Pronote dans Homeassistant

Ceci est un tutoriel pour intégrer Pronote dans Home assistant !
C'est une intégration mais qui n'est pas plug and play comme les intégrations standard de HA.
Elle se base sur un script python que j'ai développé et qui est basé sur l'API wrapper pronotepy.

Lovelace

Nouveautés - 16/10/2022

Nouveautés - 27/03/2022

Nouveautés - 11/03/2023

Rappel :

Pronote est une application en ligne déployée dans plusieurs milliers de collèges et lycées français.
Elle permet aux élèves de voir leurs emploi du temps, leurs notes et leurs devoirs.
Vous pouvez voir une démo de l'application à l'adresse suivante :

https://demo.index-education.net/pronote/eleve.html?login=true

  • utlisateur : demonstration
  • mot de passe : pronotevs

L'idée consiste donc à remonter ces informations (emploi du temps, note, devoirs, absence...) dans HA pour créer des automatisations comme :

Pré-requis :

Principe de base :

1. Installation de la lib pronotepy

Le script python que j'ai développé dépend d'une librairie python développé en open source : pronotepy (merci à bain3.
C'est cette librairie qui permet par exemple que le script se connecter à Pronote via les ENT (s'ils ont été implémentés et supportés par bain3)

Pour installer cette librairie sur votre système, je vous conseille d'utiliser la commande pip ou pip3.
Commande : pip install pronotepy
Recommandation : il est important de la mettre à jour régulièrement cette librairie.
Commande : pip install --upgrade pronotepy

2. Installation du script python

Je mets donc à disposition un script python pronote.py.
Ce script permet de se connecter à Pronote et récupère toutes les informations dans un JSON.
Ce script utilise un fichier de configuration config.ini qui est initialisé avec le compte de démo de Pronote > reste à l'adapter à vos identifiants en changeant les variables dans la section defaut.
Et si vous avez plusieurs enfants, ajoutez une nouvelle section comme dans le fichier config.ini d'exemple.

Il faut donc installer ce script ainsi que le fichier de configuration dans un dossier (nommé par exemple "python_script") dans le dossier /config de votre HA.
Ce script quand il est lancé génère un fichier JSON déposé dans /config/www/ de votre HA (comme défini via le paramètre output du fichier de config).

3. Exécution du script

Pour lancer le script il faut avoir accès en SSH et se placer dans le dossier créé précédement

cd /usr/share/hassio/homeassistant/python_scripts/

Et lancer le script avec la commande

python3 pronote.py

Et si vous avez créé une section pour un 2eme enfant dans le config.ini, alors :

python3 pronote.py enfant1

Il doit ensuite être lancé de façon régulière - toute les 5 ou 10 minutes - via la crontab par exemple.
Exemple :

*/10 * * * * /usr/bin/python3 /usr/share/hassio/homeassistant/python_scripts/pronote.py > /tmp/pronote.log 2>&1

4. Configuration YAML pour récupérer l'emploi du temps dans un sensor

Je fourni donc un fichier configuration.yaml configuration.yaml à copier à l'intérieur de celui de votre HA.
Attention : N'oubliez pas de mettre la bonne adresse IP interne de votre HA (ne pas laisser 192.168.XX.XX). Et renommer pour changer "demo" avec le nom qu vous voulez (votre enfant).

5. Test des sensors avec le Developper Tools de HA

Tester les sensors qui commencent par "pronote" avec le Developer Tools de Home assistant

devtools

6. Affichage dans les cartes Lovelace

Il suffit de créer un nouvel onglet dans HA et ensuite de copier coller le contenu du fichier lovelace.yaml lovelace.yaml

ça doit donner ça :

Lovelace

7. Notification

Vous trouverez dans le fichier automation.yaml des automatisations qui permettent d'être notifié (notif persistant pour l'exemple) en cas de :

Lovelace

il vous suffit de créer une automatisation vide et de copier/coller chaque automatisation en mode d'edition yaml