Pollen (again) but for the UK

Tags: #<Tag:0x00007fc41f2f5fb8> #<Tag:0x00007fc41f2f5c98>

There are very many pollen threads on the community but I couldn’t find a decent one providing pollen count for the UK. Tado introduced an air quality report some time ago and a quick poke around their web app revealed the API calls to get the data.

Simple authenticated rest call to get the JSON plus some template sensors to get the air quality for today plus pollen levels for today, tomorrow and the after. They also provide pollution levels in the json response but would be easy enough to add these as additional sensors.

You’ll need your tado home ID, lat & long plus your tado username and password

  - platform: rest
    # API call to get air quality
    # Result goes into outdoorQuality attribute in JSON format
    name: TadoAir
    verify_ssl: true
    scan_interval: 1800
    resource: https://acme.tado.com/v1/homes/XXX/airComfort?latitude=XXX1&longitude=XXXX&username=XXXXX&password=XXXXXXXXXXXXXXXXXX
      User-Agent: Home Assistant
      Content-Type: application/json
    method: GET
      - roomMessages
      - outdoorQuality
    value_template: 'Tado airComfort'

  # Enumerate JSON to populate various template sensors
  - platform: template
        value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["aqi"]["level"]  | capitalize }}'
        friendly_name: "Air Quality"
        icon_template: mdi:air-filter

      # Pollen sensors
        value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pollens"]["dominant"]["level"]  | capitalize }}'
        friendly_name: "Pollen Level"
        icon_template: mdi:flower

        value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pollens"]["types"][0]["forecast"][0]["level"] | capitalize }}'
        friendly_name: "Pollen Level Grass"
        icon_template: mdi:flower

        value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pollens"]["types"][0]["forecast"][1]["level"] | capitalize  }}'
        friendly_name: "Pollen Level Grass Tomorrow"
        icon_template: mdi:flower

        value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pollens"]["types"][1]["forecast"][0]["level"] | capitalize  }}'
        friendly_name: "Pollen Level Weed"
        icon_template: mdi:sprout

        value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pollens"]["types"][1]["forecast"][1]["level"] | capitalize  }}'
        friendly_name: "Pollen Level Weed Tomorrow"
        icon_template: mdi:sprout

        value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pollens"]["types"][2]["forecast"][0]["level"] | capitalize  }}'
        friendly_name: "Pollen Level Tree"
        icon_template: mdi:tree

        value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pollens"]["types"][2]["forecast"][1]["level"]  | capitalize }}'
        friendly_name: "Pollen Level Tree Tomorrow"
        icon_template: mdi:tree


Great piece of work - many thanks!

I’ve set up a tado account to try this but I get "User is not authorized to access this resource with an explicit deny" when I try the GET.

Where do I find the Home ID, I’ve tried the name of “Home” in settings ?

EDIT: looking at the API I think you need devices set up for this to work ?

you can find out your home ID by issuing the rest call


the value will be under [“homes”][0][“id”]

Not sure what other Tado kit you need for this to work. I’m fully bought into the system with boiler control and TRVs

That worked, I’ve got no devices, thanks

@drillbit This has stopped working for me, is it stiil working for you ?

Yes - still working for me. Possibly stopped working for you if you don’t have any Tado kit

I’m trying to use this as Tado seems to have a better Pollen prediction than anything else I can find.
The code above works fine, but the API call seems to return data that’s a day old. Today (Sat) it returns info for Today, Sat and Sun whereas it should be Today, Sun and Mon.

So, using this API I get:

Today (Medium), Sat (Medium), Sun (High)

With the phone app I get:

Today (Medium), Sun (High), Mon (High)

It looks like it’s the API, not your code as the raw API results match this. Any ideas?

Just in case anyone is interested, I raised a change for the Node-Red tado client to include the detailed pollen info and it’s been added into the latest release. This seems to match what is shown in the Tado app and should now be easy to use this to create/update entities in Hass.