Création d'un fichier sensors.yaml, fonctionne pas

Hello,

je viens demander votre aide concernant un problème de configuration du fichier sensors.yaml que j 'ai créer en suivant le tuto de Mcfly (Organisation du fichier configuration.yaml).

jusque là tout va bien, j’y ai donc inclu ce fichier github pour la création de sensors « vacances scolaires » https://github.com/papo-o/home-assistant-config/blob/master/integrations/vacances_scolaires.yaml

Et surprise ! bah ça marche pas…
En vérifiant la configuration et bien j’ai ce message d’erreur :


Effectivement, la ligne 12 correspond à mon !include sensors.yaml :

mais à quoi correspond " key not provided" ?

Merci pour votre aide.

Ma configuration


System Information

version core-2024.9.3
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 5.4.180
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.1
Stage running
Available Repositories 1426
Downloaded Repositories 4
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 11 (bullseye)
update_channel stable
supervisor_version supervisor-2024.09.1
agent_version 1.5.1
docker_version 24.0.2
disk_total 14.4 GB
disk_used 10.1 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
supervisor_api ok
version_api ok
installed_addons Matter Server (6.5.1), File editor (5.8.0), NGINX Home Assistant SSL proxy (3.10.1), ZeroTier One (0.18.0), Home Assistant Google Drive Backup (0.112.1), Mosquitto broker (6.4.1), Zigbee2MQTT (1.40.1-1), Advanced SSH & Web Terminal (19.0.0), VLC (0.3.0)
Dashboards
dashboards 2
resources 2
views 6
mode storage
Recorder
oldest_recorder_run 24 septembre 2024 à 04:58
current_recorder_run 2 octobre 2024 à 06:58
estimated_db_size 60.98 MiB
database_engine sqlite
database_version 3.45.3
___

Bonjour,

Pouvez-vous mettre votre fichier: sensors.yaml

Mcp

1 « J'aime »

mon fichier sensors.yaml :





# # https://www.home-assistant.io/integrations/rest
# # https://pon.fr/home-assistant-vacances-scolaires/
# # https://github.com/papo-o/home-assistant-config/blob/master/integrations/vacances_scolaires.yaml
# # vous avez une seule chose à personnaliser, l'academie
# #   {% set location = 'Limoges' %}
# liste des académies : 'Corse', 'Polynésie', 'Nouvelle Calédonie', 'Guyane', 'Aix-Marseille', 
# 'Amiens', 'Besançon', 'Bordeaux', 'Clermont-Ferrand', 'Créteil', 'Dijon', 'Grenoble', 'Lille', 
# 'Limoges', 'Lyon', 'Montpellier', 'Nancy-Metz', 'Nantes', 'Nice', 'Orléans-Tours', 'Paris', 
# 'Poitiers', 'Reims', 'Rennes', 'Strasbourg', 'Toulouse', 'Versailles', 'Mayotte', 'Réunion', 
# 'Martinique', 'Saint Pierre et Miquelon', 'Wallis et Futuna', 'Caen', 'Rouen', 'Guadeloupe', 'Normandie'
# https://help.opendatasoft.com/apis/ods-search-v1/#search-api-v1
template:
  - platform: rest
    scan_interval: '00:30:00'
    name: vacances_scolaires
    json_attributes_path: "$.records[0].fields"
    json_attributes:
      - start_date
      - end_date
      - description
    resource_template: |-
      {% set location = 'Rennes' %}
      {% 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/records/1.0/search/?dataset=fr-en-calendrier-scolaire&facet=start_date&facet=end_date&rows={{rows}}&refine.location={{location}}&sort=-end_date&q=end_date%3E={{aujourdhui}}
#https://data.education.gouv.fr/api/records/1.0/search/?dataset=fr-en-calendrier-scolaire&facet=start_date&facet=end_date&rows={{rows}}&refine.annee_scolaire={{schoolYear}}&refine.location={{location}}&sort=-end_date&q=end_date%3E={{aujourdhui}}
#&q=start_date%3E={{aujourdhui}}&q=end_date%3E={{aujourdhui}}
    value_template: |-
      {% set aujourdhui = now().strftime('%Y-%m-%d')%}
      {% for record in value_json.records -%}
      {% if aujourdhui >= record.fields.start_date and aujourdhui <= record.fields.end_date %} 
      {%- if record.fields.description %}{{record.fields.description}} jusqu'au {{ as_timestamp(record.fields.end_date) | timestamp_custom('%d-%m-%Y') }} {% endif %}
      {% else %} 
      {%- if record.fields.end_date > aujourdhui and record.fields.description %} prochaines : {{record.fields.description}} {{ as_timestamp(record.fields.start_date) | timestamp_custom('%d-%m-%Y') }}{% endif %}
      {% endif %}
      {%- endfor %}

binary_sensor:
  - platform: template
    sensors:
      vacances_scolaires_aujourdhui:
        friendly_name: "Vacances Scolaires aujourd'hui"
        value_template: |-
          {% set aujourdhui = now().strftime('%Y-%m-%d')%}
          {% if aujourdhui < states.sensor.vacances_scolaires.attributes["start_date"] or aujourdhui > states.sensor.vacances_scolaires.attributes["end_date"] %}
          false
          {% else %} 
          true
          {% endif %}

  - platform: template
    sensors:
      vacances_scolaires_demain:
        friendly_name: "Vacances Scolaires demain"
        value_template: |-
          {% set demain = (as_timestamp(now()) + (24*3600)) | timestamp_custom('%Y-%m-%d', True) %}
          {% if demain < states.sensor.vacances_scolaires.attributes["start_date"] or demain > states.sensor.vacances_scolaires.attributes["end_date"] %} 
          false
          {% else %} 
          true
          {% endif %}

bon je persiste mais ça ne fonctionne toujours pas, j’aimerai comprendre pourquoi mon fichiers sensors.yaml n’est pas pris en compte ?!
j ai installé studio code server pensant que ça pouvais m aider, pas d’erreur dans le yaml, je redémarre la config yaml, mais aucune entité de créée.

je vous joint le yaml un peu plus épuré

à votre bon coeur !
merci

- platform: rest
  scan_interval: '00:30:00'
  name: vacances_scolaires
  json_attributes_path: "$.records[0].fields"
  json_attributes:
    - start_date
    - end_date
    - description
  resource_template: |-
    {% set location = 'Rennes' %}
    {% 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/records/1.0/search/?dataset=fr-en-calendrier-scolaire&facet=start_date&facet=end_date&rows={{rows}}&refine.location={{location}}&sort=-end_date&q=end_date%3E={{aujourdhui}}
  value_template: |-
    {% set aujourdhui = now().strftime('%Y-%m-%d')%}
    {% for record in value_json.records -%}
    {% if aujourdhui >= record.fields.start_date and aujourdhui <= record.fields.end_date %} 
    {%- if record.fields.description %}{{record.fields.description}} jusqu'au {{ as_timestamp(record.fields.end_date) | timestamp_custom('%d-%m-%Y') }} {% endif %}
    {% else %} 
    {%- if record.fields.end_date > aujourdhui and record.fields.description %} prochaines : {{record.fields.description}} {{ as_timestamp(record.fields.start_date) | timestamp_custom('%d-%m-%Y') }}{% endif %}
    {% endif %}
    {%- endfor %}    

Salut. Dans le premier sensors.yaml tu as aussi des déclarations pour un binary_sensor. Ça doit faire l’objet d’un autre fichier si tu veux séparer.
Sinon c’est un package que tu dois créer si tu veux les 2.

Après pour ce que tu veux faire je t’invite à regarder ce que j’ai fait et qui fonctionne chez moi. C’est un package également.

Merci pour ta réponse,
mon niveau dans ce domaine ne me permet pas de tout comprendre !
Je pensais que de créer un !include suffisait pour que le programme lise ce yaml et créer les sensors, comme expliqué dans ce tuto https://www.sigalou-domotique.fr/ecole-demain, ma foi sur le papier ça avait l 'air simple… apparemment j 'ai pas compris ?

J ai aussi regardé ce que tu me proposais, qui à l’air intéressant, une autre étape dans l apprentissage pour moi !
J 'aimerai dans un premier temps réussir à faire fonctionner ce sensors.yaml !

si tu peux m 'éclaircir un peu plus je suis prenneur !

Grossomodo oui c’est le cas.

Après ce n’est pas évident de dire ce qui ne va pas.
Comment est exactement ton fichier sensors.yaml ? Est ce que c’est comme ton second message, ou comme ton troisième message ?

Si c’est la version épurée, et qu’il n’y a que ça dans ton sensors.yaml, ca devrait au moins créer un capteur, sauf grosse foirade dans le code. Mais y’a plein de questions qu’on peut se poser !
Est ce que tu as toujours le message d’erreur empêchant de recharger la config comme sur le premier message ?
Est ce que tu as rechargé la configuration ?
Qu’est ce que tu vois dans outils de développement / etat quand tu appelles sensor.vacances_scolaires ? Si tu ne vois aucune entité, il y a surement un message d’erreur dans parametres/systeme/journaux ?
Est ce que cette api retourne bien les infos demandées ? En faisant un test directement avec l’url dans un navigateur et avec les paramètres de ton sensor par exemple.

Sur ce que j’avais envoyé précédemment j’avais fait un appel sur l’api en version 2.1. Je ne sais plus la raison, mais il devait y en avoir une !

J ai regardé suite à ton message dans " état " et en effet il s y trouve bien ! sur l 'image il est stipulé " il y a 9 heure " actif depuis ce matin ?

En effet je n’avais plus le message d’erreur comme sur le premier message, rien de laissait présager une quelconque erreur, finalement c’était normal s il était présent !

Mon erreur : je recherchais pas de la bonne façon, je ne mettais pas la ponctuation, donc je ne trouvais pas l’ entité.

Par contre il faut que je prenne l 'habitude de regarder dans paramètres/systeme/journaux ( les logs si j 'ai bien compris ) quand je constate des problème, pas sûr que j 'y comprenne quelques chose ! sait on jamais !
Au moins pour les explication dans les forums, ce pourrait être utile.
Un grand merci pour ton aide en tout cas.

1 « J'aime »