Hello everyone,
New external integration: EcoleDirecte (v1.0.1). It allows you to follow your children’s schooling in Gladys: grades, average, homework, schedule, absences/late arrivals, and messages. And especially to use them in scenes ![]()
Gladys 5.1 or newer required (triggers, scene actions, and widgets).
One device per child
A parent account gives all children. A student account gives the student themselves. Each child appears in the Discovery tab, with:
- Overall average of the current period (out of 20)
- Latest grade, converted to 20, and in text: « MATHEMATICS: 15/20 (Chapter 3 Test) »
- Homework for tomorrow and homework to do (not done)
- Next class: « 08:00 MATHEMATICS (S12) »
- Absences and late arrivals for the year
- Unread messages
If the institution does not publish the overall average, the integration calculates it from the grades (average of each subject with the coefficients, then average of the subjects). If a module is disabled by the institution (grades, for example), the feature simply remains empty.
Scene Triggers
- New grade: subject, assignment, grade, grade out of 20, date
- New homework: subject, date, announced test or not
- New absence or late arrival: filterable by type, justified or not
- Canceled class: subject, day, hours, teacher
- New message: sender, subject
All are filterable by child. On first startup, the integration records what already exists without triggering anything: no burst of 40 « new grade » on installation ![]()
Scene Actions
- Refresh EcoleDirecte: read EcoleDirecte right away
- Read homework for a day (today, tomorrow, or next school day): number of assignments, tests, subjects, and a summary of the content ready to send
- Read the schedule for a day: are there classes, time of the first class, end of the last, number of canceled classes
A few ideas:
- Every evening at 7 p.m.: read tomorrow’s homework and send the summary on Telegram if there is any
- In the morning: set the alarm to the time of the first class, or let sleep if the first class is canceled
- A notification for each new grade or absence
Widgets
- School tracking: average, latest grade, tomorrow’s homework, and unread messages in real-time, next class, absences, and late arrivals
- Homework: homework to do, with their content in one click
- Schedule: classes of a day, canceled classes indicated
The child is chosen in the settings of each widget.
Installation and Security Question
- Install the integration from the store
- Enter your EcoleDirecte username and password
- Click Test Connection
The first time, EcoleDirecte often asks a security question (« What is your year of birth? »). In this case:
- Get the security question displays the question and the numbered answers
- Answer the security question: type the number of the correct answer (within 10 minutes)
The answer is kept by the integration: the question is no longer asked on subsequent startups.
Other settings: refresh interval (30 minutes by default), time zone of the institution (for overseas), and language of device names.
Security
- Cloud integration: nothing to install on the network
- Password stored in a secret field of Gladys, sent only to EcoleDirecte
- Neither the password nor the session token appears in the logs
- No other service contacted
Good to Know
- EcoleDirecte has no public API: the integration uses theirs, documented by the community. It can change without notice. If it breaks, let me know here and I’ll fix it quickly.
- EcoleDirecte sometimes cuts access during vacations: the integration signals it and retries on its own.
- Texts in French, English, German, and Spanish.
Links
- Source code: GitHub - prohand/gladys-ecoledirecte: Gladys external integration to connect ecole direct in Gladys · GitHub
- Documentation: gladys-ecoledirecte/docs/fr.md at main · prohand/gladys-ecoledirecte · GitHub
This is a first version, and I don’t have all cases at home: feedback with other institutions (high school, overseas, student account) will help a lot.
As usual, don’t hesitate to report your feedback here, with a screenshot if possible ![]()