Jump to content
  • Sign Up
Støtt hjemmeautomasjon.no!

Værmelding som tekst


stigvi

Recommended Posts

Slik blir det

 

  - platform: rest
    resource: https://api.met.no/weatherapi/textforecast/2.0/?forecast=landoverview
    name: textweather
    scan_interval: 21600
    value_template: '{{ (value_json.textforecast.time[0].forecasttype.location|selectattr("@id", "eq", "0611")|first)["#text"] }}'



Koden 0611 må endres til ditt eget område. Se i linken i posten ovenfor. (eller i linken til rest-sensor)

Edited by stigvi
  • Like 2
  • Thanks 2
Link to comment
Share on other sites

Har bare standard met-integrasjonen og likte denne godt, men hvordan henter jeg konfigurasjon fra met-integrasjonen?

 

Det var ikke så vanskelig. Bare å legge til weather.dittnavn på alle valg under card configuration..

 

Hvordan justerte du ned tekststørrelsen?

 

Edited by hjemmedude
Link to comment
Share on other sites

stigvi skrev (På 20.10.2022 den 6.53):

Slik blir det

 

  - platform: rest
    resource: https://api.met.no/weatherapi/textforecast/2.0/?forecast=landoverview
    name: textweather
    scan_interval: 21600
    value_template: '{{ (value_json.textforecast.time[0].forecasttype.location|selectattr("@id", "eq", "0611")|first)["#text"] }}'



Koden 0611 må endres til ditt eget område. Se i linken i posten ovenfor. (eller i linken til rest-sensor)

 

Får ikke denne til å virke.

image.thumb.png.54a4e68a1ffc3b47523a01ffde8c7aae.png

 

Lagt denne under "sensor"

- platform: rest
  resource: https://api.met.no/weatherapi/textforecast/2.0/?forecast=landoverview
  name: textweather
  scan_interval: 21600
  value_template: '{{ (value_json.textforecast.time[0].forecasttype.location|selectattr("@id", "eq", "0503")|first)["#text"] }}'

 

Hva gjør jeg feil?

 

Link to comment
Share on other sites

  • 1 month later...

Jeg har lagt til et truncate filter. HA kan ikke ha en tilstandsverdi som er lenger enn 255 tegn. Men attributter kan være lenger. Spørsmålet da er hvordan en henter denne teksten inn i en attributt? Men som en midlertidig fix blir teksten begrenset i lengde

 

  - platform: rest
    resource: https://api.met.no/weatherapi/textforecast/2.0/?forecast=landoverview
    name: textweather
    scan_interval: 3612
    value_template: '{{ (value_json.textforecast.time[0].forecasttype.location|selectattr("@id", "eq", "0611")|first)["#text"]|truncate(254,True) }}'

 

Link to comment
Share on other sites

  • 2 weeks later...

Lurer på det samme ift. å få lengre tekst inn. 

 

Et annet tips for Østlandet, er å bruke "match" i stede for "eq"

- platform: rest
  resource: https://api.met.no/weatherapi/textforecast/2.0/?forecast=landoverview
  name: textweather now
  scan_interval: 21600
  value_template: '{{ (value_json.textforecast.time[0].forecasttype.location|selectattr("@id", "match", "0503.*")|first)["#text"] |truncate(254,True)}}'

 

Link to comment
Share on other sites

  • 10 months later...
stigvi skrev (På 13.12.2022 den 8.06):

Jeg har lagt til et truncate filter. HA kan ikke ha en tilstandsverdi som er lenger enn 255 tegn. Men attributter kan være lenger. Spørsmålet da er hvordan en henter denne teksten inn i en attributt? Men som en midlertidig fix blir teksten begrenset i lengde

 

  - platform: rest
    resource: https://api.met.no/weatherapi/textforecast/2.0/?forecast=landoverview
    name: textweather
    scan_interval: 3612
    value_template: '{{ (value_json.textforecast.time[0].forecasttype.location|selectattr("@id", "eq", "0611")|first)["#text"]|truncate(254,True) }}'

 

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".

VM.png.33552e514b14ab0682ba96957692de90.png

 

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. 

 

 

Edited by Tander
  • Like 2
Link to comment
Share on other sites

Tander skrev (1 time siden):

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".

VM.png.33552e514b14ab0682ba96957692de90.png

 

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. 

 

 



Takk. Den som venter på noe godt, osv .....

  • Like 2
Link to comment
Share on other sites

  • 3 months later...

Jeg har de siste dagene ikke fått inn noen værmelding i HA. Slo på debugging på rest sensor og så at jeg fikk 403 (ikke tilgang, feil)

Jeg løste det med å legge til 

 

headers:
      User-Agent: Home Assistant REST sensor


Mulig de er blitt mer strikse og vil ha dette før de gir fra seg data.......

Link to comment
Share on other sites

Det stemmer. De har i dokumentasjonen angitt at brukere må identifisere seg, slik du har gjort. Kanskje greit å ikke bruke samme User-Agent navn ("Home Assistant", etc.).

 

Det som er rart er at jeg får 403 dersom User-Agent ikke er angitt under header fra Home Assistant, men det går helt greit å hente ut informasjonen fra nettleseren. Nå vet ikke jeg om nettleseren identifiserer seg, mulig det.

  • Like 1
Link to comment
Share on other sites

Tander skrev (14 minutter siden):

Det stemmer. De har i dokumentasjonen angitt at brukere må identifisere seg, slik du har gjort. Kanskje greit å ikke bruke samme User-Agent navn ("Home Assistant", etc.).

 

Det som er rart er at jeg får 403 dersom User-Agent ikke er angitt under header fra Home Assistant, men det går helt greit å hente ut informasjonen fra nettleseren. Nå vet ikke jeg om nettleseren identifiserer seg, mulig det.

Takk. Jeg har lagt til min epost adresse på min user-agent streng.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.