L’ascenseur, c’est génial
mais comment faire pour garder l’entête toujours afficher ?
Je voudrais garder « évaluation » toujours afficher
actuel
photo ascenseur en haut
photo ascenseur plus bas
L’ascenseur, c’est génial
mais comment faire pour garder l’entête toujours afficher ?
Je voudrais garder « évaluation » toujours afficher
actuel
photo ascenseur en haut
photo ascenseur plus bas
Utilise le ‹ titre › de la carte
*&^@&^#, j’avais collé le mauvais code, corrigé … essaie de nouveau stp
heuuu
Il faut jouer/essayer, je ne peux pas t’aider avec ces détails…
A part de ça, je ne vais plus inverstir du temps dans ‹ punishments › tant que mon soucis n’est pas résolu par pronotepy
ok,
je viens de mettre le titre
mais je souhaite remettre le même style dans ce titre et je n’y arrive pas
sais tu comment je dois faire ?
j’essais ça mais ça veut pas
header {
background-color:rgb(100, 100, 100);
padding: 12px 12px;
color:white;
font-weight:normal;
font-size:1.2em;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
je me réponds à moi même,
j’ai trouvé
au début de style, j’ai rajouté:
$: |
.card-header {
background-color:rgb(100, 100, 100);
padding: 0px 0px 0px 12px !important;
color: white !important;
font-weight: normal;
font-size: 1.5em !important;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
height: 100%;
}
et ça me donne:
Oui, j’ai vu pareil mais je ne sais pas en ce moment (pas spécialiste esthétique )
Je vais voir si je trouve qqc (prio reduit)
moi, pour l’instant, ça me va bien.
maintenant,
je vais essayer de m’amuser avec le Punishments
y a t’il moyen d’avoir une liste de ce que l’on peut extraire de pronote ?
bonsoir,
vous pouvez m’aider à afficher dans ma vue les notes sur les 3 trimestres / ou toutes ?
seul le 3eme trimestre est extrait dans ma configuration
Solution trouvé avec le fix par bainf de pronotepy.
Donc il faut faire une maj de pronotepy vers master.zip en attendant un release (voir son github)
punishments = client.current_period.punishments
punishments = sorted(punishments, key=lambda punishment: punishment.given, reverse=True)
jsondata['punishments'] = []
#Transformation des punishments en Json
for punishment in punishments:
jsondata['punishments'].append({
'id': punishment.id,
'date': punishment.given.strftime("%Y/%m/%d"),
'cours': punishment.during_lesson,
'raisons': punishment.reasons,
'circonstances': punishment.circumstances,
'nature': punishment.nature,
'duree': str(punishment.duration),
'devoirs': punishment.homework,
'exclusion': punishment.exclusion,
})
print(jsondata)
bien joué , merci du partage
on trouve ou config.get???
ton fichier config.ini est il bien configuré ?
as tu laissé le compte demo pour les premiers essais ?
Non car je ne l’ai pas trouvé justement
Bonjour,
Mes sensors sont configurés dans sensors.yaml, et je n’arrive pas à y intégrer les sensors liés à la platform rest. Ils ne se créent pas malgré le fait qu’ils soient bien ajoutés au fichier :
- platform: template
sensors:
pronote_edt_baptiste_aujourdhui_cours_0_heure:
friendly_name: "Baptiste / Début des cours"
value_template: >-
{% if state_attr('sensor.pronote_edt_baptiste_aujourdhui', 'edt_aujourdhui')[0] is defined %}
{{state_attr('sensor.pronote_edt_baptiste_aujourdhui', 'edt_aujourdhui')[0]['heure']}}
{% else %}
Pas cours
{% endif %}
pronote_edt_baptiste_demain_cours_0_heure:
friendly_name: "Baptiste / Début des cours demain"
value_template: >-
{% if state_attr('sensor.pronote_edt_baptiste_demain', 'edt_demain')[0] is defined %}
{{state_attr('sensor.pronote_edt_baptiste_demain', 'edt_demain')[0]['heure']}}
{% else %}
Pas cours
{% endif %}
pronote_edt_baptiste_prochainjour_cours_0_heure:
friendly_name: "Baptiste / Début des cours (J+1)"
value_template: >-
{% if state_attr('sensor.pronote_edt_baptiste_prochainjour', 'edt_prochainjour')[0] is defined %}
{{state_attr('sensor.pronote_edt_baptiste_prochainjour', 'edt_prochainjour')[0]['heure']}}
{% else %}
Pas cours
{% endif %}
- platform: rest
name: pronote_edt_baptiste_aujourdhui
resource: https://192.168.0.49:8123/local/pronote_baptiste.json
scan_interval: 10
json_attributes:
- edt_aujourdhui
value_template: >
{% if value_json.edt_aujourdhui.0 is defined %}
{{ value_json.edt_aujourdhui.0.date_heure }}
{% else %}
Pas cours
{% endif %}
- platform: rest
name: pronote_edt_baptiste_aujourdhui_debut
scan_interval: 10
json_attributes:
- edt_aujourdhui_debut
value_template: >
{% if value_json.edt_aujourdhui_debut.0 is defined %}
{{ value_json.edt_aujourdhui_debut }}
{% else %}
Pas cours
{% endif %}
resource: https://192.168.0.49:8123/local/pronote_baptiste.json
- platform: rest
name: pronote_edt_baptiste_demain
scan_interval: 10
json_attributes:
- edt_demain
value_template: >
{% if value_json.edt_demain.0 is defined %}
{{ value_json.edt_demain.0.date_heure }}
{% else %}
Pas cours demain
{% endif %}
resource: https://192.168.0.49:8123/local/pronote_baptiste.json
- platform: rest
name: pronote_edt_baptiste_demain_debut
scan_interval: 10
json_attributes:
- edt_demain_debut
value_template: >
{% if value_json.edt_demain_debut.0 is defined %}
{{ value_json.edt_demain_debut }}
{% else %}
Pas cours demain
{% endif %}
resource: https://192.168.0.49:8123/local/pronote_baptiste.json
- platform: rest
name: pronote_edt_baptiste_prochainjour
scan_interval: 10
json_attributes:
- edt_prochainjour
value_template: >
{% if value_json.edt_prochainjour.0 is defined %}
{{ value_json.edt_prochainjour.0.date_heure }}
{% else %}
None
{% endif %}
resource: https://192.168.0.49:8123/local/pronote_baptiste.json
- platform: rest
name: pronote_edt_baptiste_prochainjour_debut
scan_interval: 10
json_attributes:
- edt_prochainjour_debut
value_template: >
{% if value_json.edt_prochainjour_debut.0 is defined %}
{{ value_json.edt_prochainjour_debut }}
{% else %}
None
{% endif %}
resource: https://192.168.0.49:8123/local/pronote_baptiste.json
- platform: rest
name: pronote_note_baptiste
scan_interval: 10
json_attributes:
- note
value_template: >
{% if value_json.note.0 is defined %}
{{ value_json.note.0.cours }} : {{ value_json.note.0.note_sur }}
{% else %}
None
{% endif %}
resource: https://192.168.0.49:8123/local/pronote_baptiste.json
- platform: rest
name: pronote_devoir_baptiste
scan_interval: 10
json_attributes:
- devoir
value_template: >
{% if value_json.devoir.0 is defined %}
{{ value_json.devoir.0.date }} / {{ value_json.devoir.0.title }}
{% else %}
None
{% endif %}
resource: https://192.168.0.49:8123/local/pronote_baptiste.json
- platform: rest
name: pronote_absence_baptiste
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://192.168.0.49:8123/local/pronote_baptiste.json
Pourtant les sesnsors liés à la platform template, eux sont bien crées, je les retrouve bien dans mes entités
Bonjour,
Déjà, félicitations et merci pour le travail et l’aide que vous apportez.
je suis en train de suivre le tuto de @Dathosim malgré que ne respecte pas forcément les pré-requis , mais je suis curieux et ai envie d’apprendre.
j’ai un installer HA version OS dans une machine virtuelle Hyper-V pour me faire la main dessus en attendant de trouver une solution moins énergivore Genre Raspberry PI4 a moins de 12350€ .
donc, j’ai bien importé toute ma domotique existante dans mon HA sans trop de problème, jusqu’au moment ou je suis tombé sur ce topic. Ayant une fille de 14 ans en 4ème et un fils de 10 ans en CM2, j’ai trouvé ça super utile.
Je men suis donc lancé.
1 - installation de la Lib Pronotepy : OK
2- installation du script python : OK
3 - exécution du script : OK
4 - Configuration YAML pour récupérer l’emploi du temps dans un sensor : c’est là que ça coince:
quand je copie le contenu de votre fichier configuration.yaml à la suite du mien, le File Editor me met bien une check verte en haut a droite semblant valider les modifications apportées, MAIS, lors du rechargement de la config, je reçoi l’erreur:
2023-03-25 23:53:16.009 ERROR (MainThread) [homeassistant.components.homeassistant] The system cannot reload because the configuration is not valid: Invalid config for [sensor.template]: invalid slug pronote_edt_Zoé_aujourdhui_cours_0_heure (try pronote_edt_zoe_aujourdhui_cours_0_heure) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ pronote_edt_Zoé_aujourdhui_cours_0_heure ›, OrderedDict([(‹ friendly_name ›, ‹ Zoé / Début des cours ›), (‹ value_template ›, "{% if state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[0] is defined %}\n {{state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[0][‹ heure ›]}}\n{% else %}\n Pas cours\n{% endif %} ")])), (‹ pronote_edt_Zoé_demain_cours_0_heure ›, OrderedDict([(‹ friendly_name ›, ‹ Zoé / Début des cours demain ›), (‹ value_template ›, … (See ?, line ?).
Invalid config for [binary_sensor.template]: invalid slug pronote_edt_Zoé_aujourdhui_cours_0_annulation (try pronote_edt_zoe_aujourdhui_cours_0_annulation) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ pronote_edt_Zoé_aujourdhui_cours_0_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Cours 0 annulation ›), (‹ value_template ›, « {{ state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[0][‹ annulation ›] }} »)])), (‹ pronote_edt_Zoé_aujourdhui_cours_1_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Cours 1 annulation ›), (‹ value_template ›, « {{ state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[1][‹ annulation ›] }} »)])), ('pronote_edt_Zoé_aujourdhui_c… (See ?, line ?).
Invalid config for [binary_sensor.template]: invalid slug pronote_edt_Zoé_prochain_jour_cours_0_annulation (try pronote_edt_zoe_prochain_jour_cours_0_annulation) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ pronote_edt_Zoé_prochain_jour_cours_0_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Prochain Jour Cours 0 annulation ›), (‹ value_template ›, « {{ state_attr(‹ sensor.pronote_edt_Zoé_prochain_jour ›, ‹ edt_prochainjour ›)[0][‹ annulation ›] }} »)])), (‹ pronote_edt_Zoé_prochain_jour_cours_1_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Prochain Jour Cours 1 annulation ›), (‹ value_template ›, "{{ state_attr(‹ sensor.pronote_edt_Zoé_prochain_jour ›, ‹ edt_prochainjour ›)[1]['annulati… (See ?, line ?).
2023-03-25 23:53:16.009 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [139753719983424] Cannot quick reload all YAML configurations because the configuration is not valid: Invalid config for [sensor.template]: invalid slug pronote_edt_Zoé_aujourdhui_cours_0_heure (try pronote_edt_zoe_aujourdhui_cours_0_heure) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ pronote_edt_Zoé_aujourdhui_cours_0_heure ›, OrderedDict([(‹ friendly_name ›, ‹ Zoé / Début des cours ›), (‹ value_template ›, "{% if state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[0] is defined %}\n {{state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[0][‹ heure ›]}}\n{% else %}\n Pas cours\n{% endif %} ")])), (‹ pronote_edt_Zoé_demain_cours_0_heure ›, OrderedDict([(‹ friendly_name ›, ‹ Zoé / Début des cours demain ›), (‹ value_template ›, … (See ?, line ?).
Invalid config for [binary_sensor.template]: invalid slug pronote_edt_Zoé_aujourdhui_cours_0_annulation (try pronote_edt_zoe_aujourdhui_cours_0_annulation) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ pronote_edt_Zoé_aujourdhui_cours_0_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Cours 0 annulation ›), (‹ value_template ›, « {{ state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[0][‹ annulation ›] }} »)])), (‹ pronote_edt_Zoé_aujourdhui_cours_1_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Cours 1 annulation ›), (‹ value_template ›, « {{ state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[1][‹ annulation ›] }} »)])), ('pronote_edt_Zoé_aujourdhui_c… (See ?, line ?).
Invalid config for [binary_sensor.template]: invalid slug pronote_edt_Zoé_prochain_jour_cours_0_annulation (try pronote_edt_zoe_prochain_jour_cours_0_annulation) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ pronote_edt_Zoé_prochain_jour_cours_0_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Prochain Jour Cours 0 annulation ›), (‹ value_template ›, « {{ state_attr(‹ sensor.pronote_edt_Zoé_prochain_jour ›, ‹ edt_prochainjour ›)[0][‹ annulation ›] }} »)])), (‹ pronote_edt_Zoé_prochain_jour_cours_1_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Prochain Jour Cours 1 annulation ›), (‹ value_template ›, "{{ state_attr(‹ sensor.pronote_edt_Zoé_prochain_jour ›, ‹ edt_prochainjour ›)[1]['annulati… (See ?, line ?).
Traceback (most recent call last):
File « /usr/src/homeassistant/homeassistant/components/websocket_api/commands.py », line 199, in handle_call_service
await hass.services.async_call(
File « /usr/src/homeassistant/homeassistant/core.py », line 1808, in async_call
task.result()
File « /usr/src/homeassistant/homeassistant/core.py », line 1845, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File « /usr/src/homeassistant/homeassistant/helpers/service.py », line 762, in admin_handler
await result
File « /usr/src/homeassistant/homeassistant/components/homeassistant/init.py », line 302, in async_handle_reload_all
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: Cannot quick reload all YAML configurations because the configuration is not valid: Invalid config for [sensor.template]: invalid slug pronote_edt_Zoé_aujourdhui_cours_0_heure (try pronote_edt_zoe_aujourdhui_cours_0_heure) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ pronote_edt_Zoé_aujourdhui_cours_0_heure ›, OrderedDict([(‹ friendly_name ›, ‹ Zoé / Début des cours ›), (‹ value_template ›, "{% if state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[0] is defined %}\n {{state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[0][‹ heure ›]}}\n{% else %}\n Pas cours\n{% endif %} ")])), (‹ pronote_edt_Zoé_demain_cours_0_heure ›, OrderedDict([(‹ friendly_name ›, ‹ Zoé / Début des cours demain ›), (‹ value_template ›, … (See ?, line ?).
Invalid config for [binary_sensor.template]: invalid slug pronote_edt_Zoé_aujourdhui_cours_0_annulation (try pronote_edt_zoe_aujourdhui_cours_0_annulation) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ pronote_edt_Zoé_aujourdhui_cours_0_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Cours 0 annulation ›), (‹ value_template ›, « {{ state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[0][‹ annulation ›] }} »)])), (‹ pronote_edt_Zoé_aujourdhui_cours_1_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Cours 1 annulation ›), (‹ value_template ›, « {{ state_attr(‹ sensor.pronote_edt_Zoé_aujourdhui ›, ‹ edt_aujourdhui ›)[1][‹ annulation ›] }} »)])), ('pronote_edt_Zoé_aujourdhui_c… (See ?, line ?).
Invalid config for [binary_sensor.template]: invalid slug pronote_edt_Zoé_prochain_jour_cours_0_annulation (try pronote_edt_zoe_prochain_jour_cours_0_annulation) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ pronote_edt_Zoé_prochain_jour_cours_0_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Prochain Jour Cours 0 annulation ›), (‹ value_template ›, « {{ state_attr(‹ sensor.pronote_edt_Zoé_prochain_jour ›, ‹ edt_prochainjour ›)[0][‹ annulation ›] }} »)])), (‹ pronote_edt_Zoé_prochain_jour_cours_1_annulation ›, OrderedDict([(‹ friendly_name ›, ‹ Edt Zoé Prochain Jour Cours 1 annulation ›), (‹ value_template ›, "{{ state_attr(‹ sensor.pronote_edt_Zoé_prochain_jour ›, ‹ edt_prochainjour ›)[1]['annulati… (See ?, line ?).
Si une âme charitable parmi vous avait une idée et accepterai de la transmettre je lui serait très reconnaissant .
en attendant, merci par avance de ce que pourrez faire et continuez comme ça, c’est vraiment super ce que vous faites.
Cordialement
VD.
@fana13 Essaie sans le :8123 voir si ça corrige ton problème
Sans le :8123 je n’accède plus .json, l’accès via https://192.168.0.49:8123/local/pronote_baptiste.json se fait très bien.
Je pense que mon problème vient de la bonne syntaxe à mettre dans le fichier sensors.yaml
Les templates sont déclarées comme ça
- platform: template
sensors:
Les rest n’ont pas « sensors: » de déclaré et si je le rajoute, ma configuration n’est plus fonctionnelle.