Hi Guys,
I’m currently experimenting with a pollen-rest-sensor feeded from “polleninformation.at” which gives a JSON-result. My current rest_senor configuration is as follows:
- name: pollen_report_klagenfurt_alternaria
unique_id: '7ab1d681-c43c-45bd-aed9-8241fb45ddce'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=23&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
scan_interval: 600
value_template: '{{ value_json.result.contamination[0].contamination_1 }}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
However - I don’t know how to “fix” that - it looks like the value of “contamination_1/2/3” get’s inserted as string at HA and not as an integer.
Do you guys have any ideas to fix that?
Cheers Flo
I did it another way - I made a template for better readability →
- name: pollen_report_klagenfurt_alternaria
unique_id: '7ab1d681-c43c-45bd-aed9-8241fb45ddce'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=23&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
Just for the records for anyone who want’s to use this as well in Austria. For sure you’ve to adapt the lat/long values in the URL if you want to have another city as Klagenfurt. Here is the configuration for all available Pollen-values from this service:
- name: pollen_report_klagenfurt_alternaria
unique_id: '7ab1d681-c43c-45bd-aed9-8241fb45ddce'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=23&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_ambrosia
unique_id: 'ba37ca74-3cd4-43bf-b8d3-848dd64fea08'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=6&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_cupressaceae
unique_id: 'f38c3e37-0610-479a-827e-3dd3839b62f2'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=17&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_alnus
unique_id: 'dec6752b-5444-4255-8d76-84e970888b7e'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=1&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_corylus
unique_id: '70908007-a814-4eac-b8c9-f5166932a315'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=3&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_fraxinus
unique_id: 'd3266144-1cc6-4169-b5e6-066a55c1f6eb'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=4&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_betula
unique_id: '725668f6-2582-4874-b996-afedfbbf324c'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=2&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_platanus
unique_id: '54a01331-abeb-4631-a38e-a3244df13593'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=16&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_poaceae
unique_id: 'a6795ac2-af47-44e6-88fc-2e613eca3470'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=5&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_secale
unique_id: 'f7a92206-15df-481b-9f21-1b899550d2cd'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=291&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_urticaceae
unique_id: '9a8cfa04-7361-45a6-b871-16cf420f6f42'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=15&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_olea
unique_id: '81a74482-bf0e-404b-a035-b85b0c75798b'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=18&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
- name: pollen_report_klagenfurt_artemisia
unique_id: '1e6790ee-898a-4f05-a260-9406e6abd168'
resource: 'https://www.polleninformation.at/index.php?eID=appinterface&pure_json=1&lang_code=de&lang_id=0&action=getFullContaminationData&type=gps&value[latitude]=46.628&value[longitude]=14.309&show_polls=7&country_id=1&personal_contamination=false&sensitivity=0&country=AT&sessionid='
platform: rest
icon: mdi:flower-pollen-outline
scan_interval: 600
value_template: '
{% if value_json.result.contamination[0].contamination_1 == 0 -%}Keine
{%- elif value_json.result.contamination[0].contamination_1 == 1 -%}Niedrig
{%- elif value_json.result.contamination[0].contamination_1 == 2 -%}Mittel
{%- elif value_json.result.contamination[0].contamination_1 == 3 -%}Hoch
{%- elif value_json.result.contamination[0].contamination_1 == 4 -%}Sehr Hoch
{%- endif %}'
json_attributes_path: "$.result.contamination[0]"
json_attributes:
- contamination_2
- contamination_3
- poll_title
8 Likes
bwth
(BWTH)
February 15, 2024, 3:50pm
5
Hi
that sound perfect, the sesaion is geting started
how can i bring the code into HA? should i paste it in the Yaml.config?
thanks
Hi @bwth ,
I‘ve put this onfig in my sensors.yaml.
Cheers
PS: I‘ve added this to my main dashboard with a custom:auto-entities code like this
- type: horizontal-stack
cards:
- type: custom:auto-entities
card:
square: false
columns: 2
type: grid
card_param: cards
filter:
include:
- entity_id: '*pollen_report*'
options:
type: tile
vertical: false
color: pink
exclude:
- state: Keine
- state: unknown
show_empty: true
Sure, you can strip down the yaml above to the pollen you are allergic to - makes sense I guess
3 Likes
bwth
(BWTH)
February 16, 2024, 7:39am
7
Danke für deine Hilfe,
lg aus Graz
1 Like
DaWuif
(Wolfgang König)
April 10, 2024, 6:54am
8
Hallo! Könntest du mir vl. dabei helfen, den Sensor einzurichten. Bin was Yaml betrifft nicht so gut drauf. -.- LG aus Graz
SteeeveAT
(Steeeve At)
April 13, 2024, 9:02am
9
Hi!
This is working like a charm. I want to take it a step further and want to color depending on the state
type: horizontal-stack
cards:
- type: custom:auto-entities
card:
square: false
columns: 2
type: grid
card_param: cards
filter:
include:
- entity_id: '*pollen_report*'
options:
type: tile
vertical: false
color: |
{% set state = states('this.entity_id') %}
{% if state == 'Sehr Hoch' %}
darkred
{% elif state == 'Hoch' %}
red
{% elif state == 'Niedrig' %}
orange
{% elif state == 'Keine' %}
yellow
{% else %}
green
{% endif %}
exclude:
- state: Keine
- state: unknown
show_empty: true
which sadly is not working.
I also tried the easier version with just a card an fixed entity
type: tile
entity: sensor.pollen_report_innsbruck_birke
color: >
{% set state = states('sensor.pollen_report_innsbruck_birke') %} {% if state
== 'Sehr Hoch' %}
blue
{% elif state == 'Hoch' %}
red
{% elif state == 'Niedrig' %}
orange
{% elif state == 'Keine' %}
yellow
{% else %}
green
{% endif %}
But also no luck!
Any ideas - really can’t find a solution.
Thanks in advance
Steeeve
Welche Hilfe brauchst du denn? LG
Maybe an conditional can be your solution? Like so:
type: horizontal-stack
cards:
- type: conditional
conditions:
- condition: state
entity: sensor.pollen_report_klagenfurt_betula
state: Niedrig
card:
type: tile
entity: sensor.pollen_report_klagenfurt_betula
color: green
- type: conditional
conditions:
- condition: state
entity: sensor.pollen_report_klagenfurt_betula
state: Sehr Hoch
card:
type: tile
entity: sensor.pollen_report_klagenfurt_betula
color: pink
- type: conditional
conditions:
- condition: state
entity: sensor.pollen_report_klagenfurt_betula
state: Hoch
card:
type: tile
entity: sensor.pollen_report_klagenfurt_betula
color: orange
I have reduced the output to pollen to which I am actually allergic, so that the configuration is not too complicated.
Configuration:
Result (now):
1 Like
SteeeveAT
(Steeeve At)
May 10, 2024, 5:29am
12
Thank you very much, this is an good solution! Sorry for late reply, didn’t get a notification about your answer!
1 Like
marioth1
(Marioth1)
July 7, 2024, 10:07pm
13
Hello @florianmulatz
how do you achieve that the attribute poll_title is used as title for the auto-entities lovelace item instead of the entityID ?
br
Mario
I’ll be honest - I don’t understand your question. What do you want to do?
Cheers Mate
malosaa
(Hector)
July 9, 2024, 9:45am
15
What about using the data from accuweather, u get detailed information about the pollen and health data.
if OP wants i can post the multiscrape code right here.
regards
marioth1
(Marioth1)
July 13, 2024, 11:48am
16
@florianmulatz in your screenshot in post 6 the tiles on your dashboard show the proper names (e.g. Erle (Alnus)). When I configure the code you posted as love-lace it looks like this, taking the sensor_id as caption for the tile
The JSON sensor you created also stores the value of poll_title as a json_attribute.
Somehwere a piece of configuration is missing to tell config:auto-entities to use this json_attribute as caption for the tile.
Ah now I got it … to be honest I’ve put the friendly-name manually into the entities
marioth1
(Marioth1)
July 27, 2024, 11:22am
18
understand, looks a bit different but with the following code and by involving “custom:template-entity-row” I have achieved to name it based on the JSON attribute (involves also a second set of sensors for the next-day forecast)
type: vertical-stack
cards:
- type: custom:auto-entities
card:
square: false
columns: 1
type: grid
title: Aktuell
card_param: cards
filter:
include:
- entity_id: '*pollen_report*current*'
sort:
method: attribute
attribute: contamination_1
reverse: true
options:
type: custom:template-entity-row
vertical: false
name: '{{ state_attr(config.entity, ''poll_title'') }}'
color: |
{% set state = states('this.entity_id') %}
{% if state == 'Sehr Hoch' %}
darkred
{% elif state == 'Hoch' %}
red
{% elif state == 'Mittel' %}
orange
{% elif state == 'Niedrig' %}
yellow
{% elif state == 'Keine' %}
green
{% else %}
green
{% endif %}
exclude:
- state: Keine
- state: unknown
show_empty: true
- type: custom:auto-entities
card:
square: false
columns: 1
type: grid
title: Vorhersage
card_param: cards
filter:
include:
- entity_id: '*pollen_report*forecast*'
sort:
method: attribute
attribute: contamination_2
reverse: true
options:
type: custom:template-entity-row
vertical: false
name: '{{ state_attr(config.entity, ''poll_title'') }}'
color: |
{% set state = states('this.entity_id') %}
{% if state == 'Sehr Hoch' %}
darkred
{% elif state == 'Hoch' %}
red
{% elif state == 'Mittel' %}
orange
{% elif state == 'Niedrig' %}
yellow
{% elif state == 'Keine' %}
green
{% else %}
green
{% endif %}
exclude:
- state: Keine
- state: unknown
show_empty: true
1 Like
Hi Guys,
Another way to sort this out. (I didn’t like the “custom:template-entity-row” way because it didn’t honor my theme-background - it just used a darker one and that didn’t fit into my dashboard )
Therefore I used a custom:mushroom-template-card now:
type: custom:auto-entities
card:
square: false
type: grid
columns: 2
card_param: cards
filter:
include:
- entity_id: '*pollen_report*'
options:
type: custom:mushroom-template-card
primary: '{{ state_attr(config.entity, ''poll_title'') }}'
secondary: '{{ states(config.entity) }}'
icon: mdi:flower-pollen-outline
tap_action: none
icon_color: |
{% set contamination = state_attr(config.entity, 'contamination_2') %}
{% if contamination == 3 %}
red
{% elif contamination == 2 %}
red
{% elif contamination == 1 %}
yellow
{% else %}
default
{% endif %}
exclude:
- state: Keine
- state: unknown
show_empty: false
sort:
method: state
Have fun guys!
rene.h
(Rene H)
October 9, 2024, 5:49am
20
Hey, muss ich für diesen Sensor irgendwas in Hone Assistant einrichten? Ich bekomm das einfach nicht zum laufen