Salut
merci pour cette article et partage
Je vais essayer d’utiliser au maximum la carte tuile
Je me suis penché sur la carte tuile météo


Code de la carte
type: tile
show_entity_picture: true
icon: mdi:account
color: green
entity: sensor.VOTRE_VILLE_heure
name: Météo
hide_state: false
state_content:
- condition
- temperature
- humidity
- precipitation
- wind_speed
vertical: false
grid_options:
columns: 12
rows: 1


section prévision
square: false
type: grid
cards:
- type: heading
icon: mdi:weather-partly-snowy-rainy
heading: Prévisions météo
heading_style: title
- type: tile
entity: sensor.meteo_VOTRE_VILLE_0
icon: mdi:account
hide_state: false
vertical: false
name: Aujourd'hui
state_content:
- datetime
- condition
- templow
- temperature
- humidity
- precipitation
show_entity_picture: true
- type: tile
show_entity_picture: true
icon: mdi:account
color: green
entity: sensor.meteo_VOTRE_VILLE_1
name: Demain
hide_state: false
vertical: false
grid_options:
columns: 12
rows: 1
state_content:
- datetime
- condition
- templow
- temperature
- humidity
- precipitation
- type: tile
show_entity_picture: true
icon: mdi:account
color: green
entity: sensor.meteo_VOTRE_VILLE_2
name: Après demain
hide_state: false
vertical: false
grid_options:
columns: 12
rows: 1
state_content:
- datetime
- condition
- templow
- temperature
- humidity
- precipitation
- type: tile
show_entity_picture: true
icon: mdi:account
color: green
entity: sensor.meteo_VOTRE_VILLE_3
name: J+3
hide_state: false
vertical: false
grid_options:
columns: 12
rows: 1
state_content:
- datetime
- condition
- templow
- temperature
- humidity
- precipitation
- type: tile
show_entity_picture: true
icon: mdi:account
color: green
entity: sensor.meteo_VOTRE_VILLE_4
name: J+4
hide_state: false
vertical: false
grid_options:
columns: 12
rows: 1
state_content:
- datetime
- condition
- templow
- temperature
- humidity
- precipitation
grid_options:
columns: full
columns: 1
Oui j’ai un temps magnifique


Pour obtenir les infos météo :
à ajouter en premier lieu les codes suivants dans le configuration.yaml ou template.yaml
Météo par heure :
Template (par heure)
- trigger:
- trigger: time_pattern
hours: /1
- trigger: homeassistant
event: start
action:
- action: weather.get_forecasts
target:
entity_id: weather.VOTRE_VILLE
data:
type: hourly
response_variable: hourly
sensor:
- name: meteo VOTRE_VILLE heure
unique_id: meteo_VOTRE_VILLE_heure
state: "Something"
picture: >
{% set weather = hourly['weather.VOTRE_VILLE'].forecast[0].condition %}
{% if is_state('sun.sun', 'above_horizon') %}
{{ '/local/icones/meteo/' + weather + '.svg' }}
{% else %}
{{ '/local/icones/meteo/' + weather + '_night.svg' }}
{% endif %}
attributes:
datetime: "{{ hourly['weather.VOTRE_VILLE'].forecast[0].datetime }}"
condition: "{{ hourly['weather.VOTRE_VILLE'].forecast[0].condition }}"
temperature: "🌡️{{hourly['weather.VOTRE_VILLE'].forecast[0].temperature }}°"
humidity: "💧{{ hourly['weather.VOTRE_VILLE'].forecast[0].humidity }}%"
precipitation: "☂️{{hourly['weather.VOTRE_VILLE'].forecast[0].precipitation }}mm"
precipitation_percent: "{{ hourly['weather.VOTRE_VILLE'].forecast[0].precipitation.probability }}"
wind_speed: "💨{{hourly['weather.VOTRE_VILLE'].forecast[0].wind_speed }}km/h"
Metéo par jour :
Template (par jour)
- trigger:
- trigger: time_pattern
hours: /1
- trigger: homeassistant
event: start
action:
- action: weather.get_forecasts
target:
entity_id: weather.VOTRE_VILLE
data:
type: daily
response_variable: daily
sensor:
- name: meteo VOTRE_VILLE jour 1
unique_id: meteo_VOTRE_VILLE_jour_1
state: "Something"
picture: >
{% set weather = daily['weather.VOTRE_VILLE'].forecast[1].condition %}
{{ '/local/icones/meteo/' + weather + '.svg' }}
attributes:
datetime: >
{{ daily['weather.VOTRE_VILLE'].forecast[1].datetime | as_timestamp | timestamp_custom('%d/%m', true) }}
condition: "{{ daily['weather.VOTRE_VILLE'].forecast[1].condition }}"
temperature: "🔺{{ daily['weather.VOTRE_VILLE'].forecast[1].temperature }}°"
humidity: "💧{{ daily['weather.VOTRE_VILLE'].forecast[1].humidity }}%"
templow: "🔻{{ daily['weather.VOTRE_VILLE'].forecast[1].templow }}°"
Code à multiplier selon le nombre de jours souhaités
forecast[0] : Jour J
forecast[1] : Jour J+1
forecast[2] : Jour J+2
etc…
Tout les attributs disponibles sont visibles dans outils de développement > Actions > Météo: Obtenir les prévisions


Pour les icônes animés j’ai pris celle ci :
https://bas.dev/work/meteocons
Il faudra prendre celle qui vous interesse pour toutes les conditions visibles sur ce lien :
Vous pourrez mettre les variantes « nuit » utile pour la météo par heure
Toutes les icones seront à enregistrer en local de préférence
exemple pour moi /local/icones/meteo/
Attention il faut que les noms des icônes soit identique au nom des conditions « weather HA »
rajouter _night dans le nom des icônes pour les versions nuits


suite à test avec @jerome6994
La synchronisation des sensors peuvent mettre du temps, ne vous inquiétez pas si rien apparait dans les données des sensors.
Cela met un peu de temps
Idem pour le lien avec les icônes.
L’affichage sur téléphone semblent accepter uniquement 5 états, pensez y
EDIT:
On peu forcer les noms à se mettre à jour en fonction des forecasts
voici le code à utiliser :
- name: "{{ daily['weather.VOTRE_VILLE'].forecast[2].datetime | as_timestamp | timestamp_custom('%a', true) | replace('Mon', 'Lundi') | replace('Tue', 'Mardi') | replace('Wed', 'Mercredi') | replace('Thu', 'Jeudi') | replace('Fri', 'Vendredi') | replace('Sat', 'Samedi') | replace('Sun', 'Dimanche') }}"
unique_id: meteo_VOTRE_VILLE_jour_2
state: "Something"
picture: >
{% set weather = daily['weather.VOTRE_VILLE'].forecast[2].condition %}
{{ '/local/icones/meteoV2/' + weather + '.png' }}
attributes:
datetime: >
{{ daily['weather.VOTRE_VILLE'].forecast[2].datetime | as_timestamp | timestamp_custom('%d/%m', true) }}
condition: "{{ daily['weather.VOTRE_VILLE'].forecast[2].condition | replace('clear', 'Ciel dégagé') | replace('clear-night', 'Nuit clair') | replace('cloudy', 'Nuageux') | replace('rainy', 'Pluie') | replace('hail', 'Risque de grèle') | replace('snowy', 'neige') | replace('windy', 'Venteux') | replace('fog', 'Brouillard') | replace('partlycloudy', 'Eclaircies') | replace('pouring', 'Pluie forte') | replace('lightning', 'Orages') | replace('sunny', 'Ensoleillé') | replace('windy-variant', 'Venteux variant') | replace('Exceptional', 'Exceptionnel') | replace('snowy-rainy', 'Pluie verglaçante') | replace('lightning-rainy', 'Pluie orageuse')}}"
temperature: "🔺{{ daily['weather.VOTRE_VILLE'].forecast[2].temperature }}°"
humidity: "💧{{ daily['weather.VOTRE_VILLE'].forecast[2].humidity }}%"
templow: "🔻{{ daily['weather.VOTRE_VILLE'].forecast[2].templow }}°"
precipitation: "☂️{{ daily['weather.VOTRE_VILLE'].forecast[2].precipitation }}mm"
J’ai également intégré la traduction des conditions.
ATTENTION:
bien mettre un ID_Unique
Le temps de synchronisation des jours n’est pas instantanée cela peu prendre quelque minutes.