66 lines
2.6 KiB
Nix
66 lines
2.6 KiB
Nix
{ pkgs, lib, ... }:
|
|
with lib;
|
|
let
|
|
region = "112";
|
|
types = [
|
|
"Erle"
|
|
"Beifuss"
|
|
"Ambrosia"
|
|
"Birke"
|
|
"Esche"
|
|
"Hasel"
|
|
"Graeser"
|
|
"Roggen"
|
|
];
|
|
gen_tomorrow_sensor = type: {
|
|
name = "dwd_pollenbelastung_${toLower type}_tomorrow";
|
|
value = {
|
|
icon_template = "mdi:grass";
|
|
friendly_name = "${type} Morgen";
|
|
value_template = "{{ state_attr('sensor.dwd_pollenbelastung_${toLower type}', 'tomorrow') }}";
|
|
};
|
|
};
|
|
gen_sensor = type: {
|
|
name = "dwd_pollenbelastung_${toLower type}";
|
|
value = {
|
|
icon_template = "mdi:tree-outline";
|
|
friendly_name = type;
|
|
value_template = ''
|
|
{% set dwd_state = state_attr('sensor.dwd_pollenbelastung_stuttgart', '${type}')['today'] %}
|
|
{% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
|
|
'';
|
|
attribute_templates.today = ''
|
|
{% set dwd_state = state_attr('sensor.dwd_pollenbelastung_stuttgart', '${type}')['today'] %}
|
|
{% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
|
|
'';
|
|
attribute_templates.tomorrow = ''
|
|
{% set dwd_state = state_attr('sensor.dwd_pollenbelastung_stuttgart', '${type}')['tomorrow'] %}
|
|
{% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
|
|
'';
|
|
# -1 == unknown
|
|
#attribute_templates.dayafter = ''
|
|
# {% set dwd_state = state_attr('sensor.dwd_pollenbelastung', '${type}')['dayafter_to'] %}
|
|
# {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% elif dwd_state == "-1"%}-1{% else %}0{% endif %}
|
|
#'';
|
|
};
|
|
};
|
|
in
|
|
{
|
|
services.home-assistant.config.sensor = [
|
|
{
|
|
platform = "rest";
|
|
scan_interval = 3600;
|
|
name = "DWD Pollenbelastung Stuttgart";
|
|
resource = "https://opendata.dwd.de/climate_environment/health/alerts/s31fg.json";
|
|
json_attributes_path = "$..content[?(@.partregion_id==${region})].Pollen";
|
|
json_attributes = types;
|
|
value_template = "{{ value_json.last_update }}";
|
|
}
|
|
{
|
|
platform = "template";
|
|
sensors = (listToAttrs (map gen_sensor types)) //
|
|
(listToAttrs (map gen_tomorrow_sensor types)) ;
|
|
}
|
|
];
|
|
}
|