[Article] Pronote pour Home Assistant : cours, devoirs, notes, etc

Impossible de me connecter via URL par contre…
Erreur d’authentification
https://0352008t.index-education.net/pronote/”
Compte parent avec mon login mdp.
Je sélectionne l’académie de Rennes, le PIN utilisé pour générer le QRCode.

Pour ma part les déconnexions ne sont pas dûes à un ban d’IP. Je m’explique : si je vois rapidement que l’intégration ne fonctionne plus, je supprime le compte et le remet direct avec un nouveau QRCode. Là ça marche tout de suite.
Si je ne le vois pas immédiatement, alors j’ai un message comme quoi mon IP est bannie et dans ce cas là je suis obligé d’attendre quelques heures avant de remettre le compte via QRCode.

Depuis 2 jours, tout est ok alors que depuis mon dernier message où je disais que tout allais bien… bah… j’avais 1 compte sur les 2 (collège via QRCode) qui se déconnectait tous les jours…

Ya une semaine j’étais aussi deco, j’ai viré le compte et je les refais et tout fonctionne pour le moment

A vérifier sur le long terme, mais en faisant comme ça, ça m’a désactivé les intégrations avant les vacances…

Vu que c’était les vacances, je n’avait pas relancé le bazar, et j’ai donc tardé un peu…

Je m’apprêtais à tout remettre, en supprimant les comptes, puis tout recréer avec les QR codes, mais c’est reparti tout seul quand j’ai remis l’intégration sur « on » !!

Peut être que si on arrête suffisamment tôt le phénomène, on peut repartir propre quelque temps plus tard… il y a peut être même moyen d’automatiser la reconnexion…

Quelqu’un veut tester ?

En m’appuyant sur ton automatisation, j’en ai fait une qui stop puis relance l’intégration au bout de 2h de stop. (a voir si pas assez).

Yaml : (modifier 'xxxx', 'yyyy' et 'zzzz')
alias: "PRONOTE :: GESTION DE L'INTÉGRATION"
description: >-
  Si une entité Pronote (timetable today) devient indisponible ou inconnue 45
  min.

  Alors l'intégration correspondante est désactivée
  préventivement, et envoi notifications. 

  Après 2h de désactivation, l'intégration est relancée
triggers:
  - trigger: state
    entity_id:
      - sensor.pronote_xxxx_yyyy_today_s_timetable
    to:
      - unknown
      - unavailable
    id: yyyy
    for:
      hours: 0
      minutes: 45
      seconds: 0
  - trigger: state
    entity_id:
      - sensor.pronote_xxxx_zzzz_today_s_timetable
    to:
      - unknown
      - unavailable
    for:
      hours: 0
      minutes: 45
      seconds: 0
    id: zzzz
  - trigger: template
    value_template: >-
      {% set button_time =
      states.input_button.gestionpronoteyyyy.last_changed %}

      {% set now = now() %}

      {% set diff = (now - button_time).total_seconds() %}

      {{ diff > 7200 }}
    id: Relanceyyyy
  - trigger: template
    value_template: >-
      {% set button_time =
      states.input_button.gestionpronotezzzz.last_changed %}

      {% set now = now() %}

      {% set diff = (now - button_time).total_seconds() %}

      {{ diff > 7200 }}
    id: Relancezzzz
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - yyyy
        sequence:
          - action: homeassistant.disable_config_entry
            metadata: {}
            data:
              config_entry_id: 01KERP3TX134EWW1XBR2YFR4K6
          - action: input_button.press
            metadata: {}
            target:
              entity_id: input_button.gestionpronoteyyyy
            data: {}
  - choose:
      - conditions:
          - condition: trigger
            id:
              - zzzz
        sequence:
          - action: homeassistant.disable_config_entry
            metadata: {}
            data:
              config_entry_id: 01KED9S31Q5B5DDWE81QC1SM8M
          - action: input_button.press
            metadata: {}
            target:
              entity_id: input_button.gestionpronoteyyyy
            data: {}
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Relanceyyyy
        sequence:
          - action: homeassistant.enable_config_entry
            metadata: {}
            data:
              config_entry_id: 01KERP3TX134EWW1XBR2YFR4K6
          - action: persistent_notification.create
            metadata: {}
            data:
              title: PRONOTE
              message: >+
                Relance de l'intégration Pronote de {{
                trigger.id.replace("Relance", "") }}

      - conditions:
          - condition: trigger
            id:
              - Relancezzzz
        sequence:
          - action: homeassistant.enable_config_entry
            metadata: {}
            data:
              config_entry_id: 01KED9S31Q5B5DDWE81QC1SM8M
          - action: persistent_notification.create
            metadata: {}
            data:
              title: PRONOTE
              message: >+
                Relance de l'intégration Pronote de {{
                trigger.id.replace("Relance", "") }}

    default:
      - action: persistent_notification.create
        metadata: {}
        data:
          title: PRONOTE
          message: >-
            Détection d'une anomalie avec l'intégration Pronote de {{ trigger.id
            }} -> Désactivation
mode: single

Je viens de le faire, donc wait and see…

1 « J'aime »

C’est marrant ta manière de faire avec un bouton… moi j’aurai lancé un timer…

Au final ça revient presque au même…

L’inconvénient du timer c’est que si HA reboot tu le perds. Avec le bouton tu peux avoir un reboot entre les 2

Non non non… dans le timer tu as une case à cocher pour que l’event de fin de timer soit envoyé lors du reboot s’il s’est terminé durant le reboot ou que le timer reprenne comme si de rien n’était si le reboot est fini avant l’heure de fin du timer.

C’est l’un des gros intérêts du timer justement.

Un autre étant que contrairement à ton appui bouton qui est fugace, tu peux très simplement tester l’état du timer (comme un booléen « timer en cours » en quelque sorte) (mais tu peux faire la même chose avec un template comme dans ton trigger bien sur)

Au démarrage, tu peux lui donner une durée différente de la durée par défaut. Tu peux donc avoir des réactions différentes suivant des conditions particulières…

Le dernier étant que tu peux relancer ton timer autant que tu veux, même avant la fin (inutile ici, mais parfait pour des lampes avec detection par exemple…)

En effet… je sais pas pourquoi :d

Je viens de modifier par un timer. Merci

Wait and see que ca plante… :d

Bonjour.
J’ai une petite automatisation qui m’envoi un SMS lors de nouvelles notes.
Problème je ne sais pas pour quel enfant c’est ?
comment intégrer le trigger Enfant dans la notif ?

alias: Pronote notif nouvelle note
description: ""
triggers:
  - event_type: pronote_event
    event_data:
      type: new_grade
    trigger: event
conditions: []
actions:
  - action: notify.send_message
    metadata: {}
    target:
      entity_id: notify.sms_free_antony
    data:
      message: >-
        "Nouvelle-notes"

        {{  trigger.event.data.data.grade_out_of }} en
        {{trigger.event.data.data.subject }} :  {{
        trigger.event.data.data.comment }} le {{ (trigger.event.data.data.date |
        as_datetime | as_local).strftime("%d/%m") }} {{ '\n' -}} ~
        {{trigger.event.data.data.class_average }} ↓
        {{trigger.event.data.data.min}} ↑ {{trigger.event.data.data.max }}
  - action: notify.send_message
    metadata: {}
    data:
      message: >-
        "Nouvelle-notes"

        {{  trigger.event.data.data.grade_out_of }} en
        {{trigger.event.data.data.subject }} :  {{
        trigger.event.data.data.comment }} le {{ (trigger.event.data.data.date |
        as_datetime | as_local).strftime("%d/%m") }} {{ '\n' -}} ~
        {{trigger.event.data.data.class_average }} ↓
        {{trigger.event.data.data.min}} ↑ {{trigger.event.data.data.max }}
    target:
      entity_id: notify.sms_free_pasc
    enabled: true
mode: single

regarde là ; [Article] Intégration Pronote : cours, devoirs, notes, etc (archive) - #1638 par BBE

Nouvelle note pour {{ trigger.event.data.child_name }}

1 « J'aime »

Ca faisait longtemps que je n’avais pas cherché a utiliser l’integration HA de pronote et j’avais aussi l’erreur nécessitant de refaire la manip de reconnexion. En revanche depuis peu je n’arrive que rarement a me connecter via tel a pronote sur l’ip de la maison (idem pour mon fils) . J’ai mis ca sur le dos de AdguardHome qui filtre toutes les requêtes et j’ai rajouté des règles pour laisser passer ce domaine. Mais la en refaisant la manip pour réintégrer lpronote a HA et essayant de me connecter via navigateur internet à l’adresse educonnect (géré par les ENT ac Orléans tours) ca me met qui l’ip est banni temporairement. Cela pourrait avoir un lien avec l’échec de connexion a l’appli pronote a la maison.

C’est réaliste ou uniquement fantasque de ma part ?

Je n’ai pas réessayé d’e remettre l’integration dans pronote pour le moment.