[Article] Intégration Pronote : cours, devoirs, notes, etc (archive)

Hello,

Voici ce que j’ai :

updated_at: "2024-05-19T08:59:32.331726+00:00"
delays:
  - date: "2024-03-27T09:30:00"
    minutes: 5
    justified: false
    justification: ""
    reasons: ""
friendly_name: pronote_XXX_delays
1 « J'aime »

Bonjour pour la réponse.
Malheureusement je suis bloqué.

Rien ne s’affiche sur le code ci-dessous, est ce que c’est le week-end et demain férié que rien ne s’affiche ?

type: custom:pronote-timetable-card
entity: sensor.pronote_XXXX_YYYY_timetable_next_day
display_header: true
display_lunch_break: true
display_classroom: true
display_teacher: true
display_day_hours: true
dim_ended_lessons: true
max_days: null
current_week_only: false

Utilise l’entité : sensor.pronote_NOM_PRENOM_timetable_period

1 « J'aime »

Cela fonctionne parfaitement, je n’avais pas vu timetable_period.
Merci beaucoup pour ton aide. :pray:

1 « J'aime »

@Sigalou j’ai ça pour les retards si jamais ça peut aider.

updated_at: 2024-05-20T17:40:01.117099+00:00
delays: 
- date: '2024-04-04T15:00:00'
  minutes: 5
  justified: false
  justification: ''
  reasons: ''

friendly_name: Retards
1 « J'aime »

Bonjour @Sigalou
Est-ce que la carte « cantine » est envisagée ? :slight_smile:
Merci

Hello, je suis preneur aussi :slight_smile: (et si je peux aider au dev ou aux tests, pas de soucis)

Hello @Sigalou
Pour la carte « évaluation », je sais pas si c’est un bug ou un paramétrage différent dans pronote ou si c’est fait exprès, mais je n’ai la description des compétences.
Dans pronote j’ai ceci :
image

alors que dans la carte j’ai ceci :
image

Mon entité est comme ceci :

updated_at: 2024-05-21T11:46:37.955678+00:00
evaluations: 
- name: Travail en salle informatique, localisation de l'information génétique
  domain: null
  date: '2024-05-21'
  subject: SCIENCES VIE & TERRE
  description: ''
  coefficient: 1
  paliers:
    - Cycle 4
  teacher: M. XXXXX
  acquisitions:
    - order: 1
      name: >-
        Utiliser des outils numériques pour analyser des données ou une
        production (orale, artistique, motrice, technologique, etc.).
      abbreviation: '2'
      level: Maîtrise fragile
      domain: Mobiliser des outils numériques pour apprendre, échanger, communiquer
      coefficient: 1
      pillar: Les méthodes et outils pour apprendre
      pillar_prefix: D2
    - order: 2
      name: >-
        Communiquer sur ses démarches, ses résultats et ses choix, en
        argumentant.
      abbreviation: '3'
      level: Maîtrise satisfaisante
      domain: Mener une démarche scientifique, résoudre un problème
      coefficient: 1
      pillar: Les systèmes naturels et les systèmes techniques
      pillar_prefix: D4

Ca correspond à evaluations.acquisitions.name

C’est possible de l’intégrer dans le tableau et de l’aligner avec la couleur qui correspond ? (j’ai l’impression que c’est traité via getAcquisitionRow mais que ça ne marche pas)

(j’ai tenté de le faire mais sans succès pour l’instant)

tu peux reformuler ? je n’ai pas compris ce que tu voudrais ?! :upside_down_face:

Dans mon exemple « pronote », il y a les 2 lignes « Utiliser des outils numériques… » et « Communiquer sur ses démarches… » qui n’apparaissent pas dans ta carte. Est-ce possible de les faire apparaitre ?

Est-ce plus clair ? :thinking:

si les données sont dans l’entité, bien sur oui possible. Faut pas trop charger la carte par contre mais cela peut etre mise en option à false par défaut. je regarde…

1 « J'aime »

Dans mon exemple c’est la partie « name » dans acquistions

Bonjour, et merci encore pour cette intégration et pour les cartes

Vous auriez un exemple pour les notifications des absences sur même style que pour les notes ?

Pour les notes j’utilise ça (vu un peu plus haut)

service: notify.telegram
metadata: {}
data:
  title: Nouvelle Note pour {{ trigger.event.data.child_nickname }}
  message: >-
    {{  trigger.event.data.data.grade_out_of }} en {{
    trigger.event.data.data.subject }} :  {{ trigger.event.data.data.comment }}
    le {{ trigger.event.data.data.date.strftime('%d/%m/%Y') }}{{ '\n' -}}
    ~ {{trigger.event.data.data.class_average }} ↓ {{trigger.event.data.data.min}} ↑ {{trigger.event.data.data.max }}

J’ai ça dans les données du capteur, si ça peut aider :wink:

updated_at: "2024-05-24T10:26:28.298916+00:00"
absences:
  - from: "2024-05-27T14:30:00"
    to: "2024-05-27T16:30:00"
    justified: true
    hours: 0h00
    days: 0
    reason: Représentation théâtrale
  - from: "2024-05-24T13:30:00"
    to: "2024-05-24T16:30:00"
    justified: true
    hours: 2h00
    days: 0
    reason: CHORALE
  - from: "2024-05-23T08:00:00"
    to: "2024-05-23T13:30:00"
    justified: true
    hours: 4h00
    days: 2

Merci

Je ne sais pas si l’integration trigge un event pour les nouvelles absences comme c’est le cas pour les notes.

Si c’est le cas c’est faisable, avec la même syntaxe, il faudra juste récupérer la structure de l’event pour mettre les bons attributs, du style:

service: notify.telegram
metadata: {}
data:
  title: Nouvelle Absence pour {{ trigger.event.data.child_nickname }}
  message: >-
    De {{  trigger.event.data.data.from }} à{{
    trigger.event.data.data.to }} :  Absent {{ trigger.event.data.data.hours }} h

Sinon il faut faire une automatisation qui cherche les modifications du sensor absences, et c’est probablement un peu plus complexe…

Salut merci pour la réponse, oui oui l’intégration trigge bien car actuellement je reçois à minuit ( d’ailleurs je ne sais pas pourquoi à minuit, comme les note), les absences s’il y en a eu mais bien sûr le contenu est vide car je n’ai pas encore mis les bonnes syntaxe, je vais tester ton exemple merci

Petit retour suite à une première absence reçu à l’instant

Avec ce code (merci @BBE ), je reçois bien l’absence :

service: notify.telegram
metadata: {}
data:
  title: Nouvelle Absence 
  message: >-
    Absent {{ trigger.event.data.data.hours }} , de {{  trigger.event.data.data.from }} à {{ trigger.event.data.data.to }}  

Mais sous cette forme :

Nouvelle absence
Absent 1h00, de 2024-05-27 13:30:00 à 2024-05-27 14:30:00

J’aimerais bien le formater comme cela :

Absent 1h00, le 27/05/2024 (de 13:30 à 14:30)

Une idée ?

Merci

J’ai bien tenté de jouer avec les outils de dev et de déclenché un évènement manuellement pour tester la mise en forme, mais pas moyen de déclencher un évènement manuellement, ce serait trop facile…

Bonjour tu pourrais partager ton code yaml complet pour ton automatisation des nouvelles notes. J’essaie de mon côté mais ça me donne une erreur. Merci.

alias: Pronote notif nouvelle absence
description: ""
trigger:
  - platform: event
    event_type: pronote_event
    event_data:
      type: new_absence
condition: []
action:
  - service: notify.mobile_app_iphone_aurel
    data:
      message: >-
        {{ trigger.event.data.child_nickname }} est en absence {% if
        trigger.event.data.data.justified == False %}injustifiée{% else %}
        justifiée{% endif %} de {{
        trigger.event.data.data.from.strftime('%H:%M') }} à {{
        trigger.event.data.data.to.strftime('%H:%M') }}{{"\n"}}{{
        trigger.event.data.data.reasons }}
      title: Pronote {{ trigger.event.data.child_nickname }} absence
mode: single
1 « J'aime »

Merci pour ta réponse, c’est la partie trigger que je ne comprends pas. Chez moi l’intégration pronote ne fourni pas d’event juste des sensors. C’est quelque chose que tu as créé manuellement. Désolé si ma question est bête je débute juste sur home assistant.