Moskus Posted March 15, 2020 Share Posted March 15, 2020 Sub Main(ByVal parameters As Object) 'Moskus 2020 Dim devID As Integer = parameters.ToString Dim useHTMLtable As Boolean = True Dim url As String = "https://www.vg.no/spesial/2020/corona-viruset/data/norway-table-overview/" Dim source As String = "" Try Using client = New System.Net.WebClient Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12 client.Encoding = System.Text.Encoding.UTF8 source = client.DownloadString(url) End Using Catch ex As Exception hs.WriteLog("CoronaScript", "Net Feil: " & ex.Message) End Try If source = "" Then hs.WriteLog("CoronaScript", "Got no response from url: " & url) Exit Sub End If Dim json = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Object)(source) Dim output As String = "" Try Dim confirmed As Integer = json("totals")("confirmed") If useHTMLtable Then output &= "<table border=0 cellspacing=0 cellpadding=0>" output &= "<tr><td><b>Totalt</b></td><td align='right'>" & json("totals")("confirmed") & "</td><td align='right'>" & json("totals")("dead") & "</td><td align='right'>" & json("totals")("recovered") & "</td></tr>" For i As Integer = 0 To json("cases").Count - 1 output &= "<tr><td>" & json("cases")(i)("name") & "</td><td align='right'>" & json("cases")(i)("confirmed") & "</td><td align='right'>" & json("cases")(i)("dead") & "</td><td align='right'>" & json("cases")(i)("recovered") & "</td></tr>" Next output &= "</table>" Else output &= "<b>Totalt: " & json("totals")("confirmed") & " / " & json("totals")("dead") & " / " & json("totals")("recovered") & "</b><br>" For i As Integer = 0 To json("cases").Count - 1 output &= "• " & json("cases")(i)("name") & ": " & json("cases")(i)("confirmed") & " / " & json("cases")(i)("dead") & " / " & json("cases")(i)("recovered") & "<br>" Next End If hs.SetDeviceString(devID, output, False) hs.SetDeviceValueByRef(devID, confirmed, True) Catch ex As Exception hs.WriteLog("CoronaScript", "Net Feil: " & ex.Message) End Try End Sub Trigger: Kjøres hvert 5. minutt Parameter: DeviceIDen til en virtuell device som skal holde verdien. Du kan endre variabelen "useHTMLtable" til False hvis du vil ha det i HStouch, for HStouch viser ikke pene HTML-tabeller... Oppdatert med data fra RapidAPI siden jeg ble lei av at VG er så dårlig på å oppdatere tallene sine: Sub Main(ByVal parameters As Object) 'Moskus 2020 Dim devID As Integer = parameters.ToString Dim url As String = "https://covid-193.p.rapidapi.com/statistics?country=Norway" Dim source As String = "" Try Using client = New System.Net.WebClient 'TLS1.2 and encoding (UTF8) Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12 client.Encoding = System.Text.Encoding.UTF8 'Headers client.Headers.Set("x-rapidapi-host", "covid-193.p.rapidapi.com") client.Headers.Set("x-rapidapi-key", "DIN_RAPIDAPI_KEY_HER") 'GET the url source = client.DownloadString(url) End Using Catch ex As Exception hs.WriteLog("CoronaScript", "Net Feil: " & ex.Message) End Try If source = "" Then hs.WriteLog("CoronaScript", "Got no response from url: " & url) Exit Sub End If Try Dim json = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Object)(source) Dim confirmed As Integer = json("response")(0)("cases")("total") Dim output As String = "" output &= "<b>Aktive: " & json("response")(0)("cases")("active") & " (" & json("response")(0)("cases")("new") & ") " & "</b><br>" output &= "Totalt: " & json("response")(0)("cases")("total") & "<br>" output &= "Dødsfall: " & json("response")(0)("deaths")("total") & " (" & IIf(json("response")(0)("deaths")("new").ToString = "", "0", json("response")(0)("deaths")("new")) & ") " & "<br>" output &= "Testede: " & json("response")(0)("tests")("total") & "<br>" output &= "<i>Sist oppdatert: " & json("response")(0)("time") & "</i><br>" hs.SetDeviceString(devID, output, False) hs.SetDeviceValueByRef(devID, confirmed, True) Catch ex As Exception hs.WriteLog("CoronaScript Error", "Parsefeil: " & ex.Message) End Try End Sub Kjøres nå hver time, jeg vet ikke begrensningene hos RapidAPI. 2 Quote Link to comment Share on other sites More sharing options...
Justis Posted March 15, 2020 Share Posted March 15, 2020 Mulig å sortere ut så den bare trekker data for feks Trøndelag? Tenkte jeg skulle prøve å hente ut data for å vise på en MagicMirror Quote Link to comment Share on other sites More sharing options...
Moskus Posted March 15, 2020 Author Share Posted March 15, 2020 38 minutter siden, Justis skrev: Mulig å sortere ut så den bare trekker data for feks Trøndelag? Ikke direkte fra JSON, så vidt jeg ser. Da noe á la: IF json("cases")(i)("name") = "Trøndelag" Then Quote Link to comment Share on other sites More sharing options...
ØysteinHJ Posted March 15, 2020 Share Posted March 15, 2020 (edited) Funker ikke i HS4, ser det ut til.. Edit: Fant ut av det. Ser at jeg manglet referansen til dll-filen, og at informasjon om det finnes under Installasjon her: https://www.hjemmeautomasjon.no/forums/topic/4338-script-enturvb-få-inn-data-fra-entur/ Edited March 15, 2020 by ØysteinHJ Quote Link to comment Share on other sites More sharing options...
Moskus Posted March 16, 2020 Author Share Posted March 16, 2020 9 timer siden, ØysteinHJ skrev: Edit: Fant ut av det. Ser at jeg manglet referansen til dll-filen, og at informasjon om det finnes under Installasjon her: https://www.hjemmeautomasjon.no/forums/topic/4338-script-enturvb-få-inn-data-fra-entur/ Aaah, jeg er så vant til å bruke JSON at jeg tror alle har lagt til den referansen nå... Quote Link to comment Share on other sites More sharing options...
ØysteinHJ Posted March 16, 2020 Share Posted March 16, 2020 Jeg er en skriptjomfru, er jeg redd. Men kommer mer etter hvert.. 1 Quote Link to comment Share on other sites More sharing options...
Husmann Posted March 24, 2020 Share Posted March 24, 2020 Noen andre også som opplever at tallene fra VG er "stuck" (ikke oppdatert) de siste dagene? Snakker om denne linken i scriptet: https://www.vg.no/spesial/2020/corona-viruset/data/norway-table-overview/ F.eks. så er Totals i skrivende stund: {"totals":{"confirmed":2263,"dead":0,"recovered":6} ...Disse er samme tall som for noen dager siden. Quote Link to comment Share on other sites More sharing options...
ØysteinHJ Posted March 24, 2020 Share Posted March 24, 2020 Ja, virker som at de har sluttet å oppdatere dataene der. Quote Link to comment Share on other sites More sharing options...
Moskus Posted March 24, 2020 Author Share Posted March 24, 2020 Quote Link to comment Share on other sites More sharing options...
ØysteinHJ Posted March 24, 2020 Share Posted March 24, 2020 Ser at det er diverse utenlandske adresser man kan få statistikk på, men statistikken er litt utdatert. Gjerne en dag eller tre gammel. Men har ikke gravd så veldig mye enda. Synd ikke FHI gir ut rådata... Quote Link to comment Share on other sites More sharing options...
Gizmo Posted March 25, 2020 Share Posted March 25, 2020 Mye tilgjengelig globalt, jeg bruker https://github.com/ExpDev07/coronavirus-tracker-api Som gir data når de registreres av WHO, i Json format. Eksempelvis Norge: https://coronavirus-tracker-api.herokuapp.com/v2/locations?country_code=NO Men dette er jo old news sammenlignet med hva VG gir Quote Link to comment Share on other sites More sharing options...
Moskus Posted March 25, 2020 Author Share Posted March 25, 2020 6 timer siden, Gizmo skrev: Eksempelvis Norge: https://coronavirus-tracker-api.herokuapp.com/v2/locations?country_code=NO Men dette er jo old news sammenlignet med hva VG gir Litt rart at det står oppdatert "nå nettopp" og så er tallene relativt gamle... Quote Link to comment Share on other sites More sharing options...
Gizmo Posted March 26, 2020 Share Posted March 26, 2020 Har jobbet litt med å få VG sin statistikk inn i HStouch. Har blitt litt mer hjemmtid enn vanlig kan man si. - Bruker node-red for å ta et bilde av den relevante delen av https://www.vg.no/spesial/2020/corona/ - Bruker node-red-contrib-web-page-screenshot som har mulighet til å definere en del av en nettside gjennom å angi klassen man er interessert i, hos VG er det "key-numbers-inner" - Resultatet er bra, men kommer i form av en enkel html fil hvor bilde av nettsiden er en png streng som er base64 encoded. - Html filen kan jeg sende til HS med homeseer mqtt (Node-red kjører på en gammel mac-mini) - Bruker mcsMQTT og ender opp med å bruke "button" for å lagre data i en device. Men da blir html koden liggen som 0 = "html kode". (se bilde 1 og 2) Så står litt fast. Egentlig burde jo det være en smal sak å sende/hente selve html filen direkte fra HStouch men det skorter litt på kunnskapen her! Tips til løsning på hvordan man enklest får vist en slik html fil i hstouch? Man kan vel "broadcaste" en slik fil på et lokalt nettverk? 1 Quote Link to comment Share on other sites More sharing options...
Gizmo Posted March 28, 2020 Share Posted March 28, 2020 (edited) Det enkle er noen ganger det beste. Sender skjermbilde av vg sin hovedstatistikk til denne webadressen: http://www.jul-andersen.com/vg.html og henter den derfra til hstouch. Bruker ftp fra node-red, oppdateres hvert 30 minutt. Edited March 28, 2020 by Gizmo skriveleif fjernet 2 Quote Link to comment Share on other sites More sharing options...
Moskus Posted March 29, 2020 Author Share Posted March 29, 2020 20 timer siden, Gizmo skrev: Sender skjermbilde av vg sin hovedstatistikk til denne webadressen: http://www.jul-andersen.com/vg.html og henter den derfra til hstouch. Bruker ftp fra node-red, oppdateres hvert 30 minutt. Perfekt! Kan vi bruke det? (Hadde det ikke vært enklest å bare lage en png-fil av det istedenfor en base64-streng? Iallfall enklere å legge i HStouch?) Quote Link to comment Share on other sites More sharing options...
Gizmo Posted March 29, 2020 Share Posted March 29, 2020 54 minutter siden, Moskus skrev: Perfekt! Kan vi bruke det? (Hadde det ikke vært enklest å bare lage en png-fil av det istedenfor en base64-streng? Iallfall enklere å legge i HStouch?) Det må gjerne brukes, men kommer uten noen som helst garanti på oppetid. Det er helt sikkert bedre måter å gjøre dette på. Jeg forsøkte å finne en måte å få dette lagret som en png fil og lagt rett i bildemappen til HStouch, men fant ikke ut hvordan jeg fikk lagret/konvertert strengen på ryddig vis. Jeg legger ut flow'en jeg bruker i node-red, så kan de som vil ha egen url lage det, eventuelt om noen kommer opp med en bedre måte å gjøre det på. [ { "id": "a903151e.701c58", "type": "tab", "label": "Ta bilde av Koronastatistikk og send via ftp", "disabled": false, "info": "" }, { "id": "f9a208cb.694fa8", "type": "inject", "z": "a903151e.701c58", "name": "", "topic": "", "payload": "https://www.vg.no/spesial/2020/corona/", "payloadType": "str", "repeat": "1800", "crontab": "", "once": false, "onceDelay": 0.1, "x": 150, "y": 140, "wires": [ [ "bc724e8e.7f1af8" ] ] }, { "id": "bc724e8e.7f1af8", "type": "screenshot-class", "z": "a903151e.701c58", "name": "vg", "url": "https://www.vg.no/spesial/2020/corona/", "classname": "key-numbers-inner", "path": "", "x": 270, "y": 140, "wires": [ [ "de9480ac.28563" ] ] }, { "id": "63cd0a38.394ffc", "type": "file", "z": "a903151e.701c58", "name": "", "filename": "/din_path_her/vg.html", "appendNewline": false, "createDir": false, "overwriteFile": "true", "encoding": "none", "x": 220, "y": 220, "wires": [ [ "9e323528.2d1a4" ] ] }, { "id": "de9480ac.28563", "type": "template", "z": "a903151e.701c58", "name": "", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "<html>\n <body>\n <img src=\"data:image/png;base64,{{payload}}\">\n </body>\n</html>", "output": "str", "x": 400, "y": 140, "wires": [ [ "63cd0a38.394ffc" ] ] }, { "id": "9e323528.2d1a4", "type": "ftp in", "z": "a903151e.701c58", "ftp": "", "operation": "put", "filename": "www/vg.html", "localFilename": "/din_path_her/vg.html", "name": "", "x": 510, "y": 220, "wires": [ [ "9fe66376.2bf11" ] ] }, { "id": "9fe66376.2bf11", "type": "debug", "z": "a903151e.701c58", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "x": 670, "y": 140, "wires": [] } ] Quote Link to comment Share on other sites More sharing options...
Moskus Posted April 1, 2020 Author Share Posted April 1, 2020 Jeg har fulgt litt med på dette i det siste, og det er ikke ut til å være noe problemer med JSON-filen fra VG. Andre som ser det samme som meg? Quote Link to comment Share on other sites More sharing options...
Gizmo Posted April 1, 2020 Share Posted April 1, 2020 1 minutt siden, Moskus skrev: Andre som ser det samme som meg? Ja, det ser ut til å virke igjen. VG har også en annen json fil, men jeg har ikke rukket/orket å grave i den. Er litt mer omfattende: https://www.vg.no/spesial/2020/corona-viruset/data/norway/ Quote Link to comment Share on other sites More sharing options...
ØysteinHJ Posted April 1, 2020 Share Posted April 1, 2020 9 minutter siden, Moskus skrev: Jeg har fulgt litt med på dette i det siste, og det er ikke ut til å være noe problemer med JSON-filen fra VG. Andre som ser det samme som meg? Nja, går litt i rykk og napp virker det som.. Quote Link to comment Share on other sites More sharing options...
Moskus Posted April 1, 2020 Author Share Posted April 1, 2020 10 minutter siden, ØysteinHJ skrev: Nja, går litt i rykk og napp virker det som.. Det er vel fordi datagrunnlaget kommer i rykk og napp. Hvis det hadde blitt rapportert en gang pr. døgn så hadde det blitt jevnere. Quote Link to comment Share on other sites More sharing options...
Moskus Posted April 1, 2020 Author Share Posted April 1, 2020 25 minutter siden, Gizmo skrev: Ja, det ser ut til å virke igjen. VG har også en annen json fil, men jeg har ikke rukket/orket å grave i den. Er litt mer omfattende: https://www.vg.no/spesial/2020/corona-viruset/data/norway/ Se der, ja, den var jo litt spennende. Muligens litt overkill å analysere den hvert 5. minutt, men det er nok alle detaljene ser det ut til... Quote Link to comment Share on other sites More sharing options...
Gizmo Posted April 1, 2020 Share Posted April 1, 2020 4 timer siden, Moskus skrev: det er nok alle detaljene ser det ut til Mye hjemmetid nå... Den forrige jeg la ut har kun informasjon om smittede. Men ved å se på koden som brukes på html siden fant jeg det som ser ut en bedre kildefil: https://www.vg.no/spesial/2020/corona-viruset/data/norway-region-data/ Så langt jeg kan se inneholder "metadata" på de første linjene informasjon om smittede totalt, nye i går og i dag, samt tilsvarende for døde. Deretter følger data om "timeseries" for først smittede og så døde. Til slutt kommer "caselist" for hvert enkeltcase som er registrert (som er hovedparten av filen) Har jo bare sjekket etter middag i dag, men virker som tallene i metadata er identiske med nettsiden. 1 Quote Link to comment Share on other sites More sharing options...
Moskus Posted April 14, 2020 Author Share Posted April 14, 2020 Oppdatert førstepost med data fra RapidAPI istedenfor. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.