Her er løsningen for å hente ut værmeldingen som en attributt:
- platform: rest
resource: https://api.met.no/weatherapi/textforecast/2.0/?forecast=landoverview
name: textweather text
scan_interval: 180
json_attributes_path: '$.textforecast.time[0].forecasttype.location[?("Øst" in @["\x40name"])]'
value_template: '1'
json_attributes:
- '@id'
- '@name'
- '#text'
I eksempelet ovenfor blir værmeldingsteksten lagt til attributt sensor.textweather_text.#text.
Attributten @name angir området og @id id-nummeret. Jeg har valgt å søke på områdenavnet og bruker "Øst" og "\x40name" i json_attributes_path, da dekkes både Østlandet og Østafjells avhengig av hva meteorologen velger å angi. Dersom det er ønskelig å søke på id-nummer i stedet byttes "Øst" ut med id-nummer og "\x40name" med "\x40id".
Deretter legger jeg værmeldingsteksten ut i flere sensorer, en for hver linje:
- platform: template
sensors:
weather_summary1:
value_template: >-
{% set t= (state_attr('sensor.textweather_text','#text') | wordwrap(42, true,"§")).split("§")[0] %}
{{t}}
weather_summary2:
value_template: >-
{% set t= (state_attr('sensor.textweather_text','#text') | wordwrap(42, true,"§")).split("§")[1] %}
{{t}}
osv..
I eksempelet over er lengden på tekstlinjen angitt i "wordwrap(42, true,"§")" hvor 42 angir antall tegn/lengde på tekstlinjen.