Web log de Serge Boisse
On line depuis 1992 !
Résumé : YAML est le langage utilisé dans les frontmatter de Obsdian et aussi dans la configuration de home-assistant(lien privé)
En gros; il y a deux structures de données : les dictionnaires et les listes
clé : valeur
déclare un dictionnaire. La valeur peut être sur une seule ligne (avec des ,
comme séparateur) ou sur plusieurs lignes)- item
décrit un élément de liste - item: toto
décrit un élément de liste qui est un dictionnaire : >
:fold_newlines: >
this is really a
single line of text
despite appearances
Inversement si la clé est suivie de : |
tout ce qui suit à un niveau d'indendation supérieur sera considéré comme une seule ligne.
Tout ce qui commence par {{
et finit par }}
sera imprimé.
sinon on a des if, then else, for etc.
{## Imitate available variables: ##}
{% set my_test_json = {
"temperature": 25,
"unit": "°C"
} %}
The temperature is {{ my_test_json.temperature }} {{ my_test_json.unit }}.
{% if is_state("sun.sun", "above_horizon") -%}
The sun rose {{ relative_time(states.sun.sun.last_changed) }} ago.
{%- else -%}
The sun will rise at {{ as_timestamp(state_attr("sun.sun", "next_rising")) | timestamp_local }}.
{%- endif %}
For loop example getting entity values in the weather domain:
{% for state in states.weather -%}
{%- if loop.first %}The {% elif loop.last %} and the {% else %}, the {% endif -%}
{{ state.name | lower }} is {{state.state_with_unit}}
{%- endfor %}.
On peut modifier des valeurs :
par exemple {{ states('sensor.linky_tic_status_register')[5]}}
cinquième caractère
{{ states('sensor.linky_tic_status_register')[6]|int <8}}
conversion string->int
ou encore
{{ expand(area_entities('lounge room')) | selectattr('domain', 'eq', 'light') | map(attribute='entity_id') | list }}
ou
{{ area_entities('lounge room') | select('match', 'light') | list }}
Par exemple le code Jinja ci dessous (jinja et jinja2 sont des extension de YAML) :
icon_color: |
[[[
if(states["sensor.purpleair_aqi"].state > 300){
return 'white';
} else {
return 'black';
}
]]]
page créée le 18/03/2025 à 15:09
modifiée le 27/05/2025 à 16:38
Commentaires (0) :
Page :Ajouter un commentaire (pas besoin de s'enregistrer)
En cliquant sur le bouton "Envoyer" vous acceptez les conditions suivantes : Ne pas poster de message injurieux, obscène ou contraire à la loi, ni de liens vers de tels sites. Respecter la "netiquette", ne pas usurper le pseudo d'une autre personne, respecter les posts faits par les autres. L'auteur du site se réserve le droit de supprimer un ou plusieurs posts à tout moment. Merci !Ah oui : le bbcode et le html genre <br>, <a href=...>, <b>b etc. ne fonctionnent pas dans les commentaires. C'est voulu.