{"id":46182117,"url":"https://github.com/hacf-fr/hass-ecoledirecte","last_synced_at":"2026-05-01T23:06:14.371Z","repository":{"id":226950528,"uuid":"768540017","full_name":"hacf-fr/hass-ecoledirecte","owner":"hacf-fr","description":"Ecole directe integration for Home Assistant","archived":false,"fork":false,"pushed_at":"2026-04-14T22:15:17.000Z","size":661,"stargazers_count":21,"open_issues_count":7,"forks_count":5,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-04-15T00:33:21.541Z","etag":null,"topics":["cloud","ecole-directe","ecoledirecte","hacf-fr","hacs","homeassistant-custom-component","integration"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hacf-fr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"Giga77","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"Giga77","thanks_dev":null,"custom":null}},"created_at":"2024-03-07T09:19:34.000Z","updated_at":"2026-04-14T22:12:02.000Z","dependencies_parsed_at":"2024-05-22T00:31:15.582Z","dependency_job_id":"9db45901-11ed-403f-bd3e-2937a4d1d5c0","html_url":"https://github.com/hacf-fr/hass-ecoledirecte","commit_stats":null,"previous_names":["hacf-fr/hass-ecoledirecte"],"tags_count":76,"template":false,"template_full_name":null,"purl":"pkg:github/hacf-fr/hass-ecoledirecte","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacf-fr%2Fhass-ecoledirecte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacf-fr%2Fhass-ecoledirecte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacf-fr%2Fhass-ecoledirecte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacf-fr%2Fhass-ecoledirecte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hacf-fr","download_url":"https://codeload.github.com/hacf-fr/hass-ecoledirecte/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacf-fr%2Fhass-ecoledirecte/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32515846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","ecole-directe","ecoledirecte","hacf-fr","hacs","homeassistant-custom-component","integration"],"created_at":"2026-03-02T20:36:21.516Z","updated_at":"2026-05-01T23:06:14.335Z","avatar_url":"https://github.com/hacf-fr.png","language":"Python","funding_links":["https://github.com/sponsors/Giga77","https://buymeacoffee.com/Giga77","https://www.buymeacoffee.com/giga77"],"categories":[],"sub_categories":[],"readme":"# Integration Ecole directe pour Home Assistant\n\n[![GitHub Release][releases-shield]][releases]\n[![GitHub Activity][commits-shield]][commits]\n[![License][license-shield]](LICENSE)\n\n[![hacs][hacsbadge]][hacs]\n![Project Maintenance][maintenance-shield]\n\n[![BuyMeCoffee][buymecoffeebadge]](https://www.buymeacoffee.com/giga77)\n\n**✨ Develop in the cloud:** Want to contribute or customize this integration? Open it directly in GitHub Codespaces - no local setup required!\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/hacf-fr/hass-ecoledirecte?quickstart=1)\n\n- [Installation](#Installation)\n  - [Installation via l'interface utilisateur via HACS](#Installation-via-linterface-utilisateur-via-hacs)\n  - [Installation manuelle](\u003c#Installation-manuelle\u003e)\n- [Configuration](#Configuration)\n- [Utilisation](#Utilisation)\n\n- **Easy Setup**: Simple configuration through the UI - no YAML required\n- **Reconfigurable**: Change credentials anytime without removing the integration\n- **Options Flow**: Adjust settings like update interval after setup\n- **Custom Services**: Advanced control with built-in service calls\n\n## 🚀 Installation\n\n### Installation via l'interface utilisateur via HACS\n\n1. Cliquez sur ce lien : [HACS: Ecole Directe](https://my.home-assistant.io/redirect/hacs_repository/?owner=hacf-fr\u0026repository=hass-ecoledirecte)\n2. Cliquez sur le bouton `Open link`.\n3. Cliquez sur le bouton `Télécharger` en bas à droite, puis une deuxième fois sur `Télécharger`.\n5. Il faut ensuite redémarrer Home Assistant.\n\n### Installation manuelle\nCopier le répertoire ecole_directe de la dernière release dans le répertoire custom_components de votre répertoire config. Redémarrer Home Assistant\n\n## ✨ Configuration\n\nCliquer sur ce bouton:\n[![Open your Home Assistant instance and start setting up a new integration of a specific brand.](https://my.home-assistant.io/badges/brand.svg)](https://my.home-assistant.io/redirect/config_flow_start/?domain=ecole_directe)\n\nOu aller dans :\nParamètres \u003e Appareils et services \u003e Intégrations \u003e Ajouter une intégration, et chercher \"Ecole Directe\"\n\nUtiliser votre identifiant et mot de passe :\n\n![Ecole directe config flow](doc/config_flow_username_password.png)\n\nLe fichier qcm permet de sauvegarder les questions et respectives réponses pour la double authentification requise par Ecole Directe. Il est créé automatiquement dans le répertoire Config de Home Assistant.\nL'option \"Envoi de notifications\" permet d'envoyer une notification lorsqu'il y a une nouvelle question dans le fichier qcm. Il est aussi possible de créer une automatisation à partir de l'événement \"ecole_directe_event\" de type \"new_qcm.\nExemple:\n```\nalias: Ecole Directe - notification nouvelle question QCM\ndescription: Notification en cas de nouvelle question QCM dans le fichier qcm\ntrigger:\n  - platform: event\n    event_type: ecole_directe_event\n    event_data:\n      type: new_qcm\naction:\n  - service: notify.persistent_notification\n    data:\n      message: \u003e\n        Nouvelle question : {{ trigger.event.data.question }} Il faut vérifier\n        le fichier qcm\n      title: Nouvelle question qcm Ecole Directe\nmode: queued\nmax: 10\n```\n\n## Utilisation\n\nCette intégration fournit plusieurs entités, toujours préfixées avec `ed_PRENOM_NOM` (où `PRENOM` et `NOM` sont remplacé).\nLes entités sont mises à jour toutes les 30 minutes.\nDans vos dashboards, vous pouvez utiliser les cartes [EcoleDirecteHACards](https://github.com/hacf-fr/EcoleDirecteHACards).\n| Entité | Description |\n|--------|-------------|\n| `sensor.ed_PRENOM_NOM` | informations basique de l'enfant |\n| `[...]_devoirs` | devoirs |\n| `[...]_devoirs_aujourd_hui` | devoirs du jour |\n| `[...]_devoirs_demain` | devoirs du lendemain |\n| `[...]_devoirs_jour_suivant` | devoirs du jour ouvré suivant (ex: si on consulte le vendredi, il doit y avoir les devoirs du lundi )|\n| `[...]_devoirs_semaine_en_cours` | devoirs de la semaine en cours |\n| `[...]_devoirs_semaine_suivante` | devoirs de la semaine suivante |\n| `[...]_devoirs_semaine_apres_suivante` | devoirs de la semaine suivante suivante :D |\n| `[...]_notes` | notes |\n| `[...]_evaluations` | evaluations |\n| `[...]_emploi_du_temps_aujourd_hui` | emploi du temps du jour |\n| `[...]_emploi_du_temps_demain` | emploi du temps du lendemain |\n| `[...]_emploi_du_temps_jour_suivant` | emploi du temps du jour ouvré suivant (ex: si on consulte le vendredi, il doit y avoir l'emploi du temps du lundi )|\n| `[...]_emploi_du_temps_semaine_en_cours` | emploi du temps de la semaine en cours |\n| `[...]_emploi_du_temps_semaine_suivante` | emploi du temps de la semaine suivante |\n| `[...]_emploi_du_temps_semaine_apres_suivante` | emploi du temps de la semaine suivante suivante :D |\n| `[...]_absences` | absences |\n| `[...]_retards` | retards |\n| `[...]_sanctions` | sanctions |\n| `[...]_encouragements` | encouragements |\n\nIl y a des événements qui sont déclenché sous certaines conditions. Ils peuvent être utiliser comme déclencheur dans des automatisations.\n| Evénement | Description |\n|--------|-------------|\n| `new_formulaire` | nouveau formulaire |\n| `new_devoir` | nouveau devoir |\n| `new_note` | nouvelle note |\n| `new_evaluation` | nouvelle evaluation |\n| `new_absence` | nouvelle absence |\n| `new_retard` | nouveau retard |\n| `new_sanction` | nouvelle sanction |\n| `new_encouragement` | nouvel encouragement |\n| `new_qcm` | nouveau qcm |\n\n## Enable Debug Logging\n\nTo enable debug logging for this integration, add the following to your `configuration.yaml`:\n\n```yaml\nlogger:\n  default: info\n  logs:\n    custom_components.ecole_directe: debug\n```\n\n## Custom Services\n\nThe integration provides services for advanced automation:\n\n### `ecole_directe.example_action`\n\nPerform a custom action (customize this for your needs).\n\n**Example:**\n\n```yaml\nservice: ecole_directe.example_action\ndata:\n  # Add your parameters here\n```\n\n### `ecole_directe.reload_data`\n\nManually refresh data from the API without waiting for the update interval.\n\n**Example:**\n\n```yaml\nservice: ecole_directe.reload_data\n```\n\nUse these services in automations or scripts for more control.\n\n## Configuration Options\n\n### During Setup\n\nName | Required | Description\n-- | -- | --\nUsername | Yes | Your account username\nPassword | Yes | Your account password\n\n### After Setup (Options)\n\nYou can change these anytime by clicking **Configure**:\n\nName | Default | Description\n-- | -- | --\nUpdate Interval | 1 hour | How often to refresh data\nEnable Debugging | Off | Enable extra debug logging\n\n## Troubleshooting\n\n### Authentication Issues\n\n#### Reauthentication\n\nIf your credentials expire or change, Home Assistant will automatically prompt you to reauthenticate:\n\n1. Go to **Settings** → **Devices \u0026 Services**\n2. Look for **\"Action Required\"** or **\"Configuration Required\"** message on the integration\n3. Click **\"Reconfigure\"** or follow the prompt\n4. Enter your updated credentials\n5. Click Submit\n\nThe integration will automatically resume normal operation with the new credentials.\n\n#### Manual Credential Update\n\nYou can also update credentials at any time without waiting for an error:\n\n1. Go to **Settings** → **Devices \u0026 Services**\n2. Find **Ecole Directe**\n3. Click the **3 dots menu** → **Reconfigure**\n4. Enter new username/password\n5. Click Submit\n\n#### Connection Status\n\nMonitor your connection status with the **API Connection** binary sensor:\n\n- **On** (Connected): Integration is receiving data normally\n- **Off** (Disconnected): Connection lost or authentication failed\n  - Check the binary sensor attributes for diagnostic information\n  - Verify credentials if authentication failed\n  - Check network connectivity\n\n### Enable Debug Logging\n\nTo enable debug logging for this integration, add the following to your `configuration.yaml`:\n\n```yaml\nlogger:\n  default: info\n  logs:\n    custom_components.ecole_directe: debug\n```\n\n### Common Issues\n\n#### Authentication Errors\n\nIf you receive authentication errors:\n\n1. Verify your username and password are correct\n2. Check that your account has the necessary permissions\n3. Wait for the automatic reauthentication prompt, or manually reconfigure\n4. Check the API Connection binary sensor for status\n\n#### Device Not Responding\n\nIf your device is not responding:\n\n1. Check the **API Connection** binary sensor - it should be \"On\"\n2. Check your network connection\n3. Verify the device is powered on\n4. Check the integration diagnostics (Settings → Devices \u0026 Services → Ecole Directe → 3 dots → Download diagnostics)\n\n## 🤝 Contributing\n\nContributions are welcome! Please open an issue or pull request if you have suggestions or improvements.\n\n### 🛠️ Development Setup\n\nWant to contribute or customize this integration? You have two options:\n\n#### Cloud Development (Recommended)\n\nThe easiest way to get started - develop directly in your browser with GitHub Codespaces:\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/hacf-fr/hass-ecoledirecte?quickstart=1)\n\n- ✅ Zero local setup required\n- ✅ Pre-configured development environment\n- ✅ Home Assistant included for testing\n- ✅ 60 hours/month free for personal accounts\n\n#### Local Development\n\nPrefer working on your machine? You'll need:\n\n- Docker Desktop\n- VS Code with the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)\n\nThen:\n\n1. Clone this repository\n2. Open in VS Code\n3. Click \"Reopen in Container\" when prompted\n\nBoth options give you the same fully-configured development environment with Home Assistant, Python 3.13, and all necessary tools.\n\n---\n\n## 🤖 AI-Assisted Development\n\n\u003e **ℹ️ Transparency Notice**\n\u003e\n\u003e This integration was developed with assistance from AI coding agents (GitHub Copilot, Claude, and others). While the codebase follows Home Assistant Core standards, AI-generated code may not be reviewed or tested to the same extent as manually written code.\n\u003e\n\u003e AI tools were used to:\n\u003e\n\u003e - Generate boilerplate code following Home Assistant patterns\n\u003e - Implement standard integration features (config flow, coordinator, entities)\n\u003e - Ensure code quality and type safety\n\u003e - Write documentation and comments\n\u003e\n\u003e Please be aware that AI-assisted development may result in unexpected behavior or edge cases that haven't been thoroughly tested. If you encounter any issues, please [open an issue](../../issues) on GitHub.\n\u003e\n\u003e *Note: This section can be removed or modified if AI assistance was not used in your integration's development.*\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n**Made with ❤️ by [@Giga77][user_profile]**\n\n---\n\n[commits-shield]: https://img.shields.io/github/commit-activity/y/hacf-fr/hass-ecoledirecte.svg?style=for-the-badge\n[commits]: https://github.com/hacf-fr/hass-ecoledirecte/commits/main\n[hacs]: https://github.com/hacs/integration\n[hacsbadge]: https://img.shields.io/badge/HACS-Default-orange.svg?style=for-the-badge\n[license-shield]: https://img.shields.io/github/license/hacf-fr/hass-ecoledirecte.svg?style=for-the-badge\n[maintenance-shield]: https://img.shields.io/badge/maintainer-%40Giga77-blue.svg?style=for-the-badge\n[releases-shield]: https://img.shields.io/github/release/hacf-fr/hass-ecoledirecte.svg?style=for-the-badge\n[releases]: https://github.com/hacf-fr/hass-ecoledirecte/releases\n[user_profile]: https://github.com/Giga77\n\n[buymecoffee]: https://www.buymeacoffee.com/giga77\n[buymecoffeebadge]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg?style=for-the-badge\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacf-fr%2Fhass-ecoledirecte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhacf-fr%2Fhass-ecoledirecte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacf-fr%2Fhass-ecoledirecte/lists"}