EcoleDirecte smart home integration, free and open source

Grades, homework, timetable, absences and messages from EcoleDirecte in Gladys.
This integration connects Gladys to EcoleDirecte, the online school platform of many French secondary schools. For each child the account follows, it reads grades and averages, homework, the timetable, absences and delays, and the inbox.
It goes through the internet (cloud badge): there is nothing to install on your network.
Configuration
- Open the Configuration tab of the integration.
- Enter the username and password you type on ecoledirecte.com. A parent account gives every child; a student account gives the student.
- Optional settings:
- Refresh interval: every 30 minutes by default (10 minutes at least);
- School time zone:
Europe/Parisby default. Change it only for a school outside mainland France (America/Martinique,Indian/Reunion…); - Language of the device names: the language of the names written when the devices are created.
- Save, then click Test the connection.
The security question
The first time, EcoleDirecte often asks to confirm the device with a question (for example "What is your birth year?"). The integration status says so. Then:
- click Get the security question: the question and the numbered possible answers appear under the button;
- within 10 minutes, type the number of the right answer (or its text) in Answer the security question.
The integration keeps the answer: the question is not asked again at the next starts. If EcoleDirecte asks it again one day, repeat these two steps.
Devices
Each child appears in the Discovery tab; add it. Its features:
| Feature | Content |
|---|---|
| General average | Average of the current period (out of 20) |
| Last grade (/20) | Last grade entered, scaled to 20 |
| Last grade | As text: "MATHEMATIQUES : 15/20 (Contrôle chap. 3)" |
| Homework for tomorrow | Homework not done, due tomorrow |
| Homework to do | Homework not done, still to come |
| Next lesson | "08:00 MATHEMATIQUES (S12)", with the day when not today |
| Absences / Delays | Count over the school year |
| Unread messages | Unread messages of the account's inbox |
When the school switches a module off (the grades, for instance), the matching feature stays empty. When the school does not publish the general average, the integration computes it from the grades: the average of each subject (with the coefficients), then the average of the subjects.
Scenes (Gladys 5.1 or later)
Triggers
- New grade: variables
subject,assignment,grade,out_of,grade_20,date,student_name. - New homework:
subject,due_date,is_test. - New absence or delay: filter on the type;
kind,date,label,justified. - Lesson cancelled: a coming lesson was cancelled;
subject,date,start,end,teacher. - New message:
from,subject,date.
Each one can be filtered on a student. At the first start, the integration records what already exists without firing anything.
Actions
- Refresh EcoleDirecte: reads EcoleDirecte right away.
- Get homework (today, tomorrow, next school day):
count,tests,subjects,summary(the homework content, ready to send as a message). - Get timetable:
has_lessons,first_start,first_subject,last_end,lesson_count,cancelled_count— enough to set the alarm on the first lesson.
Example: every evening at 7 pm, "Get homework" for tomorrow, then send summary
on Telegram when count is above 0.
Widgets (Gladys 5.1 or later)
- School overview: live average, last grade, homework for tomorrow and unread messages, next lesson, absences and delays.
- Homework: the homework still to do, with its content.
- Timetable: the lessons of a day, cancelled ones flagged.
Pick the student in the widget settings.
Troubleshooting
- "EcoleDirecte refused the username or the password": check them on ecoledirecte.com.
- "The school is not available": EcoleDirecte often closes access during the holidays; the integration retries by itself.
- "EcoleDirecte refused the API version": update the integration.
- The integration logs never show the password.
Configuration settings
These are the settings EcoleDirecte asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| Getting started | section | No | Use the username and password you type on ecoledirecte.com (a parent or a student account). The first time, EcoleDirecte may ask a security question: answer it with the two buttons below the form. Each child then appears in the Discovery tab. |
| Username | string | Yes | Your EcoleDirecte username. |
| Password | secret | Yes | Your EcoleDirecte password. It is only sent to EcoleDirecte, never logged. |
| Refresh interval (min) | number | No | How often EcoleDirecte is read, in minutes (10 to 720). |
| School time zone | string | No | Used for "today", "tomorrow" and the lesson hours. Change it only for a school outside mainland France, e.g. America/Martinique. |
| Language of the device names | select | No | Language of the feature names written when a student's device is created. |
How to install EcoleDirecte in Gladys
- In Gladys, open Integrations: EcoleDirecte appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/prohand/gladys-ecoledirect:1.0.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/prohand/gladys-ecoledirecte.
EcoleDirecte requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.
Not running Gladys yet? It is free and open source: follow the installation guide to get started.
About external integrations
EcoleDirecte is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by prohand, not by the Gladys core team.
- Browse all integrations, native and community
- Build and publish your own external integration
- Source code on GitHub — source of this documentation