Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tekstitv_401:
- sensor:
- - platform: rest
- name: tekstitv_401_p1a
- resource: https://yle.fi/tekstitv/txt/401_0001.htm
- headers:
- User-Agent: "Mozilla/5.0"
- Accept-Language: "fi-FI, fi;q=0.9"
- timeout: 20
- scan_interval: 900
- value_template: >-
- {% set raw = value | default('', true) %}
- {% set pre = raw | regex_findall_index('(?is)<pre[^>]*>(.*?)</pre>', 0) | default('', true) %}
- {% set t = pre
- | regex_replace('-\\s*\\n', '')
- | regex_replace(' ', ' ')
- | regex_replace('ä', 'ä') | regex_replace('Ä', 'Ä')
- | regex_replace('ö', 'ö') | regex_replace('Ö', 'Ö')
- | regex_replace('å', 'å') | regex_replace('Å', 'Å')
- | regex_replace('&', '&')
- | regex_replace('\\r', '')
- | regex_replace('[ \\t]+', ' ')
- | regex_replace('\\n\\s*\\n', '\n')
- | trim %}
- {% set low = t | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa',
- 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}
- {% set s = i %}
- {% endif %}
- {% endfor %}
- {% set e = low.find('liikennesää', s if s!=-1 else 0) %}
- {% set picked = s!=-1 and e!=-1 and e>s and t[s:e] or s!=-1 and t[s:] or '' %}
- {{ picked[:200] | trim }}
- - platform: rest
- name: tekstitv_401_p1b
- resource: https://yle.fi/tekstitv/txt/401_0001.htm
- headers:
- User-Agent: "Mozilla/5.0"
- Accept-Language: "fi-FI, fi;q=0.9"
- timeout: 20
- scan_interval: 900
- value_template: >-
- {% set raw = value | default('', true) %}
- {% set pre = raw | regex_findall_index('(?is)<pre[^>]*>(.*?)</pre>', 0) | default('', true) %}
- {% set t = pre
- | regex_replace('-\\s*\\n', '')
- | regex_replace(' ', ' ')
- | regex_replace('ä', 'ä') | regex_replace('Ä', 'Ä')
- | regex_replace('ö', 'ö') | regex_replace('Ö', 'Ö')
- | regex_replace('å', 'å') | regex_replace('Å', 'Å')
- | regex_replace('&', '&')
- | regex_replace('\\r', '')
- | regex_replace('[ \\t]+', ' ')
- | regex_replace('\\n\\s*\\n', '\n')
- | trim %}
- {% set low = t | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa',
- 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}
- {% set s = i %}
- {% endif %}
- {% endfor %}
- {% set e = low.find('liikennesää', s if s!=-1 else 0) %}
- {% set picked = s!=-1 and e!=-1 and e>s and t[s:e] or s!=-1 and t[s:] or '' %}
- {{ picked[200:400] | trim }}
- - platform: rest
- name: tekstitv_401_p1c
- resource: https://yle.fi/tekstitv/txt/401_0001.htm
- headers:
- User-Agent: "Mozilla/5.0"
- Accept-Language: "fi-FI, fi;q=0.9"
- timeout: 20
- scan_interval: 900
- value_template: >-
- {% set raw = value | default('', true) %}
- {% set pre = raw | regex_findall_index('(?is)<pre[^>]*>(.*?)</pre>', 0) | default('', true) %}
- {% set t = pre
- | regex_replace('-\\s*\\n', '')
- | regex_replace(' ', ' ')
- | regex_replace('ä', 'ä') | regex_replace('Ä', 'Ä')
- | regex_replace('ö', 'ö') | regex_replace('Ö', 'Ö')
- | regex_replace('å', 'å') | regex_replace('Å', 'Å')
- | regex_replace('&', '&')
- | regex_replace('\\r', '')
- | regex_replace('[ \\t]+', ' ')
- | regex_replace('\\n\\s*\\n', '\n')
- | trim %}
- {% set low = t | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa',
- 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}
- {% set s = i %}
- {% endif %}
- {% endfor %}
- {% set e = low.find('liikennesää', s if s!=-1 else 0) %}
- {% set picked = s!=-1 and e!=-1 and e>s and t[s:e] or s!=-1 and t[s:] or '' %}
- {{ picked[400:600] | trim }}
- - platform: rest
- name: tekstitv_401_p2a
- resource: https://yle.fi/tekstitv/txt/401_0002.htm
- headers:
- User-Agent: "Mozilla/5.0"
- Accept-Language: "fi-FI, fi;q=0.9"
- timeout: 20
- scan_interval: 900
- value_template: >-
- {% set raw = value | default('', true) %}
- {% set pre = raw | regex_findall_index('(?is)<pre[^>]*>(.*?)</pre>', 0) | default('', true) %}
- {% set t = pre
- | regex_replace('-\\s*\\n', '')
- | regex_replace(' ', ' ')
- | regex_replace('ä', 'ä') | regex_replace('Ä', 'Ä')
- | regex_replace('ö', 'ö') | regex_replace('Ö', 'Ö')
- | regex_replace('å', 'å') | regex_replace('Å', 'Å')
- | regex_replace('&', '&')
- | regex_replace('\\r', '')
- | regex_replace('[ \\t]+', ' ')
- | regex_replace('\\n\\s*\\n', '\n')
- | trim %}
- {% set low = t | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa',
- 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}
- {% set s = i %}
- {% endif %}
- {% endfor %}
- {% set e = low.find('liikennesää', 0) %}
- {% set picked = s!=-1 and e!=-1 and e>s and t[s:e]
- or s!=-1 and t[s:]
- or e!=-1 and t[:e]
- or '' %}
- {{ picked[:200] | trim }}
- - platform: rest
- name: tekstitv_401_p2b
- resource: https://yle.fi/tekstitv/txt/401_0002.htm
- headers:
- User-Agent: "Mozilla/5.0"
- Accept-Language: "fi-FI, fi;q=0.9"
- timeout: 20
- scan_interval: 900
- value_template: >-
- {% set raw = value | default('', true) %}
- {% set pre = raw | regex_findall_index('(?is)<pre[^>]*>(.*?)</pre>', 0) | default('', true) %}
- {% set t = pre
- | regex_replace('-\\s*\\n', '')
- | regex_replace(' ', ' ')
- | regex_replace('ä', 'ä') | regex_replace('Ä', 'Ä')
- | regex_replace('ö', 'ö') | regex_replace('Ö', 'Ö')
- | regex_replace('å', 'å') | regex_replace('Å', 'Å')
- | regex_replace('&', '&')
- | regex_replace('\\r', '')
- | regex_replace('[ \\t]+', ' ')
- | regex_replace('\\n\\s*\\n', '\n')
- | trim %}
- {% set low = t | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa',
- 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}
- {% set s = i %}
- {% endif %}
- {% endfor %}
- {% set e = low.find('liikennesää', 0) %}
- {% set picked = s!=-1 and e!=-1 and e>s and t[s:e]
- or s!=-1 and t[s:]
- or e!=-1 and t[:e]
- or '' %}
- {{ picked[200:400] | trim }}
- - platform: rest
- name: tekstitv_401_p2c
- resource: https://yle.fi/tekstitv/txt/401_0002.htm
- headers:
- User-Agent: "Mozilla/5.0"
- Accept-Language: "fi-FI, fi;q=0.9"
- timeout: 20
- scan_interval: 900
- value_template: >-
- {% set raw = value | default('', true) %}
- {% set pre = raw | regex_findall_index('(?is)<pre[^>]*>(.*?)</pre>', 0) | default('', true) %}
- {% set t = pre
- | regex_replace('-\\s*\\n', '')
- | regex_replace(' ', ' ')
- | regex_replace('ä', 'ä') | regex_replace('Ä', 'Ä')
- | regex_replace('ö', 'ö') | regex_replace('Ö', 'Ö')
- | regex_replace('å', 'å') | regex_replace('Å', 'Å')
- | regex_replace('&', '&')
- | regex_replace('\\r', '')
- | regex_replace('[ \\t]+', ' ')
- | regex_replace('\\n\\s*\\n', '\n')
- | trim %}
- {% set low = t | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa',
- 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}
- {% set s = i %}
- {% endif %}
- {% endfor %}
- {% set e = low.find('liikennesää', 0) %}
- {% set picked = s!=-1 and e!=-1 and e>s and t[s:e]
- or s!=-1 and t[s:]
- or e!=-1 and t[:e]
- or '' %}
- {{ picked[400:600] | trim }}
- - platform: rest
- name: tekstitv_401_p3a
- resource: https://yle.fi/tekstitv/txt/401_0003.htm
- headers:
- User-Agent: "Mozilla/5.0"
- Accept-Language: "fi-FI, fi;q=0.9"
- timeout: 20
- scan_interval: 900
- value_template: >-
- {% set raw = value | default('', true) %}
- {% set pre = raw | regex_findall_index('(?is)<pre[^>]*>(.*?)</pre>', 0) | default('', true) %}
- {% set t = pre
- | regex_replace('-\\s*\\n', '')
- | regex_replace(' ', ' ')
- | regex_replace('ä', 'ä') | regex_replace('Ä', 'Ä')
- | regex_replace('ö', 'ö') | regex_replace('Ö', 'Ö')
- | regex_replace('å', 'å') | regex_replace('Å', 'Å')
- | regex_replace('&', '&')
- | regex_replace('\\r', '')
- | regex_replace('[ \\t]+', ' ')
- | regex_replace('\\n\\s*\\n', '\n')
- | trim %}
- {% set low = t | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa',
- 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}
- {% set s = i %}
- {% endif %}
- {% endfor %}
- {% set e = low.find('liikennesää', 0) %}
- {% set picked = s!=-1 and e!=-1 and e>s and t[s:e]
- or e!=-1 and t[:e]
- or '' %}
- {{ picked[:200] | trim }}
- - platform: rest
- name: tekstitv_401_p3b
- resource: https://yle.fi/tekstitv/txt/401_0003.htm
- headers:
- User-Agent: "Mozilla/5.0"
- Accept-Language: "fi-FI, fi;q=0.9"
- timeout: 20
- scan_interval: 900
- value_template: >-
- {% set raw = value | default('', true) %}
- {% set pre = raw | regex_findall_index('(?is)<pre[^>]*>(.*?)</pre>', 0) | default('', true) %}
- {% set t = pre
- | regex_replace('-\\s*\\n', '')
- | regex_replace(' ', ' ')
- | regex_replace('ä', 'ä') | regex_replace('Ä', 'Ä')
- | regex_replace('ö', 'ö') | regex_replace('Ö', 'Ö')
- | regex_replace('å', 'å') | regex_replace('Å', 'Å')
- | regex_replace('&', '&')
- | regex_replace('\\r', '')
- | regex_replace('[ \\t]+', ' ')
- | regex_replace('\\n\\s*\\n', '\n')
- | trim %}
- {% set low = t | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa',
- 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}
- {% set s = i %}
- {% endif %}
- {% endfor %}
- {% set e = low.find('liikennesää', 0) %}
- {% set picked = s!=-1 and e!=-1 and e>s and t[s:e]
- or e!=-1 and t[:e]
- or '' %}
- {{ picked[200:400] | trim }}
- - platform: rest
- name: tekstitv_401_p3c
- resource: https://yle.fi/tekstitv/txt/401_0003.htm
- headers:
- User-Agent: "Mozilla/5.0"
- Accept-Language: "fi-FI, fi;q=0.9"
- timeout: 20
- scan_interval: 900
- value_template: >-
- {% set raw = value | default('', true) %}
- {% set pre = raw | regex_findall_index('(?is)<pre[^>]*>(.*?)</pre>', 0) | default('', true) %}
- {% set t = pre
- | regex_replace('-\\s*\\n', '')
- | regex_replace(' ', ' ')
- | regex_replace('ä', 'ä') | regex_replace('Ä', 'Ä')
- | regex_replace('ö', 'ö') | regex_replace('Ö', 'Ö')
- | regex_replace('å', 'å') | regex_replace('Å', 'Å')
- | regex_replace('&', '&')
- | regex_replace('\\r', '')
- | regex_replace('[ \\t]+', ' ')
- | regex_replace('\\n\\s*\\n', '\n')
- | trim %}
- {% set low = t | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa',
- 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}
- {% set s = i %}
- {% endif %}
- {% endfor %}
- {% set e = low.find('liikennesää', 0) %}
- {% set picked = s!=-1 and e!=-1 and e>s and t[s:e]
- or e!=-1 and t[:e]
- or '' %}
- {{ picked[400:600] | trim }}
- template:
- - sensor:
- - name: saa_pohjoisosat_tekstitv_osa1
- state: >-
- {% set parts = [
- states('sensor.tekstitv_401_p1a'), states('sensor.tekstitv_401_p1b'), states('sensor.tekstitv_401_p1c'),
- states('sensor.tekstitv_401_p2a'), states('sensor.tekstitv_401_p2b'), states('sensor.tekstitv_401_p2c'),
- states('sensor.tekstitv_401_p3a'), states('sensor.tekstitv_401_p3b'), states('sensor.tekstitv_401_p3c')
- ] %}
- {% set cleaned = parts | reject('in', ['unknown','unavailable','ei tilaa','']) | list %}
- {% set raw = cleaned | join('') %}
- {% if not raw %} ei saatavilla {% else %}
- {% set t = raw
- | regex_replace('(?i)\\b\\d+/\\d+\\b', '')
- | regex_replace('(?i)ilmatieteen\\s+laitos\\s+\\d{1,2}\\.\\d{1,2}\\.?', '')
- | regex_replace('(?i)säätiedotus\\s+klo\\s*\\d{1,2}', '')
- %}
- {% set low = t | lower %}
- {% set e = low.find('liikennesää') %}
- {% set upto = (t[:e] if e != -1 else t) %}
- {% set low2 = upto | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa', 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low2.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}{% set s = i %}{% endif %}
- {% endfor %}
- {% set text = (upto[s:] if s != -1 else upto)
- | regex_replace('\\s+',' ')
- | trim %}
- {% set p1 = text[:200] | trim %}
- {% set p2 = text[200:400] | trim %}
- {{ p1 ~ (' (jatkuu...)' if p2 else '') if p1 else 'ei saatavilla' }}
- {% endif %}
- - name: saa_pohjoisosat_tekstitv_osa2
- state: >-
- {% set parts = [
- states('sensor.tekstitv_401_p1a'), states('sensor.tekstitv_401_p1b'), states('sensor.tekstitv_401_p1c'),
- states('sensor.tekstitv_401_p2a'), states('sensor.tekstitv_401_p2b'), states('sensor.tekstitv_401_p2c'),
- states('sensor.tekstitv_401_p3a'), states('sensor.tekstitv_401_p3b'), states('sensor.tekstitv_401_p3c')
- ] %}
- {% set cleaned = parts | reject('in', ['unknown','unavailable','ei tilaa','']) | list %}
- {% set raw = cleaned | join('') %}
- {% if not raw %} '' {% else %}
- {% set t = raw
- | regex_replace('(?i)\\b\\d+/\\d+\\b', '')
- | regex_replace('(?i)ilmatieteen\\s+laitos\\s+\\d{1,2}\\.\\d{1,2}\\.?', '')
- | regex_replace('(?i)säätiedotus\\s+klo\\s*\\d{1,2}', '')
- %}
- {% set low = t | lower %}
- {% set e = low.find('liikennesää') %}
- {% set upto = (t[:e] if e != -1 else t) %}
- {% set low2 = upto | lower %}
- {% set starts = [
- 'koillismaalla ja lapissa:', 'koillismaalla sekä lapissa:',
- 'lapissa:', 'lapissa',
- 'meri-lapissa:', 'meri-lapissa', 'merilapissa:', 'merilapissa',
- 'pohjoisessa:', 'pohjoisessa',
- 'maan pohjoisosassa:', 'maan pohjoisosassa'
- ] %}
- {% set s = -1 %}
- {% for k in starts %}
- {% set i = low2.find(k) %}
- {% if i != -1 and (s == -1 or i < s) %}{% set s = i %}{% endif %}
- {% endfor %}
- {% set text = (upto[s:] if s != -1 else upto)
- | regex_replace('\\s+',' ')
- | trim %}
- {% if text | length <= 200 %} '' {% else %} {{ text[200:400] | trim }} {% endif %}
- {% endif %}
Advertisement
Add Comment
Please, Sign In to add comment