Scrape počasí z ČHMÚ

Odpovědět
hnzcz
Nováček na fóru
Nováček na fóru
Příspěvky: 4
Registrován: 11. září 2023, 11:55
Dal poděkování: 3 poděkování

Scrape počasí z ČHMÚ

Příspěvek od hnzcz »

Ahoj, rád bych aby mi assistent skrze české TTS přečetl počasí a hledám věrohodný zdroj dat.

Našel jsem data poskytovaná ČHMÚ, pro Prahu například zde: https://www.chmi.cz/files/portal/docs/m ... /p_ph.html akorát mám problém se Scrapováním dat, potažmo jejich kódováním a nehnu s tím. Nezkoušel to už někdo tady?

Dle JS na stránce, odkud se data načítají např.: https://www.chmi.cz/predpovedi/predpove ... raje/praha, se používá kódovávání windows-1250. Našel jsem si i tabulku výčtu jazykových sad pro Python: https://docs.python.org/3/library/codec ... -encodings ale ať zadávám co zadávám do nastavení Scrape, pokaždé dostanu takový výstup:
chmi.png

Uživatelský avatar
okoun
Pokročilý
Pokročilý
Příspěvky: 413
Registrován: 30. prosinec 2022, 21:19
Dal poděkování: 9 poděkování
Dostal poděkování: 3 poděkování

Re: Scrape počasí z ČHMÚ

Příspěvek od okoun »


hnzcz
Nováček na fóru
Nováček na fóru
Příspěvky: 4
Registrován: 11. září 2023, 11:55
Dal poděkování: 3 poděkování

Re: Scrape počasí z ČHMÚ

Příspěvek od hnzcz »

Je, ale to mi nevrátí slovní vyjádření počasí, max. jednoslovné "oblačno" apod. Mým cílem je vytěžit celou předpověď z ČHMÚ a nechat si ji přečíst. Aktuální počasí mám takové, ale je to děsně strojové:

Kód: Vybrat vše

{% set days = ["pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota", "neděle"] %}
{% set months = ["ledna", "února", "března", "dubna", "května", "června", "července", "srpna", "září", "října", "listopadu", "prosince"] %}
    
Dnes je {{ days[now().isoweekday()-1] }}, {{ now().day }}. {{ months[now().month-1] }}, {{ now().hour }} hodin a {{ now().minute }} minut. Aktulní teplota je {{ state_attr('weather.accuweather', 'temperature') | int }} stupňů, pociťová {{ states('sensor.accuweather_realfeel_temperature') | replace('.', ' celá ') }} stupňů celsia. UV index je na stupni {{ state_attr('weather.accuweather', 'uv_index') }}, oblačnost pokrývá {{ state_attr('weather.accuweather', cloud_coverage') }} procent oblohy. Dnes bude od {{ states('sensor.accuweather_realfeel_temperature_min_0d') | int }} do {{ states('sensor.accuweather_realfeel_temperature_max_0d') | int }} stupňů a zítřejší teploty budou od {{ states('sensor.accuweather_realfeel_temperature_min_1d') | int }} do {{ states('sensor.accuweather_realfeel_temperature_max_1d') | int }} stupňů Celsia.
Výsledkem je, že mi TTS Antonín řekne:
Dnes je pondělí, 11. září, 14 hodin a 46 minut. Aktulní teplota je 27 stupňů, pociťová 29 celá 5 stupňů celsia. UV index je na stupni 3, oblačnost pokrývá 50 procent oblohy. Dnes bude od 15 do 30 stupňů a zítřejší teploty budou od 15 do 30 stupňů Celsia.
Tak bych to rád překopal na rozumně psaný text z ČHMÚ. Jediné, přes co se nedostanu je ten encoding. :-(

strjan
Pokročilý
Pokročilý
Příspěvky: 170
Registrován: 13. červenec 2023, 16:04
Dal poděkování: 12 poděkování
Dostal poděkování: 3 poděkování

Re: Scrape počasí z ČHMÚ

Příspěvek od strjan »

Antonín? Ja mám jen Jiříka... Tak radši používám nějaké děvče z UK a trénuju angličtinu :-D

kiklhorn
Moderátor
Moderátor
Příspěvky: 739
Registrován: 03. červenec 2021, 18:35
Dal poděkování: 84 poděkování
Dostal poděkování: 175 poděkování

Re: Scrape počasí z ČHMÚ

Příspěvek od kiklhorn »

Napadlo mne tohle řešení - načíst jako binár buffer, prohnat přes iconv do UTF8 a nascrapovat lokálně na IP adrese HA..

Hoď si tohle do Node-Red:
convert.jpg

Kód: Vybrat vše

[{"id":"7d6bccc7c58f5b2f","type":"tab","label":"PocasiPraha","disabled":false,"info":"","env":[]},{"id":"5d54f49b856f2885","type":"www-request","z":"7d6bccc7c58f5b2f","name":"","method":"GET","ret":"bin","url":"https://www.chmi.cz/files/portal/docs/meteo/om/predpovedi/kraje/p_ph.html","follow-redirects":true,"persistent-http":true,"tls":"","x":350,"y":100,"wires":[["ca866bb7b6e06116"]]},{"id":"5347d52e969cf222","type":"inject","z":"7d6bccc7c58f5b2f","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":140,"wires":[["5d54f49b856f2885"]]},{"id":"f825fbe6feb78fa1","type":"debug","z":"7d6bccc7c58f5b2f","name":"debug 38","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":640,"y":140,"wires":[]},{"id":"ca866bb7b6e06116","type":"converter","z":"7d6bccc7c58f5b2f","name":"","from":"win1250","x":500,"y":100,"wires":[["f825fbe6feb78fa1","7465eacf0e751ce3"]]},{"id":"f4c904e275c1a685","type":"http in","z":"7d6bccc7c58f5b2f","name":"predpovedEndpoint","url":"/predpoved","method":"get","upload":false,"swaggerDoc":"","x":150,"y":100,"wires":[["5d54f49b856f2885"]]},{"id":"7465eacf0e751ce3","type":"http response","z":"7d6bccc7c58f5b2f","name":"","statusCode":"","headers":{},"x":630,"y":100,"wires":[]}]
a scrapuj pak lokální stránku co dostaneš v UTF-8
predpoved.jpg




//edit:
A pokud bys scrapoval podobných stránek víc tak třeba

Kód: Vybrat vše

[{"id":"a08729f31e6c0b8a","type":"http in","z":"52c40f6ab9c21472","name":"iconvEndpoint","url":"/iconv","method":"get","upload":false,"swaggerDoc":"","x":90,"y":100,"wires":[["ea84ae28d972fb80"]]},{"id":"98ace27b58039140","type":"www-request","z":"52c40f6ab9c21472","name":"","method":"use","ret":"bin","url":"","follow-redirects":true,"persistent-http":true,"tls":"","x":430,"y":100,"wires":[["4d4254adfb72b3d7"]]},{"id":"4d4254adfb72b3d7","type":"converter","z":"52c40f6ab9c21472","name":"","from":"win1250","x":580,"y":100,"wires":[["a0047f72bba14b26"]]},{"id":"a0047f72bba14b26","type":"http response","z":"52c40f6ab9c21472","name":"","statusCode":"","headers":{},"x":710,"y":100,"wires":[]},{"id":"ea84ae28d972fb80","type":"change","z":"52c40f6ab9c21472","name":"payload2URL","rules":[{"t":"set","p":"url","pt":"msg","to":"req.query.stranka","tot":"msg"},{"t":"set","p":"method","pt":"msg","to":"GET","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":260,"y":100,"wires":[["98ace27b58039140"]]}]
a volat to ve scraperu pak s parametrem stranka

Kód: Vybrat vše

http://192.168.199.99:1880/endpoint/iconv?stranka=https://www.chmi.cz/files/portal/docs/meteo/om/predpovedi/kraje/p_pl.html
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox

lin
Nováček na fóru
Nováček na fóru
Příspěvky: 1
Registrován: 26. říjen 2023, 19:48

Re: Scrape počasí z ČHMÚ

Příspěvek od lin »

Ahoj, s dovolením se vecpu do tohoto tématu. Kousek od sebe mám ČHMI meteostanici - https://www.chmi.cz/aktualni-situace/ak ... budejovice. Abych nemusel vymýšlet meteostanici, rád bych načítal data z této. Existuje elegantní způsob, jak data vytěžit?

Uživatelský avatar
okoun
Pokročilý
Pokročilý
Příspěvky: 413
Registrován: 30. prosinec 2022, 21:19
Dal poděkování: 9 poděkování
Dostal poděkování: 3 poděkování

Re: Scrape počasí z ČHMÚ

Příspěvek od okoun »

hnzcz píše: 11. září 2023, 12:04 Ahoj, rád bych aby mi assistent skrze české TTS přečetl počasí a hledám věrohodný zdroj dat.

Našel jsem data poskytovaná ČHMÚ, pro Prahu například zde: https://www.chmi.cz/files/portal/docs/m ... /p_ph.html akorát mám problém se Scrapováním dat, potažmo jejich kódováním a nehnu s tím. Nezkoušel to už někdo tady?

Dle JS na stránce, odkud se data načítají např.: https://www.chmi.cz/predpovedi/predpove ... raje/praha, se používá kódovávání windows-1250. Našel jsem si i tabulku výčtu jazykových sad pro Python: https://docs.python.org/3/library/codec ... -encodings ale ať zadávám co zadávám do nastavení Scrape, pokaždé dostanu takový výstup:

chmi.png
je to už nějak vyřešené? případně bych to vyřešil....

kiklhorn
Moderátor
Moderátor
Příspěvky: 739
Registrován: 03. červenec 2021, 18:35
Dal poděkování: 84 poděkování
Dostal poděkování: 175 poděkování

Re: Scrape počasí z ČHMÚ

Příspěvek od kiklhorn »

o dva příspěvky výše...
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox

Uživatelský avatar
okoun
Pokročilý
Pokročilý
Příspěvky: 413
Registrován: 30. prosinec 2022, 21:19
Dal poděkování: 9 poděkování
Dostal poděkování: 3 poděkování

Re: Scrape počasí z ČHMÚ

Příspěvek od okoun »

kiklhorn píše: 24. listopad 2023, 13:44 o dva příspěvky výše...
jo díky, nějak jsem slepej :)

Odpovědět

Zpět na „Customizace - přizpůsobení entit“