Bien le bonjour,
En cherchant sur le forum une solution pouvant me donner les vacances scolaire correspondant à ma zone, je suis tombé sur les deux liens suivant.
Merci à @Sigalou pour son blog
Cependant, j’essaie de mettre en place l’API 2.1 de data.education.gouv.fr, mais je galère énormément.
Il faut savoir que j’ai diviser le code en deux. Une partie dans template.yaml et une dans sensors.yaml.
Dans mon fichier template.yaml j’ai ceci et ca fonctionne bien.
- binary_sensor:
- name: vacances_scolaires_aujourdhui
unique_id: binary_sensor.vacances_scolaires_aujourdhui
icon: mdi:calendar-today
state: |-
{% set aujourdhui = now().strftime('%Y-%m-%d')%}
{% if aujourdhui < state_attr('sensor.vacances_scolaires', 'start_date') or aujourdhui > state_attr('sensor.vacances_scolaires', 'end_date') %}
false
{% else %}
true
{% endif %}
- binary_sensor:
- name: vacances_scolaires_demain
unique_id: binary_sensor.vacances_scolaires_demain
icon: mdi:calendar-arrow-right
state: |-
{% set demain = (as_timestamp(now()) + (24*3600)) | timestamp_custom('%Y-%m-%d', True) %}
{% if demain < state_attr('sensor.vacances_scolaires', 'start_date') or demain > state_attr('sensor.vacances_scolaires', 'end_date') %}
false
{% else %}
true
{% endif %}
Dans mon fichier sensors.yaml, j’ai ceci :
- scan_interval: "12:00:00"
resource_template: |-
{% set location = 'Grenoble' %}
{% set rows = '1'%}
{% set aujourdhui = now().strftime('%Y-%m-%d')%}
{% set dayOfYear = now().strftime('%j') %}
{% set year = now().strftime('%Y') | int %}
{% set lastYear = year - 1 %}
{% set nextYear = year + 1 %}
{% if dayOfYear > '244' %}
{% set schoolYear = (year | string) + "-" + (nextYear | string) %}
{%- else -%}
{% set schoolYear = (lastYear | string) + "-" + (year | string) %}
{%- endif %}
https://data.education.gouv.fr/api/explore/v2.1/catalog/datasets/fr-en-calendrier-scolaire/records?where=end_date%3E%22{{aujourdhui}}%22&order_by=end_date%20ASC&limit={{rows}}&refine=location%3A{{location}}
sensor:
name: vacances_scolaires
json_attributes_path: "$.results[0]"
json_attributes:
- start_date
- end_date
- description
value_template: |-
{% set aujourdhui = now().strftime('%Y-%m-%d')%}
{% for record in value_json.results -%}
{% if aujourdhui >= record.start_date and aujourdhui <= record.end_date %}
{%- if record.description %}{{record.description}} jusqu'au {{ as_timestamp(record.end_date) | timestamp_custom('%d-%m-%Y') }} {% endif %}
{% else %}
{%- if record.end_date > aujourdhui and record.description %} prochaines : {{record.description}} {{ as_timestamp(record.start_date) | timestamp_custom('%d-%m-%Y') }}{% endif %}
{% endif %}
{%- endfor %}
Cependant j’obtiens des erreurs.
Voici l’erreur quand je fais une vérification de la configuration
Avertissements de configuration
Invalid config for 'sensor' at sensors.yaml, line 8: required key 'platform' not provided
Et si je rajoute - platform: rest
, j’ai ceci
Avertissements de configuration
Invalid config for 'sensor.rest' at sensors.yaml, line 8: must contain at least one of resource, resource_template. '', got {'platform': 'rest'}
Invalid config for 'sensor' at sensors.yaml, line 9: required key 'platform' not provided
Je cherche à comprendre et corriger par moi-même mais j’ai beaucoup de mal à appréhender certains mécanisme de HA.
Merci pour l’aide que vous pourriez m’apporter