Intégration météo: IRM Belgique (meteo.be)

L’API ne fournit que les informations concernant la météo à venir et une brève observation de la météo actuelle (température et condition météo). L’historique de la météo n’est donc pas disponible via l’intégration.

Par contre, ce que tu demandes semble être disponible dans l’open data de l’IRM belge. L’IRM dispose de 17 stations météo automatiques et les données sont publiées sur leur plateforme par 10 minutes, par heure et par jour.

L’IRM gère un réseau de 17 stations météorologiques automatiques en Belgique. Ces stations météorologiques transmettent toutes les 10 minutes des paramètres météorologiques tels que la pression atmosphérique, la température, l’humidité relative, les précipitations (quantité, durée), le vent (vitesse, rafales, direction), la durée d’ensoleillement, le rayonnement solaire à ondes courtes et le rayonnement infrarouge.

Open Data – Automatic weather station (AWS) 10-min observations

Je n’ai pas creusé pour voir ce qu’il était possible d’en faire. Dans tous les cas, si ces données sont intégrées à Home Assistant, je pense que faire une intégration séparée avec uniquement les observations est plus judicieux.

Cette information n’est pas disponible de l’API utilisée donc non, ce n’est pas prévu.

Pourrais-tu partager un peu plus d’informations sur ta configuration? Vérifie si ce n’était pas temporaire: parfois cette valeur est manquante dans les données de l’API.

Normalement, un nombre décimal est censé être renvoyé par l’attribut. Je t’avoue que même si cet attribut était présent, il ne t’aiderait pas beaucoup: je ne l’ai jamais vu changer au cours d’une journée.

@jdejaegh

Merci pour ta réponse.

Voici ma configuration :

## System Information

version | core-2024.6.2
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.12.2
os_name | Linux
os_version | 6.6.28-haos-raspi
arch | aarch64
timezone | Europe/Brussels
config_dir | /config

<details><summary>Home Assistant Community Store</summary>

GitHub API | ok
-- | --
GitHub Content | ok
GitHub Web | ok
GitHub API Calls Remaining | 5000
Installed Version | 1.34.0
Stage | running
Available Repositories | 1386
Downloaded Repositories | 43

</details>

<details><summary>Home Assistant Cloud</summary>

logged_in | true
-- | --
subscription_expiration | 28 avril 2025 à 02:00
relayer_connected | true
relayer_region | eu-central-1
remote_enabled | true
remote_connected | true
alexa_enabled | false
google_enabled | true
remote_server | eu-central-1-19.ui.nabu.casa
certificate_status | ready
instance_id | f0fd017040d14711b17f54352dde68e6
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 12.3
-- | --
update_channel | stable
supervisor_version | supervisor-2024.06.0
agent_version | 1.6.0
docker_version | 25.0.5
disk_total | 116.6 GB
disk_used | 10.6 GB
healthy | true
supported | true
host_connectivity | true
supervisor_connectivity | true
ntp_synchronized | true
virtualization | 
board | rpi5-64
supervisor_api | ok
version_api | ok
installed_addons | Terminal & SSH (9.14.0), File editor (5.8.0), Samba share (12.3.1), Home Assistant Google Drive Backup (0.112.1), Studio Code Server (5.15.0), Spotify Connect (0.13.0), OpenThread Border Router (2.6.0), Matter Server (6.1.2), Mosquitto broker (6.4.1), Frigate (0.13.2)

</details>

<details><summary>Dashboards</summary>

dashboards | 2
-- | --
resources | 40
views | 7
mode | storage

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | 3 juin 2024 à 04:08
-- | --
current_recorder_run | 13 juin 2024 à 17:07
estimated_db_size | 455.41 MiB
database_engine | sqlite
database_version | 3.44.2

</details>

<details><summary>Spotify</summary>

api_endpoint_reachable | ok
-- | --

</details>

Dans les outils de développement, je récupere l’index uv mais je ne sais pas l’intégrer dans une automatisation malheureusement car souvent inconnu:

Tout me semble bon mais c’est vrai que l’index UV a tendance à ne pas être disponible via l’API. L’intégration conserve déjà les données précédentes si l’API est complètement injoignable mais ce n’est pas le cas pour les attributs individuels.

1 « J'aime »

OK,
Autre possibilité de prendre chaque heure le forecast de l’heure en cours comme un precipitation reelle

Salut la communauté,

Je reviens sur cette intégration.
Qu’utilisez-vous pour afficher les « warnings » météo ?
J’ai bien essayé d’extraire les attributs en sensor template mais l’attribut « warnings » ressort toutes les données (début, fin, description, résumé) de façon brut…

Bonjour, voici pour chez moi :wink:


          {% if is_state('binary_sensor.weather_warning_maison', 'off') %}
            Pas d'alerte
          {% else %}
            {{ state_attr('binary_sensor.weather_warning_maison', 'warnings')[0].text  }} 
          {% endif %}

et pour la pluie :

{{ state_attr('camera.radar_maison', 'hint') }}

Salut @jdejaegh ,

Une idée pour enjoliver cet affichage ?
Trop de caracteres pour un sensor template et testé avec entités/attributes et markdown, rien n’est vraiment esthétique :upside_down_face:

Salut,
Perso pas de soucis chez moi.
As-tu vider ton cache ?

@cedric1 Peux-tu me filer le Yaml de ta carte ou m’expliquer quelle carte tu utilises et en renseignant quel attribut stp ?

J’ai été relire plus haut. Je ne me souvenais plus du fil de discussion sur les templates.

Finalement, tu as utilisé ceci ?

{{ state_attr('binary_sensor.weather_warning_maison****', 'warnings') | map(attribute='text') | first | default('Rien à signaler') }}
1 « J'aime »

Bingo, it’s ok ! :slight_smile:

2 « J'aime »

Bonjour à toutes et tous,
Depuis quelques jours, l’intégration ne fonctionne plus, j’ai un message d’erreur :

Echec de la configuration nouvel essai: [Errno 30] Read-only file system

Je ne vois rien dans les logs et c’est la seule intégration qui pose problème.
J’ai lu que HA pouvait mettre le système en lecture seule en cas de corruption de la carte SD ou un manque de place sur le disque. Dans mon cas, HA tourne dans une machine virtuelle sous Proxmox et le disque est libre à plus de 80%.
J’ai essayé d’arrêter puis relancer la VM et HA mais rien ne change toujours l’erreur.
Je ne sais pas si c’est lié à l’intégration elle-même ou pas mais dans le doute je poste ici.

Merci d’avance pour votre aide.

  • Core2024.7.4
  • Supervisor2024.06.2
  • Operating System12.4
  • Interface utilisateur20240710.0

Merci pour le retour! Je n’ai jamais eu cette erreur jusqu’à présent, même lors du développement de l’intégration.

Je n’ai pas l’occasion d’y regarder tout de suite (au plus tôt, le 12-13 août) mais j’ouvre un ticket sur GitHub pour suivre le bug et y penser: [Errno 30] Read-only file system · Issue #55 · jdejaegh/irm-kmi-ha · GitHub

Au vu du message d’erreur, je pense que ça vient de Home Assistant plutôt que de l’intégration directement. L’intégration n’écrit de particulier sur le disque.

1 « J'aime »

Merci pour le retour rapide, je vais suivre sur GitHub et continuer mes recherches

Salut,
Pour info, pas de soucis chez moi.

Bonjour,

Perso, tout fonctionne mais…

concernant le pollen sur le site de l’irm il y a le graminée et l’armoise je n’ai rien.
les remontée de température ne sont pas les même, écart +1 sur HA

Bonne soirée

Bonsoir,
Merci pour cette intégration de l’IRM pour HA,
Comme dit par d’autres intervenants, ce serait bien si l’IRM fournissait plus d’info sur la pluie et le taux d’humidité comme le fait par exemple Met.no (mais avec une certaine latence !!!)
J’ai vu les propos ici, mais pour pouvoir intégrer cela dans un automatisme c’est pas évident. Actuellement j’utilise le taux d’humidité, fourni par Met.no, pour l’ajouter dans les automatismes concernant le store de la veranda. par exemple dans l’action d’un automatisme « fermeture si humidité > 74% », et dans un autre une condition « ouverture possible si humidité sous 74% ».Je sais que l’idéal est l’acquisition de par exemple un netatmo … mais en attendant :wink:

Bonjour,
Bizarrement après plusieurs mises à jour de HA et du Core tout refonctionne normalement sans que je n’ai du toucher à cette intégration.

Core2024.8.2
Supervisor2024.08.0
Operating System13.0
Interface utilisateur20240809.0

Désolé pour le dérangement, c’était bien du à HA et pas à cette intégration

1 « J'aime »

Bonjour,

je suis me suis basé sur un post de @WarC0zes :

et cela donne ceci :

Le seul truc, je ne sais pas comment faire pour masquer les « aucun »

    card:
      type: custom:auto-entities
      card:
        type: grid
        columns: 5
        square: true
      card_param: cards
      filter:
        include:
          - entity_id: sensor.maison_alder_level
            options:
              type: custom:button-card
              color_type: icon
              aspect_ratio: 1/1
              show_name: true
              show_state: true
              name: Aulne
              styles:
                card:
                  - '--mdc-ripple-color': rgb(68, 115, 158)
                  - '--mdc-ripple-press-opacity': 0.5
                name:
                  - font-size: 14px
                state:
                  - font-weight: bold
                  - font-size: 12px
              state:
                - value: none
                  operator: '=='
                  color: grey
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px grey
                    state:
                      - color: grey
                - value: active
                  operator: '=='
                  color: blue
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px blue
                    state:
                      - color: blue
                - value: green
                  operator: '=='
                  color: green
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px green
                    state:
                      - color: green
                - value: yellow
                  operator: '=='
                  color: yellow
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px yellow
                    state:
                      - color: yellow
                - value: orange
                  operator: '=='
                  color: orange
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: orange
                - value: red
                  operator: '=='
                  color: red
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: red
                - value: purple
                  operator: '=='
                  color: purple
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px purple
                    state:
                      - color: purple
              size: 50%
              sort:
                method: name
                reverse: false
          - entity_id: sensor.maison_mugwort_level
            options:
              type: custom:button-card
              color_type: icon
              aspect_ratio: 1/1
              show_name: true
              show_state: true
              name: Armoise
              styles:
                card:
                  - '--mdc-ripple-color': rgb(68, 115, 158)
                  - '--mdc-ripple-press-opacity': 0.5
                name:
                  - font-size: 14px
                state:
                  - font-weight: bold
                  - font-size: 12px
              state:
                - value: none
                  operator: '=='
                  color: grey
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px grey
                    state:
                      - color: grey
                - value: active
                  operator: '=='
                  color: blue
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px blue
                    state:
                      - color: blue
                - value: green
                  operator: '=='
                  color: green
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px green
                    state:
                      - color: green
                - value: yellow
                  operator: '=='
                  color: yellow
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px yellow
                    state:
                      - color: yellow
                - value: orange
                  operator: '=='
                  color: orange
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: orange
                - value: red
                  operator: '=='
                  color: red
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: red
                - value: purple
                  operator: '=='
                  color: purple
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px purple
                    state:
                      - color: purple
              size: 50%
              sort:
                method: name
                reverse: false
          - entity_id: sensor.maison_ash_level
            options:
              type: custom:button-card
              color_type: icon
              aspect_ratio: 1/1
              show_name: true
              show_state: true
              name: Frêne
              styles:
                card:
                  - '--mdc-ripple-color': rgb(68, 115, 158)
                  - '--mdc-ripple-press-opacity': 0.5
                name:
                  - font-size: 14px
                state:
                  - font-weight: bold
                  - font-size: 12px
              state:
                - value: none
                  operator: '=='
                  color: grey
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px grey
                    state:
                      - color: grey
                - value: active
                  operator: '=='
                  color: blue
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px blue
                    state:
                      - color: blue
                - value: green
                  operator: '=='
                  color: green
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px green
                    state:
                      - color: green
                - value: yellow
                  operator: '=='
                  color: yellow
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px yellow
                    state:
                      - color: yellow
                - value: orange
                  operator: '=='
                  color: orange
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: orange
                - value: red
                  operator: '=='
                  color: red
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: red
                - value: purple
                  operator: '=='
                  color: purple
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px purple
                    state:
                      - color: purple
          - entity_id: sensor.maison_birch_level
            options:
              type: custom:button-card
              color_type: icon
              aspect_ratio: 1/1
              show_name: true
              show_state: true
              name: Bouleau
              styles:
                card:
                  - '--mdc-ripple-color': rgb(68, 115, 158)
                  - '--mdc-ripple-press-opacity': 0.5
                name:
                  - font-size: 14px
                state:
                  - font-weight: bold
                  - font-size: 12px
              state:
                - value: none
                  operator: '=='
                  color: grey
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px grey
                    state:
                      - color: grey
                - value: active
                  operator: '=='
                  color: blue
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px blue
                    state:
                      - color: blue
                - value: green
                  operator: '=='
                  color: green
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px green
                    state:
                      - color: green
                - value: yellow
                  operator: '=='
                  color: yellow
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px yellow
                    state:
                      - color: yellow
                - value: orange
                  operator: '=='
                  color: orange
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: orange
                - value: red
                  operator: '=='
                  color: red
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: red
                - value: purple
                  operator: '=='
                  color: purple
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px purple
                    state:
                      - color: purple
          - entity_id: sensor.maison_oak_level
            options:
              type: custom:button-card
              color_type: icon
              aspect_ratio: 1/1
              show_name: true
              show_state: true
              name: Chêne
              styles:
                card:
                  - '--mdc-ripple-color': rgb(68, 115, 158)
                  - '--mdc-ripple-press-opacity': 0.5
                name:
                  - font-size: 14px
                state:
                  - font-weight: bold
                  - font-size: 12px
              state:
                - value: none
                  operator: '=='
                  color: grey
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px grey
                    state:
                      - color: grey
                - value: active
                  operator: '=='
                  color: blue
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px blue
                    state:
                      - color: blue
                - value: green
                  operator: '=='
                  color: green
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px green
                    state:
                      - color: green
                - value: yellow
                  operator: '=='
                  color: yellow
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px yellow
                    state:
                      - color: yellow
                - value: orange
                  operator: '=='
                  color: orange
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: orange
                - value: red
                  operator: '=='
                  color: red
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: red
                - value: purple
                  operator: '=='
                  color: purple
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px purple
                    state:
                      - color: purple
          - entity_id: sensor.maison_grasses_level
            options:
              type: custom:button-card
              color_type: icon
              aspect_ratio: 1/1
              show_name: true
              show_state: true
              name: Graminées
              styles:
                card:
                  - '--mdc-ripple-color': rgb(68, 115, 158)
                  - '--mdc-ripple-press-opacity': 0.5
                name:
                  - font-size: 14px
                state:
                  - font-weight: bold
                  - font-size: 12px
              state:
                - value: none
                  operator: '=='
                  color: grey
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px grey
                    state:
                      - color: grey
                - value: active
                  operator: '=='
                  color: blue
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px blue
                    state:
                      - color: blue
                - value: green
                  operator: '=='
                  color: green
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px green
                    state:
                      - color: green
                - value: yellow
                  operator: '=='
                  color: yellow
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px yellow
                    state:
                      - color: yellow
                - value: orange
                  operator: '=='
                  color: orange
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: orange
                - value: red
                  operator: '=='
                  color: red
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px red
                    state:
                      - color: red
                - value: purple
                  operator: '=='
                  color: purple
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px purple
                    state:
                      - color: purple
          - entity_id: sensor.maison_hazel_level
            options:
              type: custom:button-card
              color_type: icon
              aspect_ratio: 1/1
              show_name: true
              show_state: true
              name: Noisetier
              styles:
                card:
                  - '--mdc-ripple-color': rgb(68, 115, 158)
                  - '--mdc-ripple-press-opacity': 0.5
                name:
                  - font-size: 14px
                state:
                  - font-weight: bold
                  - font-size: 12px
              state:
                - value: none
                  operator: '=='
                  color: grey
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px grey
                    state:
                      - color: grey
                - value: active
                  operator: '=='
                  color: blue
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px blue
                    state:
                      - color: blue
                - value: green
                  operator: '=='
                  color: green
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px green
                    state:
                      - color: green
                - value: yellow
                  operator: '=='
                  color: yellow
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px yellow
                    state:
                      - color: yellow
                - value: orange
                  operator: '=='
                  color: orange
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: orange
                - value: red
                  operator: '=='
                  color: red
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px orange
                    state:
                      - color: red
                - value: purple
                  operator: '=='
                  color: purple
                  styles:
                    card:
                      - box-shadow: 0px 0px 0px 1.1px purple
                    state:
                      - color: purple
              size: 50%
              sort:
                method: name
                reverse: false

Je suis preneur a toute amélioration :smiling_face::grin: