[Carte] Phrase récap conditions météo

Salut tout le monde !

Je vous partage une carte que j’ai trouvée ici, mais traduite et adaptée pour mon usage.
Je pense qu’elle pourrait être utile à d’autres, alors voici le code.

Les prérequis dans HACS :

Le code :

type: custom:paper-buttons-row
styles:
  justify-content: flex-start
  flex-wrap: wrap
  font-size: 1em
  line-height: 1.2em
  margin: 6px 0 12px 0
  width: 100%
buttons:
  - layout: name
    name: Il fait actuellement
    styles:
      button:
        flex-basis: 1
        flex-shrink: 0
      name:
        color: var(--primary-text-color)
  - layout: name
    entity: weather.ville
    name: >-
      {% set etat = states('weather.ville') %} {% set traduction = {
        'clear': 'Dégagé',
        'cloudy': 'Nuageux',
        'partlycloudy': 'Partiellement nuageux',
        'rainy': 'Pluvieux',
        'pouring': 'Averses',
        'snowy': 'Neigeux',
        'snowy-rainy': 'Neige fondue',
        'sunny': 'Ensoleillé',
        'fog': 'Brouillard',
        'windy': 'Venteux',
        'windy-variant': 'Venteux variable',
        'exceptional': 'Exceptionnel'
      } %} {{ state_attr('weather.ville', 'temperature') | round(1) }}°,  {{
      traduction[etat] if etat in traduction else etat }}
    tap_action:
      action: more-info
    styles:
      name:
        color: rgba(255, 152, 0, 1)
        font-weight: bold
      button:
        padding: 2px 8px
        background-color: rgba(255, 152, 0, 0.1)
        border-radius: 24px
        flex-basis: 1
        flex-shrink: 0
        display: flex
  - layout: name
    name: dehors, avec un vent qui soufle à
    styles:
      button:
        flex-basis: 1
        flex-shrink: 0
      name:
        color: var(--primary-text-color)
  - layout: name
    entity: weather.ville
    name: "{{ state_attr('weather.ville', 'wind_speed') }} km/h"
    tap_action:
      action: navigate
      navigation_path: /dashboard-mobile/meteo
    styles:
      name:
        color: rgba(139, 195, 74, 1)
        font-weight: bold
      button:
        padding: 2px 8px
        background-color: rgba(139, 195, 74, 0.1)
        border-radius: 24px
        flex-basis: 1
        flex-shrink: 0
        display: flex
  - layout: name
    name: Il fera maximum
    styles:
      button:
        flex-basis: 1
        flex-shrink: 0
      name:
        color: var(--primary-text-color)
  - layout: name
    entity: weather.ville
    name: >-
      {% set temp = states('sensor.temperature_ville_j0') %} {% if temp not
      in ['unknown', 'unavailable', '', None] %}
        {{ temp }} °🔺
      {% else %}
        N/A °🔺
      {% endif %}
    tap_action:
      action: navigate
      navigation_path: /dashboard-mobile/meteo
    styles:
      name:
        color: rgba(233, 30, 99, 1)
        font-weight: bold
      button:
        padding: 2px 8px
        background-color: rgba(233, 30, 99, 0.1)
        border-radius: 24px
        flex-basis: 1
        flex-shrink: 0
        display: flex
  - layout: name
    name: et minimum
    styles:
      button:
        flex-basis: 1
        flex-shrink: 0
      name:
        color: var(--primary-text-color)
  - layout: name
    entity: weather.ville
    name: >-
      {% set temp = states('sensor.temp_mini_ville_j0') %} {% if temp not in
      ['unknown', 'unavailable', '', None] %}
        {{ temp }} °🔻
      {% else %}
        N/A °🔻
      {% endif %}
    tap_action:
      action: navigate
      navigation_path: /dashboard-mobile/meteo
    styles:
      name:
        color: rgba(3, 169, 244, 1)
        font-weight: bold
      button:
        padding: 2px 8px
        background-color: rgba(3, 169, 244, 0.1)
        border-radius: 24px
        flex-basis: 1
        flex-shrink: 0
        display: flex
  - layout: name
    name: avec un pollen à
    styles:
      button:
        flex-basis: 1
        flex-shrink: 0
      name:
        color: var(--primary-text-color)
  - layout: name
    entity: weather.ville
    name: "{{states('sensor.qualite_globale_pollen_ville')}}/6"
    tap_action:
      action: navigate
      navigation_path: /dashboard-mobile/meteo
    styles:
      name:
        color: rgba(63, 81, 181, 1)
        font-weight: bold
      button:
        padding: 2px 8px
        background-color: rgba(63, 81, 181, 0.1)
        border-radius: 24px
        flex-basis: 1
        flex-shrink: 0
        display: flex

Petite précision, j’exporte la température mini de la journée pour mon écran e-paper, donc je réutilise le sensor. Voici le code dans template.yaml :

  - sensor:
    - name: Temp mini ville J0
      unique_id: templow_ville_j0
      state: "{{ state_attr('sensor.weather_forecast_jour_ville','forecast')[0].templow | float(0) }}"
      availability:  "{{ states('sensor.weather_forecast_jour_ville') not in ['unknown', 'unavailable', 'none'] }}"

Bonjour

Merci du partage. Tu utilises quelle integration pour le Forecast?

Bonne journée

Bonjour,
avec l’intégration météo france et un template. Les forecasts sont supprimés depuis un bon moment, il faut passer par un template pour les récupérer.

Hello,

Merci beaucoup

Pour avoir le sensor du Forecast:

template:

  - trigger:
      - platform: time_pattern
        hours: /1
      - platform: homeassistant
        event: start
    action:
      - service: weather.get_forecasts
        data:
          type: daily
        target:
          entity_id: weather.xxxx
        response_variable: daily
    sensor:
      - name: Weather Forecast Jour xxxx
        unique_id: weather_forecast_jour_xxxx
        state: "{{ daily['weather.xxxx'].forecast[0].condition }}"
        attributes:
          forecast: "{{ daily['weather.xxxx'].forecast }}"

  - trigger:
      - platform: time_pattern
        hours: /1
      - platform: homeassistant
        event: start
    action:
      - service: weather.get_forecasts
        data:
          type: hourly
        target:
          entity_id: weather.xxxx
        response_variable: hourly
    sensor:
      - name: Weather Forecast Heure xxxx
        unique_id: weather_forecast_heure_xxxx
        state: "{{ hourly['weather.xxxx'].forecast[0].condition }}"
        attributes:
          forecast: "{{ hourly['weather.xxxx'].forecast }}"
      - service: weather.get_forecasts
        data:
          type: hourly
        target:
          entity_id: weather.mothern
        response_variable: hourly
    sensor:
      - name: Weather Forecast Heure Mothern
        unique_id: weather_forecast_heure_mothern
        state: "{{ hourly['weather.mothern'].forecast[0].condition }}"
        attributes:
          forecast: "{{ hourly['weather.mothern'].forecast }}"

Pour le Sensor:

  - sensor:

    - name: Temp mini xxxx J0
      unique_id: templow_xxxx_j0
      state: "{{ state_attr('sensor.weather_forecast_jour_xxxx','forecast')[0].templow | float(0) }}"
      availability:  "{{ states('sensor.weather_forecast_jour_xxxx') not in ['unknown', 'unavailable', 'none'] }}"

    - name: Temp maxi xxxx J0
      unique_id: temphigh_xxxx_j0
      state: "{{ state_attr('sensor.weather_forecast_jour_xxxx','forecast')[0].temperature | float(0) }}"
      availability: "{{ states('sensor.weather_forecast_jour_xxxx') not in ['unknown', 'unavailable', 'none'] }}"

Il suffit juste de remplacer les xxxx par la ville.