Pronote dans HA - les notes, devoirs, absences et emploi du temps des enfants

je te partage un extrait de mon sensors.yaml

- platform: rest
  name: pronote_absence_mathis
  scan_interval: 10
  json_attributes:
    - absence
  value_template: >
        {% if value_json.absence.0 is defined %}
            {{ value_json.absence.0.date_debut }} - {{ value_json.absence.0.nb_jours}}j - {{value_json.absence.0.nb_heures}}
        {% else %}
            None
        {% endif %}
  resource: https://monsite.zapto.org/local/pronote_mathis.json


dans configuration.yaml voila ce qui me reste :

binary_sensor:
  - platform: template
    sensors:
      pronote_edt_mathis_aujourdhui_cours_0_annulation:
        friendly_name: "Edt mathis Cours 0 annulation"
        value_template: >-
          {{ state_attr('sensor.pronote_edt_mathis_aujourdhui', 'edt_aujourdhui')[0]['annulation'] }}

en espérant que ca puisse te donner le bon format

par contre j’ai un soucis récurant : python3 se désinstalle régulièrement , avec cron , pronotepy

Merci infiniment pour ton aide.
Le sensors.yaml est effectivement dans le bon format, j’ai la même chose.
J’ai remplacé l’adresse IP locale par l’adresse web https://domo-xxxxx.org:8123/local/pronote_baptiste.json.
Rechargé les config yaml et maintenant ils sont bien crées !

@hervefox merci pour t’on aide, je n’avais pas vue dans de config.ini dans python-scripts.

Je n’arrive pas à faire fonctionner la récupération du json toutes les x minutes.
Je suis sous HA OS, le crontab ne fonctionne donc pas avec cette config.
J’ai bien suivi les recommandations de @defre et @HollyFredD qui expliquent bien la marche à suivre.
Lorsque je lance manuellement la commande python3 /config/python_scripts/pronote.py via SSH, ça fonctionne très bien.
Par contre avec l’automatisation, rien ne se passe et le log reste vide.
Pas d’erreur mais pas de remontée de json.
Comme si le script contenu dans le shell_command ne se lançait tout simplement pas.
J’ai essayé de lui rajouter sudo comme ça peut-être le cas avec du debian par ex, mais rien de plus.

moi ça marche temporairement …
j’installe cron via ssh ( apt install cron ) , puis faut faire un crontab -e
et ajouter cette ligne pour un relevé toutes les 10 mins
*/10 * * * * python3 /config/python_scripts/pronote.py [enfant]

Le cron n’est pas compatible avec HA OS malheureusement mais merci de ton aide une nouvelle fois :wink:
J’ai trouvé une solution parallèle en utilisant le Command Line Sensor à la place du Shell Command qui ne fonctionnait pas chez moi.
Tout d’abord j’ai du rajouter un package qui était manquant dans ma config :
cp -R /usr/lib/python3.10/site-packages/autoslot.py /config/pronote/local-packages

Ensuite pour la création du sensor, je l’ai simplement rajouté à sensors.yaml:

  - platform: command_line
    name: maj_pronote
    scan_interval: 600 #pour un scan toutes les 10 min
    command: "python3 /config/pronote/pronote.py > /config/pronote/pronote.log 2>&1"

Plus besoin de créer une automatisation avec cette méthode.

Bonne idée… on peut même utiliser ‹ schedule › pour le déclencher
Tout les 10 min me semble vraiment trops fréq. et j’attend que la service pronote va limiter le nombre des appèls…personellement, je le ferais

T’as raison, je vais réduire le nombre de call

de mon côté, j’ai fais avec node red

Code
[{"id":"58f6d138c675a4e4","type":"tab","label":"Pronote","disabled":false,"info":"","env":[]},{"id":"da15fc21d171642a","type":"ha-time","z":"58f6d138c675a4e4","name":"","server":"e97d5fbb.36742","version":2,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityId":"sensor.time","property":"","offset":"0","offsetType":"num","offsetUnits":"seconds","randomOffset":false,"repeatDaily":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"sunday":true,"monday":true,"tuesday":true,"wednesday":true,"thursday":true,"friday":true,"saturday":true,"debugenabled":false,"x":80,"y":540,"wires":[["d89c3d9346f047fd","81c7e13be6b93c55","39d980390d6f2a18","ba772099a1716d8f","3a3058e839e5c6b0","83a569452747487d","1dfd46ad5c58a6a5","26819d064b50317b","163e21a8eb1691c2","3973d369b8c21bcc","b5d04135cb1790f7","41bde218126984f4","bdbebd08d0dd3e63","4b78bcbc269640ef","44a323b79807915b","b54b37f76adc99c9","4125c3b1246a2dcd"]]},{"id":"81c7e13be6b93c55","type":"api-current-state","z":"58f6d138c675a4e4","name":"06:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"06:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":140,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"39d980390d6f2a18","type":"api-current-state","z":"58f6d138c675a4e4","name":"06:30","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"06:30","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":200,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"ba772099a1716d8f","type":"api-current-state","z":"58f6d138c675a4e4","name":"07:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"07:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":260,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"3a3058e839e5c6b0","type":"api-current-state","z":"58f6d138c675a4e4","name":"07:30","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"07:30","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":320,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"83a569452747487d","type":"api-current-state","z":"58f6d138c675a4e4","name":"08:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"08:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":380,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"1dfd46ad5c58a6a5","type":"api-current-state","z":"58f6d138c675a4e4","name":"12:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"12:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":440,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"26819d064b50317b","type":"api-current-state","z":"58f6d138c675a4e4","name":"16:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"16:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":500,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"163e21a8eb1691c2","type":"api-current-state","z":"58f6d138c675a4e4","name":"16:30","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"16:30","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":560,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"3973d369b8c21bcc","type":"api-current-state","z":"58f6d138c675a4e4","name":"17:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"17:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":620,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"b5d04135cb1790f7","type":"api-current-state","z":"58f6d138c675a4e4","name":"17:30","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"17:30","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":680,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"41bde218126984f4","type":"api-current-state","z":"58f6d138c675a4e4","name":"18:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"18:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":740,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"bdbebd08d0dd3e63","type":"api-current-state","z":"58f6d138c675a4e4","name":"19:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"19:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":800,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"4b78bcbc269640ef","type":"api-current-state","z":"58f6d138c675a4e4","name":"20:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"20:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":860,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"44a323b79807915b","type":"api-current-state","z":"58f6d138c675a4e4","name":"21:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"21:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":920,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"b54b37f76adc99c9","type":"api-current-state","z":"58f6d138c675a4e4","name":"22:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"22:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":980,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"d89c3d9346f047fd","type":"api-current-state","z":"58f6d138c675a4e4","name":"05:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"05:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":80,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"40d1cfacac3f8d0b","type":"ha-switch","z":"58f6d138c675a4e4","name":"Bouton Pronote Auto","version":0,"inputs":1,"outputs":2,"entityConfig":"0435c6c8fc48b579","enableInput":true,"outputOnStateChange":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"off","valueType":"str"}],"x":470,"y":540,"wires":[["71a5f6f2178f5636"],[]]},{"id":"71a5f6f2178f5636","type":"api-call-service","z":"58f6d138c675a4e4","name":"","server":"e97d5fbb.36742","version":5,"debugenabled":false,"domain":"script","service":"pronotepython","areaId":[],"deviceId":[],"entityId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"PronotePython","valueType":"str"},{"property":"date","propertyType":"msg","value":"","valueType":"date"}],"queue":"none","x":700,"y":500,"wires":[["75937bd6b64207d0","2567b61807c270c1"]]},{"id":"2567b61807c270c1","type":"function","z":"58f6d138c675a4e4","name":"","func":"// Create a Date object from the payload\nfunction twoDig(val) { return (('0' + val).slice(-2)); }\nvar d = new Date(msg.date);\nvar date = twoDig(d.getDate()) + '/' + (('' + d.getMonth()).slice(-2) + 1) + '/' + twoDig(d.getYear());\nvar hours = twoDig(d.getHours()) + \":\" + twoDig(d.getMinutes());\nvar fullDate = date + ' à ' + hours;\n// Change the payload to be a formatted Date string\nmsg.date = fullDate;\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":900,"y":460,"wires":[["9ccf3fdd2cd70b95"]]},{"id":"9ccf3fdd2cd70b95","type":"ha-sensor","z":"58f6d138c675a4e4","name":"Pronote_update","entityConfig":"87da085d32ba7541","version":0,"state":"date","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1080,"y":460,"wires":[["4088e1cf8ead120b"]]},{"id":"4088e1cf8ead120b","type":"debug","z":"58f6d138c675a4e4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"date","targetType":"msg","statusVal":"payload","statusType":"auto","x":1250,"y":460,"wires":[]},{"id":"75937bd6b64207d0","type":"debug","z":"58f6d138c675a4e4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":910,"y":560,"wires":[]},{"id":"0a5309f48874db8b","type":"server-state-changed","z":"58f6d138c675a4e4","name":"","server":"e97d5fbb.36742","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"switch.pronote_auto","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"off","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":540,"y":360,"wires":[["5a61ae2073dfba88"],[]]},{"id":"5a61ae2073dfba88","type":"ha-wait-until","z":"58f6d138c675a4e4","name":"Wait Pronote_auto on","server":"e97d5fbb.36742","version":2,"outputs":2,"entityId":"switch.pronote_auto","entityIdFilterType":"exact","property":"state","comparator":"is","value":"on","valueType":"str","timeout":"1","timeoutType":"num","timeoutUnits":"minutes","checkCurrentState":true,"blockInputOverrides":true,"outputProperties":[],"x":500,"y":440,"wires":[["71a5f6f2178f5636"],[]]},{"id":"83568cfdbf83f554","type":"function","z":"58f6d138c675a4e4","name":"","func":"// Create a Date object from the payload\nvar d = new Date(msg.date);\nvar date = d.getDate() + '/' + (d.getMonth() + 1) + '/' + d.getFullYear();\nvar hours = d.getHours() + \":\" + d.getMinutes() + \":\" + d.getSeconds();\nvar fullDate = date + ' à ' + hours;\n// Change the payload to be a formatted Date string\nmsg.date = fullDate;\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":900,"y":780,"wires":[[]]},{"id":"4125c3b1246a2dcd","type":"api-current-state","z":"58f6d138c675a4e4","name":"00:00","server":"e97d5fbb.36742","version":3,"outputs":2,"halt_if":"00:00","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":250,"y":20,"wires":[["40d1cfacac3f8d0b"],[]]},{"id":"e97d5fbb.36742","type":"server","name":"Home Assistant","addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":false,"heartbeat":false,"heartbeatInterval":"","statusSeparator":"","enableGlobalContextStore":false},{"id":"0435c6c8fc48b579","type":"ha-entity-config","server":"e97d5fbb.36742","deviceConfig":"","name":"switch config for Bouton Pronote Auto","version":6,"entityType":"switch","haConfig":[{"property":"name","value":"Pronote Auto"},{"property":"device_class","value":""},{"property":"icon","value":"mdi:account-school"},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"resend":true},{"id":"87da085d32ba7541","type":"ha-entity-config","server":"e97d5fbb.36742","deviceConfig":"","name":"sensor config for Pronote_update","version":6,"entityType":"sensor","haConfig":[{"property":"name","value":"Pronote Update"},{"property":"device_class","value":""},{"property":"icon","value":"mdi:update"},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"resend":true}]

pour le package, tu la lance ou ?

salut je comprend rien a t’on fow

chaque minutes, le sensor.time se déclenche .
de la si il est une des heures que j’ai paramétré et que le bouton Pronote Auto est actif, il lance la script pronote qui met a jour le json pour mon fils

les 2 blocs de dessus c’est pour quand je souhaite faire une mise à jour de suite.
je fais off et on sur le bouton pronote auto et ça met à jour de suite.

Peut me faire voire comment tu lance le script ?

Pour lancer la copie du package ?
Directement à partir SSH & Web Terminal

ca fonctionne pas chez moi

python3: can’t open file ‹ /config/pronote/pronote.py ›: [Errno 2] No such file or directory
je me retrouve avec ca dans le log de pronote.log
et j’ai bien fait la manipe
cp -R /usr/lib/python3.10/site-packages/autoslot.py /config/pronote/local-packages

Normal le chemin /config/pronote/pronote.py c’est le chemin où tu as installé le script pronote.py C’est arbitraire, chez toi tu l’as peut-être installé dans python-scripts comme indiqué sur le github ?

au temps pour moi , la commande etait pas bonne.
j’ai ca maintenant dans les log

  File "/config/python_scripts/pronote.py", line 3, in <module>
    import pronotepy
ModuleNotFoundError: No module named 'pronotepy'

Il faut que tu importes localement le package pour ce module
cp -R /usr/lib/python3.9/site-packages/pronotepy /config/python_scripts/local-packages/
OU
cp -R /usr/lib/python3.10/site-packages/pronotepy /config/python_scripts/local-packages/