Belgium weather provider: IRM / KMI (meteo.be)

Thanks so much Bollewolle for your very efficient help.

1 Like

Thank you very much for this!
It wasn’t working well for me, however. The friendly names had actually been translated already (to FR), and using the Translate = 0 did not work either because of the Pollen d’Aulne, where Aulne (alder) cannot be split with " ". So for those who may be in the same situation, here is a version using the translation function, but based on the entity_id instead of friendly_name and with the EN names in the dict with a lower case for the matching (and an underscore for the split separator):

type: custom:auto-entities
filter:
  include:
    - entity_id: sensor.HOME_*_level
  exclude:
    - state: none
sort:
  method: name
  reverse: false
  ignore_case: true
card:
  type: custom:flex-table-card
  title: null
  columns:
    - name: AllergĂšne
      data: entity_id
      align: center
      modify: >-
        function getTranslations(pollentype) {
          const Translate = 1; // Set to 1 to apply translation table, set 0 to use originals

          // Add your wanted translations here
          const translations = {
            "oak": "ChĂȘne",
            "alder": "Aulne",
            "grass": "Graminée",
            "birch": "Bouleau",
            "hazel": "Noisetier",
            "mugwort": "Armoise",
            "ash": "FrĂȘne"
          };

          // if Translate is turned on then retrieve the translation, othwerise use the original value
          return Translate ? (translations[pollentype] || pollentype) : pollentype;
        } 

        // note that depending on your setup a different item of the array might
        need to be set (e.g. [2] instead of [1])

        var pollen = x.split("_")[1];

        // call the translation function

        getTranslations(pollen);          
    - name: Saison
      data: state
      align: center
      modify: |-
        if (x == 'none')
          '<ha-icon icon="mdi:void">'
        else
          '<ha-icon icon="mdi:eye-check-outline">'
    - name: <ha-icon icon="mdi:circle-outline">
      data: state
      align: center
      modify: |-
        if (x == 'green')
          '<ha-icon icon="mdi:flower-pollen">'
        else
          '<ha-icon icon="mdi:void">'
    - name: <ha-icon icon="mdi:circle-slice-2">
      data: state
      align: center
      modify: |-
        if (x == 'yellow')
          '<ha-icon icon="mdi:flower-pollen">'
        else
          '<ha-icon icon="mdi:void">'
    - name: <ha-icon icon="mdi:circle-slice-4">
      data: state
      align: center
      modify: |-
        if (x == 'orange')
          '<ha-icon icon="mdi:flower-pollen">'
        else
          '<ha-icon icon="mdi:void">'
    - name: <ha-icon icon="mdi:circle-slice-6">
      data: state
      align: center
      modify: |-
        if (x == 'red')
          '<ha-icon icon="mdi:flower-pollen">'
        else
          '<ha-icon icon="mdi:void">'
    - name: <ha-icon icon="mdi:circle-slice-8">
      data: state
      align: center
      modify: |-
        if (x == 'purple')
          '<ha-icon icon="mdi:flower-pollen">'
        else
          '<ha-icon icon="mdi:void">'
  css:
    tbody tr td:nth-child(1): "width: 16px; "
    tbody tr td:nth-child(2): "width: 16px; "
    tbody tr td:nth-child(3): "background-color: lightgreen; width: 16px"
    tbody tr td:nth-child(4): "background-color: gold; width: 16px"
    tbody tr td:nth-child(5): "background-color: coral; width: 1px"
    tbody tr td:nth-child(6): "background-color: indianred; width: 16px"
    tbody tr td:nth-child(7): "background-color: orchid; width: 16px"


2 Likes

Well, I see the uv index, it shows up in my weather card and it’s in the entity’s attributes:
image
For the felt temperature, it seems it is just not provided by the IRM. At least, I don’t see it in their app (of which the API is used for this integration).

1 Like

Hi Friedrieck,
Thanks for the information.
I must admit I didn’t notice the weather state by default included the UV_index as a properties.

However, it is a pity that the uv_index is not included in the weather forecasts with an action for daily, hourly and twice daily.

Developer tool for Actions with the IRM weather forecasts integration :

action: weather.get_forecasts
target:
  entity_id: weather.myhome
data:
  type: daily  (and same for hourly and twice_daily)

The returned forecasts don’t include uv_index unfortunately.

That is why for the UV_index forecasts, I use the HA default Meteorologisk institutt (Met.no) integration. Note that felt temperature is neither available in Meteorologisk institutt (Met.no) integration.

First of all thanks for the integration.

I want to make an automation where there is an action when the predicted nighttemperature is below a value. Where can I find that average nighttemperature ?

Hi Jo, that info is not available by default → GitHub - jdejaegh/irm-kmi-ha: Home Assistant weather provider using data from Belgian IRM KMI 🇧đŸ‡Ș đŸ‡±đŸ‡ș đŸ‡łđŸ‡±

To set you off: it is possible though to extract that info for a specific time by

{{ state_attr('weather.forecast_home_hourly', 'forecast') [0].temperature }}

where [0] is the first next prediction.
I guess you have to cook up something that uses a timeframe and retrieve the lowest value.

EDIT: FYI, you can see what is available by using the Developer tools → ACTIONS → ‘Weather: Get forcasts’ and picking the service (entity)

2 Likes

my {{ state_attr('weather.XXX, ‘forecast’) }} has no forecast attribute

That’s why I edited my post:

weather.home:
  > forecast:
>     - datetime: "2025-02-19"
>       templow: -2

How can I use the templow ?

{{ (<Response_variable_from_getweather>['weather.home'].forecast[0].templow ) }}
1 Like

Hi,

I’m able to show my standard weather card using the integration. What I also would like to do is show the camera with the radar and the graph. I tried to use simple implementation as follows:

type: custom:vertical-stack-in-card
                      cards:
                        - type: custom:weather-card
                          entity: weather.huis_2
                          name: Tessenderlo
                        - type: picture-glance
                          entities: []
                          camera_image: camera.radar_huis
                          camera_view: live

The odd thing I’m struggling with is the following : When I use the camera_view: live feature, I see the radar with movement. NO GRAPH BELOW

When I delete the camera_view : live feature, I see static RADAR image and static GRAPH image.

Is this a known issue or bug ? Obviously I would like to see moving RADAR AND GRAPH in my visualisation.

BTW: if it is relevant, these results are in the Chrome Browser

Thanks in advance !

Kr,

Bart

Hi Bart, that should work.
Try, as a test, to create a single card just with the radar.

Hi Bart,

For some reason, Home Assistant is not able to detect the aspect ratio to use with the live option. Here is the yaml for the card that shows the live radar (with the graph visible) on the dashboard (note the aspect_ratio at the end).

show_state: true
show_name: true
camera_view: live
type: picture-entity
entity: camera.radar_home
aspect_ratio: "640:720"

This configuration works fine if the zone is in Belgium or Luxembourg. For the Netherlands, use "640:830" for the aspect ratio.

2 Likes

That did the trick ! thanks a lot !

Another question: I use the custom:weather-card with my weather.home identity. Currently I’m just seeing the forecast for the upcoming hours instead of upcoming days. Any possibility to change that ?

Maybe I’ve overlooked something ?

Kr,

Bart

Hi all,

What weather card are you using to diplay a WEEKLY forecast ? I’m using the custom:weather-card and this one is only showing the hourly forecast

Thanks a lot !

Kr,

Bart

How did you get the forecast? I only get the preview of today. Yaml code below:

type: custom:weather-card
entity: weather.thuis
current: true
details: true
forecast: true
number_of_forecasts: 5
grid_options:
columns: full
hourly_forecast: true

This is my code, but as mentioned earlier, not happy with the hourly forecast. Would like to have a 5-day forecast instead of hourly forecast:

                      type: custom:vertical-stack-in-card
                      cards:
                        - type: custom:weather-card
                          entity: weather.huis_2
                          hourly_forecast: false
                          number_of_forecasts: 5
                          name: Tessenderlo

Kr,

Bart

Got this error?

It’s a bad indentation, your cards: should be right under type: custom:vertical-stack-in-card

How do you use the custom:vertical-stack-in-card?