Les erreurs sont explicites pourtant. La première (voir en bas de mon message).
Comme celle ci:
Elle indique qu’il manque un - platform
a la ligne 13 de ton configuration.yaml, soit probablement après le après le sensor.
Comme il y a un include, HA vient « coller » le contenu de son fichier inclu à la suite, donc l’erreur est probablement dans sensors.yaml où il doit manquer une clef platform.
Pour declarer un sensor on doit dire:
sensor:
- platform: rest
name: Hauteur Touch Plaisance
etc...
Donc si ton include est bien fait, ton sensors.yaml doit démarrer par « tiret espace platform deux_points » puisque tu fais un raccourci vers un autre fichier
Ton code devrait donc ressembler à ça:
Deux solutions:
Avec Include:
Attention, j’ai changé le nom du fichier pour mettre en evidence que ce n’est qu’un lien… renommes le sensors.yaml si c’est le nom que tu choisis…
Le !include est un raccourci qui permet à HA de sauter au contenu d’un autre fichier. Il considère alors tout cet autre fichier comme un bloc (pas besoin de refaire les deux espaces d’indentation)
Donc l’include dans configuration.yaml: (collé au bord)
# Inclusions. Do not remove
sensor: !include nom_de_fichier.yaml
et dans nom_de_fichier.yaml: (avec le tiret de platform collé au bord suivi d’un espace et le reste a deux espace du bord)
# recuperation de la hauteur d'eau du Touch à Plaisance du Touch
- platform: rest
name: Hauteur Touch Plaisance
unique_id: hauteur_touch_plaisance
scan_interval: 300
resource: https://hubeau.eaufrance.fr/api/v1/hydrometrie/observations_tr?code_entite=O196431001&size=1&pretty&grandeur_hydro=H&fields=date_obs,resultat_obs,continuite_obs_hydro
value_template: "{{ (value_json['data'][0]['resultat_obs']) | int / 1000 }}" # mm en m
unit_of_measurement: "m"
state_class: measurement
Pas d’espace avant le tiret - deux espaces pour tout le reste du bloc « platform »
Sans Include :
Tout ça est équivalent à faire toute ta déclaration dans le configuration.yaml avec la bonne indentation (qui permet de bien isoler le bloc):
# recuperation de la hauteur d'eau du Touch à Plaisance du Touch
sensor:
- platform: rest
name: Hauteur Touch Plaisance
unique_id: hauteur_touch_plaisance
scan_interval: 300
resource: https://hubeau.eaufrance.fr/api/v1/hydrometrie/observations_tr?code_entite=O196431001&size=1&pretty&grandeur_hydro=H&fields=date_obs,resultat_obs,continuite_obs_hydro
value_template: "{{ (value_json['data'][0]['resultat_obs']) | int / 1000 }}" # mm en m
unit_of_measurement: "m"
state_class: measurement
Deux espaces pour tout le bloc suivant sensor. Donc 2 espaces avant le tiret, puis 4 espaces pour toute la suite du bloc « platform »
Et si tu regardes bien, dans les deux cas, lorsque HA va lire le fichier ligne par ligne:
- il verra bien d’abord
sensor:
qui lui indique que tu vas déclarer des sensors
- puis (soit dans un autre fichier, indiqué par
!include nomdefichier.yaml
, soit dans le même fichier avec une indentation -les deux espaces-) il va tomber sur la clef -platform:
qui indique le type de platforme de capteur et donc commence à déclarer un unique capteur
- puis l’ensemble des paramètres de ce capteur (avec la bonne indentation pour indiquer qu’ils suivent la clef platform)
- puis éventuellement une ou plusieurs autre
- platform:
pour créer d’autres sensor, etc…
Dans le YAML, les indentation (espaces en début de ligne) marchent par bloc de deux espaces. Elles sont aussi importantes que des parenthèses. c’est elles qui indiquent l’appartenance au même bloc. (ici le bloc suivant sensor:
, ou le bloc suivant - platform:
)
Si l’indentation n’est pas bien faite, HA ne sais pas lire (ou lira de travers) ton YAML.
Si je reprend ton exemple posté plus haut il y a plusieurs problèmes qui empêchent HA de comprendre ce que tu déclares: