Intégration Ecole Directe - obsolète

Ci-dessous, vous trouverez des automatisations que vous pouvez rajouter ou modifier à votre convenance.

Pour les évaluations:

alias: Ecole Directe - notification nouvelle évaluation
description: Notification en cas de nouvelle évaluation sur Ecole Directe
trigger:
  - platform: event
    event_type: ecole_directe_event
    event_data:
      type: new_evaluations
action:
  - service: notify.persistent_notification
    data:
      message: >
        {{ trigger.event.data.data.subject }} : {{ trigger.event.data.data.name }}
      title: Nouvelle évaluation pour {{ trigger.event.data.child_name }}
mode: single

Pour les absences:

alias: Ecole Directe - notification nouvelle absence
description: Notification en cas de nouvelle absence sur Ecole Directe
trigger:
  - platform: event
    event_type: ecole_directe_event
    event_data:
      type: new_absence
action:
  - service: notify.persistent_notification
    data:
      message: >
        {{ trigger.event.data.data.display_date }} - {{ trigger.event.data.data.commentaire }}
      title: Nouvelle absence pour {{ trigger.event.data.child_name }}
mode: single

Pour les retards:

alias: Ecole Directe - notification nouveau retard
description: Notification en cas de nouveau retard sur Ecole Directe
trigger:
  - platform: event
    event_type: ecole_directe_event
    event_data:
      type: new_retard
action:
  - service: notify.persistent_notification
    data:
      message: >
        {{ trigger.event.data.data.display_date }} - {{ trigger.event.data.data.commentaire }}
      title: Nouveau retard pour {{ trigger.event.data.child_name }}
mode: single

Pour les sanctions:

alias: Ecole Directe - notification nouvelle sanction
description: Notification en cas de nouvelle sanction sur Ecole Directe
trigger:
  - platform: event
    event_type: ecole_directe_event
    event_data:
      type: new_sanction
action:
  - service: notify.persistent_notification
    data:
      message: >
        {{ trigger.event.data.data.display_date }} - {{ trigger.event.data.data.commentaire }}
      title: Nouvelle sanction pour {{ trigger.event.data.child_name }}
mode: single

Et enfin les encouragements :


alias: Ecole Directe - notification nouvel encouragement
description: Notification en cas de nouvel encouragement sur Ecole Directe
trigger:
  - platform: event
    event_type: ecole_directe_event
    event_data:
      type: new_encouragement
action:
  - service: notify.persistent_notification
    data:
      message: >
        {{ trigger.event.data.data.display_date }} - {{ trigger.event.data.data.commentaire }}
      title: Nouvel encouragement pour {{ trigger.event.data.child_name }}
mode: single

Bien sûr, je n’ai pas pu tester :sweat_smile:
Donc dites moi si ça ne marche pas. :stuck_out_tongue_winking_eye:

2 « J'aime »

Hello @Giga77, j’ai toujours un problème d’affichage sur les devoirs avec une mise en forme assez degueue de la card homework.

Comme je suis pas bon en programmation et surtout nul en Python, j’ai demandé à mon ami chatgpt de m’aider à cleaner les attributs récupérés par l’intégration école directe du sensor homework, je te partage ses conseils. Peut être que tu ou une autre personne plus compétente que moi pourra l’ajouter à ton code

Voici le rendu de ma card :
image

L’attribut récupéré par le sensor :

- date: '2024-05-27'
  subject: ESPAGNOL LV2
  short_description: >-
    <p><span style="font-size:11pt"><span style="line-height:107%"><span
    style="font-family:Calibri,sans-serif"><b><span style="f
  description: >
    <p><span style="font-size:11pt"><span style="line-height:107%"><span
    style="font-family:Calibri,sans-serif"><b><span
    style="font-size:18.0pt"><span style="line-height:107%"><span
    style="color:red">5.- PHRASE PERSONNELLE A
    FAIRE</span></span></span></b></span></span></span></p>


    <p style="margin-bottom:11px"><span style="font-size:11pt"><span
    style="line-height:107%"><span
    style="font-family:Calibri,sans-serif"><b><span
    style="font-size:18.0pt"><span style="line-height:107%"><span
    style="color:red">Soler +
    infinitif</span></span></span></b></span></span></span></p>
  done: false
  background_color: null
  files: []
  interrogation: false

Et la réponse de ChatGpt

Pour nettoyer et extraire le texte de l’entrée YAML pour ESPAGNOL LV2 tout en évitant la duplication et en décodant les entités HTML, vous pouvez suivre une approche similaire à celle utilisée précédemment.

Voici le script Python mis à jour pour cette nouvelle entrée :

  1. Installez les bibliothèques nécessaires si ce n’est pas déjà fait :
pip install pyyaml beautifulsoup4

  1. Utilisez le script suivant pour lire le fichier YAML, extraire le texte de la section short_description, et nettoyer le texte HTML :
import yaml
from bs4 import BeautifulSoup
import html

# Exemple de contenu YAML à traiter
yaml_content = """
- date: '2024-05-27'
  subject: ESPAGNOL LV2
  short_description: >-
    <p><span style="font-size:11pt"><span style="line-height:107%"><span
    style="font-family:Calibri,sans-serif"><b><span style="f
  description: >
    <p><span style="font-size:11pt"><span style="line-height:107%"><span
    style="font-family:Calibri,sans-serif"><b><span
    style="font-size:18.0pt"><span style="line-height:107%"><span
    style="color:red">5.- PHRASE PERSONNELLE A
    FAIRE</span></span></span></b></span></span></span></p>
    <p style="margin-bottom:11px"><span style="font-size:11pt"><span
    style="line-height:107%"><span
    style="font-family:Calibri,sans-serif"><b><span
    style="font-size:18.0pt"><span style="line-height:107%"><span
    style="color:red">Soler +
    infinitif</span></span></span></b></span></span></span></p>
  done: false
  background_color: null
  files: []
  interrogation: false
"""

# Charger le contenu YAML
data = yaml.safe_load(yaml_content)

# Fonction pour nettoyer le texte HTML
def clean_html(html_content):
    soup = BeautifulSoup(html_content, 'html.parser')
    text = soup.get_text()
    decoded_text = html.unescape(text)
    return decoded_text

# Traiter chaque entrée dans les données YAML
for entry in data:
    if 'short_description' in entry:
        cleaned_text = clean_html(entry['short_description'])
        entry['short_description'] = cleaned_text

# Afficher le résultat
for entry in data:
    print(f"Date: {entry['date']}")
    print(f"Subject: {entry['subject']}")
    print(f"Short Description: {entry['short_description']}")
    print(f"Description: {entry['description']}")
    print(f"Done: {entry['done']}")
    print(f"Background Color: {entry['background_color']}")
    print(f"Files: {entry['files']}")
    print(f"Interrogation: {entry['interrogation']}")
    print("\n")


Résultat Obtenu :

Date: 2024-05-27
Subject: ESPAGNOL LV2
Short Description: 
Description: 5.- PHRASE PERSONNELLE A FAIRE Soler + infinitif
Done: False
Background Color: None
Files: []
Interrogation: False

Ce qui m’irait parfaitement :slight_smile:
D’avance merci à toi ou à la personne capable d’implémenter tout ça, moi je n’en suis pas capable
++

1 « J'aime »

Nouvelle version v0.3.4 disponible en bêta
Possibilité de retirer les tags HTML (et donc le formatage).
:warning: A utiliser avec précautions, car si vous activez cette options, ça va supprimer le formatage, mais aussi les liens, iFrame, etc.

Par défaut, cette option est désactivé. Pour l’activer, suivez ces instructions:
Allez sur l’intégration et cliquez sur « Configurer »:

Cochez l’option, puis validez :
image

Ensuite il faut recharger l’intégration:
image

@dedelastuce je n’ai pas utiliser ta méthode car il faut installer une librairie tierce qui n’est pas forcément disponible (mais je l’ai testé, et le résultat est identique à ma solution).

Avant

Après
image

2 « J'aime »

Testé à l’instant et validé !
Merci @Giga77

1 « J'aime »

Hello quick question
As tu modifié des choses sur les grades?
Mes enfants ont eu des nouvelles notes et je n’ai pas eu de notification
Mon automatisation n’a pas changé depuis les dernères versions et ça fonctionnait bien à l’époque :


Merci

1 « J'aime »

:face_with_raised_eyebrow: Non

Envoie-moi les fichiers json, et regarde les logs.

Merci
Je t’envoie le json correspondant aux grades

Concernant les logs, j’ai pas grand chose à part ça que j’ai depuis le début, mais l’intégration fonctionne bien :


et ça :
image

EDIT
J’ai compris ces 2 premières erreurs, j’avais 2 fois le même service (surement à la suite d’une mise à jour) dont 1 qui ne pointait pas sur le fichier questionnaire, j’ai supprimé le service qui bugguait et je n’ai plus ces 2 erreurs

Par contre j’ai cette erreur qui date d’hier (je crois pas l’avoir vue avant, mais peut etre que c’est aussi lié au double service, je te dirai si elle revient) :

1 « J'aime »

T’avais 2 intégrations Ecole Directe avec le même nom ? :face_with_peeking_eye:

Il faut que je vois si je peux éviter ça. :face_with_monocle:

Bizarre, ç’est surement lié aux 2 services. Préviens moi si ça revient.

J’avais une seule intégration mais 2 éléments à l’intérieur (là ou il y a ton nom et que j’ai colorié en bleu)


1 qui fonctionnait bien (1 service & 28 entités)
1 qui ne fonctionnait pas car je pense qu’il ne pointait pas sur le fichier QCM et qui ne remontait rien
Sur le screen j’ai déjà supprimé celle qui ne fonctionnait pas et qui provoquait l’erreur

Salut,

Moi, je note une régression sur cette version, que j’active ou non la suppression des formatage pour le homeworks, le(s) sensor(s) sensor.ecole_directe_xxx_yyyy_homework sont en unavailable. Le seul log que j’ai c’est :

hass[20363]: 2024-05-27 18:13:04.135 WARNING (MainThread) [custom_components.ecole_directe.coordinator] Error getting homeworks from ecole directe: 'aFaire'

si tu a besoin de plus d’info, j’activerai le custom_components.ecole_directe: debug

Cdt

1 « J'aime »

:thinking:
Non, mais tu peux m’envoyer tes fichiers « get_homeworks.json » et « get_homeworks_by_date_X.json » par MP.

La même de mon coté :frowning:
C’est la première fois que j’ai ce message

image

Nouvelle version v0.3.5 disponible en bêta

Correction des nouvelles notes et des devoirs

Oui, bug introduit dans la bêta 0.3.4. Je l’ai corrigé.

Testé à l’instant. Aucune erreur de mon coté
Merci Giga77 !

EDIT : J’ai bien les notif pour les nouvelles notes

1 « J'aime »

Pour info a tous ( pas a Giga77, car il le sais déjà :wink: )

Une pull requests a était fait ( Update evaluations-card.js by sigalou · Pull Request #12 · delphiki/lovelace-pronote · GitHub ).

En attendant d’acceptation par le mainteneur du repo , puis d’une release.

PS: Ça refonctionne bien avec la nouvelle version 0.3.5

1 « J'aime »

Pour ma part, j’ai désinstallé, réinstallé, X fois et je n’ai tjrs aucun sensor de visible. Le message d’erreur que j’ai est celui ci :
image

As-tu correctement répondu au fichier qcm (il doit se trouver dans le répertoire config de Home Asssistant ) ?

Oui j’ai tout bien fait.
Et il est à la racine de home assistant, je n’ai pas de rep « Config »

Le message d’erreur dans la log :

2024-05-31 20:28:43.380 CRITICAL (SyncWorker_14) custom_components.ecole_directe.ecole_directe_helper] Expecting value: line 4 column 5 (char 79)

Ton fichier n’est pas correctement formaté.
Il doit avoir des virgules en trop.

1 « J'aime »