I’m having issues with a template sensor that needs attributes.
sensor:
- platform: template
sensors:
matsedel_backaskolan_skarmanpassad:
friendly_name: "Matsedel Backaskolan skärmanpassad"
value_template: "1"
attribute_templates: >-
{%- set ns = namespace(json = {}, str = "") %}
{% set day = [ "Mån","Tis", "Ons", "Tors", "Fre" ]%}
{% for days in state_attr('sensor.matsedel_backaskolan_1', 'WeekState')['Days'] %}
{% set ns.str = "" %}
{% for meals in days["Meals"]%}
{% set ns.str = ns.str + " eller " + meals.name %}
{%- endfor %}
{% set ns.json = dict(ns.json, **{ day[loop.index-1] + "dag": ns.str[7:] }) %}
{%- endfor %}
{% set ns.json = dict({"0":ns.json}) %}
{%- set ns2 = namespace(json = {}, str = "") %}
{% for days in state_attr('sensor.matsedel_backaskolan_2', 'WeekState')['Days'] %}
{% set ns2.str = "" %}
{% for meals in days["Meals"]%}
{% set ns2.str = ns2.str + " eller " + meals.name %}
{%- endfor %}
{% set ns2.json = dict(ns2.json, **{ day[loop.index-1] + "dag": ns2.str[7:] }) %}
{%- endfor %}
{% set ns2.json = dict({"1":ns2.json}) %}
{{ (ns.json, ns2.json) | list}}
The output of them is:
[
{
"0": {
"Måndag": "Pastasås med kyckling och tomat eller Pastasås med soltorkade tomater och örter",
"Tisdag": "Potatisbullar med keso eller Potatisbullar med rökt hönskött eller Blodpudding",
"Onsdag": "Tomatsoppa med pasta serveras med hummus och bröd eller Dal Tikka Masala serveras med kornris",
"Torsdag": "Chili sin carne serveras med bulgur eller Chili con carne serveras med bulgur",
"Fredag": "Fisknuggets med kall mangosås och ris eller Vegonuggets med kall mangosås och ris"
}
},
{
"1": {
"Måndag": "Vi servar alltid kyckling från svenska gårdar! eller Indonesisk kycklingrätt med curry och mangochutney samt bulgur eller Veggie Penang serveras med bulgur",
"Tisdag": "Paprikasoppa med pasta serveras med färskost och bröd eller Potatis och broccoligratäng",
"Onsdag": "Fransk korvgryta serveras med bulgur eller Mexikansk böngryta serveras med bulgur",
"Torsdag": "Fiskfilé Bordelaise med potatismos eller Panerad stekt sillflundra eller Kikärtsbiff serveras med potatismos",
"Fredag": "Spaghetti med köttfärssås av nötfärs eller Spaghetti med bönfärssås eller Med kött från Sverige!"
}
}
]
I get this error:
Configuration warnings
Invalid config for ‘template’ from integration ‘sensor’ at configuration.yaml, line 842: expected a dictionary for dictionary value ‘sensors->matsedel_backaskolan_skarmanpassad->attribute_templates’, got '{%- set ns = namespace(json = {}, str = “”) %}\n {% set day = [ “Mån”,“Tis”, “Ons”, “Tors”, “Fre” ]%}\n {% for days in state_attr('sensor.matsedel_backaskolan_1', 'WeekState')['Days'] %}\n {% set ns.str = “” %}\n {% for meals in days[“Meals”]%} \n {% set ns.str = ns.str + " eller " + meals.name %}\n {%- endfor %} \n {% set ns.json = dict(ns.json, **{ day[loop.index-1] + “dag”: ns.str[7:] }) %}\n {%- endfor %}\n \n {% set ns.json = dict({“0”:ns.json}) %}\n \n …
I have also tried replacing the last line with:
"0": {{ ns.json }}
"1": {{ ns2.json}}
What have I done wrong?
I also tried following this example here:
Template - Home Assistant