Environment Canada

The Environment Canada integration provides meteorological data for Canadian locations from Environment and Climate Change Canada.


Adding Environment Canada to your Home Assistant instance can be done via the user interface, by using this My button:

Manual configuration steps

Location Selection

The integration automatically determines the closest weather station based on the latitude and longitude specified. If integration-specific coordinates are not provided, the coordinates configured for Home Assistant are used.

You can also specify a weather station to use by providing a identification code of the form AB/s0000123, based on those listed in this CSV file.


The integration will create the entities listed below.

Note that many of the entities, such as radar imagery and hourly forecasts, are disabled by default and can be enabled via the Entity status settings available through the Configuration / Entities screen.


  • Current conditions and daily forecast
  • Current conditions and hourly forecast


  • Loop of radar imagery from the last 3 hours

By default, the radar entity uses the rain layer from 1 April to 30 November and the snow layer from 1 December to 31 March.


Conditions and Forecasts

  • Current condition
  • Forecast summary
  • Icon code of current condition
  • Barometric pressure
  • Pressure tendency
  • Humidity
  • Visibility
  • UV index


  • Temperature
  • Forecast high temperature
  • Forecast low temperature
  • Dewpoint
  • Wind chill (only at temperatures below 0ºC)
  • Humidex (only at temperatures above 19ºC)


  • Wind speed
  • Wind gust
  • Wind direction
  • Wind bearing


  • Probability of precipitation
  • Precipitation yesterday


  • Warnings
  • Watches
  • Advisories
  • Statements
  • Endings

The alert sensors use the number of current alerts as their state, with an attribute containing the title of each alert.

Template Sensors

The configuration snippet below adds a useful template sensors showing the current “feels like” temperature among air temperature, humidex, and wind chill.

Replace NAME with the name used to configure your integration.

  - sensor:
    - name: "Feels Like"
      device_class: temperature
      unit_of_measurement: "°C"
      state: >
        {% if not is_state('sensor.NAME_humidex', 'unknown') %}
          {{ states('sensor.NAME_humidex') }}
        {% elif not is_state('sensor.NAME_wind_chill', 'unknown') %}
          {{ states('sensor.NAME_wind_chill') }}
        {% else %}
          {{ states('sensor.NAME_temperature') | round(0) }}
        {% endif %}


Service environment_canada.set_radar_type

Sets the type of radar to retrieve for the camera.

Service data attribute Optional Description
entity_id yes Camera to set the radar type for.
radar_type no One of “Auto”, “Rain”, or “Snow”.