Moskus Skrevet 15. mars 2020 Skrevet 15. mars 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 Siter
Justis Skrevet 15. mars 2020 Skrevet 15. mars 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 Siter
Moskus Skrevet 15. mars 2020 Forfatter Skrevet 15. mars 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 Siter
ØysteinHJ Skrevet 15. mars 2020 Skrevet 15. mars 2020 (endret) 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/ Endret 15. mars 2020 av ØysteinHJ Siter
Moskus Skrevet 16. mars 2020 Forfatter Skrevet 16. mars 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å... Siter
ØysteinHJ Skrevet 16. mars 2020 Skrevet 16. mars 2020 Jeg er en skriptjomfru, er jeg redd. Men kommer mer etter hvert.. 1 Siter
Husmann Skrevet 24. mars 2020 Skrevet 24. mars 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. Siter
ØysteinHJ Skrevet 24. mars 2020 Skrevet 24. mars 2020 Ja, virker som at de har sluttet å oppdatere dataene der. Siter
ØysteinHJ Skrevet 24. mars 2020 Skrevet 24. mars 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... Siter
Gizmo Skrevet 25. mars 2020 Skrevet 25. mars 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 Siter
Moskus Skrevet 25. mars 2020 Forfatter Skrevet 25. mars 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... Siter
Gizmo Skrevet 26. mars 2020 Skrevet 26. mars 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 Siter
Gizmo Skrevet 28. mars 2020 Skrevet 28. mars 2020 (endret) 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. Endret 28. mars 2020 av Gizmo skriveleif fjernet 2 Siter
Moskus Skrevet 29. mars 2020 Forfatter Skrevet 29. mars 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?) Siter
Gizmo Skrevet 29. mars 2020 Skrevet 29. mars 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": [] } ] Siter
Moskus Skrevet 1. april 2020 Forfatter Skrevet 1. april 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? Siter
Gizmo Skrevet 1. april 2020 Skrevet 1. april 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/ Siter
ØysteinHJ Skrevet 1. april 2020 Skrevet 1. april 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.. Siter
Moskus Skrevet 1. april 2020 Forfatter Skrevet 1. april 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. Siter
Moskus Skrevet 1. april 2020 Forfatter Skrevet 1. april 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... Siter
Gizmo Skrevet 1. april 2020 Skrevet 1. april 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 Siter
Moskus Skrevet 14. april 2020 Forfatter Skrevet 14. april 2020 Oppdatert førstepost med data fra RapidAPI istedenfor. Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.