Je bossais justement hier soir sur une historisation des moyennes pour pouvoir sortir des courbes quand j’ai vu les données disparaitre suite au changement de trimestre.
J’ai jeté un oeil à l’intégration du coup et ai essayé de bidouiller pour recevoir les ‹ periods › (au moins dans un premier temps pour ensuite appeler periods[xxx].averages mais je n’ai pas réussi à partir des bouts de code que j’ai identifiés.
@delphiki, pronotepy normalement met à disposition tout ça. Tu penses que tu pourrais l’ajouter à l’intégration ? les moyennes par période ?
De mon côté je peux vous partager l’automatisation pour historiser les moyennes que j’ai préparée et qui fonctionne à priori même s’il doit y avoir moyen de mieux faire…
alias: Moyennes PRENOM
description: ""
trigger:
- platform: state
entity_id:
- sensor.pronote_NOM_PRENOM_averages
condition: []
action:
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'FRANCAIS' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_francais_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'HISTOIRE-GEOGRAPHIE' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_histoire_geo_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'PHYSIQUE-CHIMIE' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_physique_chimie_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'MATHEMATIQUES' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_mathematiques_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'ESPAGNOL LV2' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_espagnol_lv2_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'ANGLAIS LV1' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_anglais_lv1_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'ED.PHYSIQUE & SPORT.' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_ed_physique_sport_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'TECHNOLOGIE' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_technologie_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'ARTS PLASTIQUES' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_arts_plastiques_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'SCIENCES VIE & TERRE' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_sciences_vie_terre_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'EDUCATION MUSICALE' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_education_musicale_PRENOM
- service: input_number.set_value
data:
value: >-
{% set ns = namespace(moyenne=0) %} {% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%}
{% for i in range(0, items | count, 1) if items[i].subject == 'LCA LATIN' %}
{% set ns.moyenne = items[i].average | replace (',','.')|float(0) %}
{% endfor %}
{{ ns.moyenne }}
target:
entity_id: input_number.moyenne_lca_latin_PRENOM
enabled: true
- service: input_number.set_value
data:
value: >-
{% set items =
state_attr('sensor.pronote_NOM_PRENOM_averages','averages')%} {%
set ns = namespace(nombre=0, moyenne_generale=0) %}
{% for i in range(0, items | count, 1) %}
{% set ns.moyenne_generale = items[i].average | replace (',','.') | float(0) + ns.moyenne_generale %}
{% set ns.nombre = ns.nombre + 1 %}
{% endfor %}
{% set ns.moyenne_generale = ns.moyenne_generale / ns.nombre %} {{
ns.moyenne_generale }}
target:
entity_id: input_number.moyenne_generale_PRENOM
mode: single
Le plus fastidieux est de créer les input_number correspondant auparavant.
Ensuite on peut utiliser influx/grafana pour les graphs.
Voilà