NEWS
Corona-Ampel Österreich in VIS anzeigen
-
@sigi234 Ich hab dir mal die Tabellenerstellung noch eingebaut:
const url = 'https://corona-ampel.gv.at/sites/corona-ampel.gv.at/files/assets/Warnstufen_Corona_Ampel_aktuell.json'; var warnstufe=0; var htmlwidget =''; var suchwertBezirk = 'Bregenz' var suchwertBundesland = 'Vorarlberg' var farbwertLevel1 = '#04B404' var farbwertLevel2 = '#FFFF00' var farbwertLevel3 = '#FF8000' var farbwertLevel4 = '#DF0101' var warngebiet = '' var directory = 'Coronaampel' //javascript.0.xxx var tableContent = '' createState(directory + '.warnstufe', { name: 'Corona Warnstufe', read: true, write: false, type: "number", def: 0 }); createState(directory + '.warngebiet', { name: 'Corona Warngebiet', read: true, write: false, type: "string", def: "" }); createState(directory + '.warnfarbe', { name: 'Corona Warnfarbe', read: true, write: false, type: "string", def: "" }); createState(directory + '.warntabelle', { name: 'Corona Tabelle', read: true, write: false, type: "string", def: "" }); schedule('1 * * * *', function() { warnstufe = 0; tableContent = '' request(url, function(err, response, json) { let arr = JSON.parse(json).warnstufen; //Loop und suche nach Bezirk for(let i = 0; i < arr.length; i++) { if(arr[i].name == suchwertBezirk){ //log(' Warnstufe für ' + suchwertBezirk + ': ' + arr[i].warnstufe) warnstufe = Number(arr[i].warnstufe)} warngebiet = suchwertBezirk } if (warnstufe == 0){ //Loop und suche nach Bundesland for(let i = 0; i < arr.length; i++) { if(arr[i].name == suchwertBundesland){ //log(' Warnstufe für ' + suchwertBundesland + ': ' + arr[i].warnstufe) warnstufe = Number(arr[i].warnstufe) warngebiet = suchwertBundesland } } } if (warnstufe == 0){ log('Keine Warnung für ' + suchwertBezirk + ' und ' + suchwertBundesland + ' gefunden.') } for(let i = 0; i < arr.length; i++) { fillTable(arr[i].region,arr[i].name,arr[i].warnstufe) } finishTable() saveData() }); }); function fillTable(gebiet,name,warnstufe){ if (tableContent == ''){ tableContent = '<table ><tbody>' } tableContent += '<tr><td>' + gebiet + '</td>' tableContent += '<td>' + name + '</td>' tableContent += '<td>' + warnstufe + '</td>' tableContent += '</tr>'; } function finishTable(){ tableContent += '</tbody></table>' setState(directory+'.warntabelle',tableContent) } function saveData(){ setState(directory+'.warnstufe',warnstufe) setState(directory+'.warngebiet',warngebiet) switch (warnstufe) { case 1: setState(directory+'.warnfarbe',farbwertLevel1) break; case 2: setState(directory+'.warnfarbe',farbwertLevel2) break; case 3: setState(directory+'.warnfarbe',farbwertLevel3) break; case 4 : setState(directory+'.warnfarbe',farbwertLevel4) break; default: setState(directory+'.warnfarbe',""); ; } }
Wegen mehreren Orten...vielleicht ists am einfachsten, wenn du das Skript mehrfach anlegst, und einfach verschiedene Ordner ganz oben definierst?
-
@jackblackson sagte in Corona-Ampel Österreich in VIS anzeigen:
Ich hab dir mal die Tabellenerstellung noch eingebaut:
DP wird nicht befüllt.
Edit: jetzt schon.
-
Ich hab mir grad heute das aktualisierte File angesehen, und so wie es aussieht ist dort nicht immer nur der aktuelle Stand eingetragen sondern auch die Historie...somit wird es mit dem einfachen Durchloopen nicht funktionieren..
-
@jackblackson sagte in Corona-Ampel Österreich in VIS anzeigen:
Ich hab mir grad heute das aktualisierte File angesehen, und so wie es aussieht ist dort nicht immer nur der aktuelle Stand eingetragen sondern auch die Historie...somit wird es mit dem einfachen Durchloopen nicht funktionieren..
ja leider, Hast du eine Lösung?
-
du kannst ja den stand abfragen und dann das neuste raussuchen und dann die schleife dadurch laufen klassen
bzw. es wird wahrscheinlich immer der erste punkt sein, den du brauchst - neuste datum steht unter 0:
-
geht es damit ?
schedule(' 1 * * * *', function() { warnstufe = 0; tableContent = '' request(url, function(err, response, json) { let arr = JSON.parse(json)[0].Warnstufen; log(JSON.stringify(arr)) //Loop und suche nach Bezirk for(let i = 0; i < arr.length; i++) { if(arr[i].name == suchwertBezirk){ //log(' Warnstufe für ' + suchwertBezirk + ': ' + arr[i].warnstufe) warnstufe = Number(arr[i].warnstufe)} warngebiet = suchwertBezirk
nur zeile 7 geändert
und in zeile 8 ein log -
oh mann - die haben auch die namen geändert - die werden groß geschrieben
daher bitte testen - ganzes script
-
@liv-in-sky Funktioniert gut bei mir - danke schon mal! Ich werde nur mein Gelb anpassen müssen, das ist etwas zu grell. Dann hoffen wir das zumindest die technische Umsetzung nun funktioniert, wenn das ganze Konzept sonst schon etwas Anlaufschwierigkeiten hat.
-
da hatten wir schon viel schlimmere anfangssituationen - mal sehen, was beim nächsten update bei denen wieder geändert wird
-
Und wieder ist alles Neu..aber immerhin inzwischen mit Changelog:
https://corona-ampel.gv.at/datendownload/Edit: Bei mir hat es gereicht, auf den neuen Filenamen zu wechseln: https://corona-ampel.gv.at/sites/corona-ampel.gv.at/files/assets/Warnstufen_Corona_Ampel_aktuell_1.json
-
Datainame ist wieder wie vorher -
naja - scheint ein sehr "spontaner" haufen zu sein. aber immer noch besser eine ampel zu haben als keine - sowie bei uns hier
-
@liv-in-sky Uff, bist du so nett und erklärst das einem Laien, wie man das zum laufen bringt?
Ich möchte die https://corona-ampel.gv.at/sites/corona-ampel.gv.at/files/assets/Warnstufen_Corona_Ampel_Gemeinden_aktuell.json Gemeinden anzeigen.
Also meinen Gemeindenamen und die Warnstufe und von welchem Datum der Wert stammt. Das sollte je in einen Datenpunkt.
Den Datenpunkt kann man ja danach in Vis auswerten.
Vielleicht ist dir eine plausible nachvollziehbare Erklärung möglich.
Danke schon mal. -
ich hoffe es meldet sich jmd anders - ich habe das script garnicht am laufen, weil die "deutschländer" es nicht auf die reihe bekommen - immerhin wird schon mal darüber geredet - ich hatte nur beigetragen beim holen der daten - was ihr damit macht, habe ich garnicht richtig angeschaut
@jackblackson kannst du da bitte mit einspringen ?
-
@liv-in-sky said in Corona-Ampel Österreich in VIS anzeigen:
ich hatte nur beigetragen beim holen der daten
Ja eigentlich wärst du dann eh der Richtige.
Die Daten liegen in dieser Form vor[ { "Stand": "2020-10-01T19:30:00Z", "Warnstufen": [ { "Region": "Gemeinde", "GKZ": "10101", "Name": "Eisenstadt", "Warnstufe": "2" }, { "Region": "Gemeinde", "GKZ": "10201", "Name": "Rust", "Warnstufe": "2" }, { "Region": "Gemeinde", "GKZ": "10301", "Name": "Breitenbrunn am Neusiedler See", "Warnstufe": "2" }, { "Region": "Gemeinde", "GKZ": "10302", "Name": "Donnerskirchen", "Warnstufe": "2" }, { "Region": "Gemeinde", "GKZ": "10303", "Name": "Großhöflein", "Warnstufe": "2" },
es müssten die Datenpunkte:
Stand
Region
GKZ
Name
Warnstufe
angelegt und ausgelesen werden.
Als Suchkriterium würde die GKZ reichen. -
also dieses script bringt die daten unter javascript.0.coronamapel - das schedule ist im moment auf jede minute gesetzt - solltest du aber ändern vielleicht alle 30 minuten oder jede stunde (zeile: 73) d.h. es dauert auch eine minute, bis daten da sind
-
Hallo, gibt es auch einen Suchwert für eine Gemeinde?
-
@sigi234 said in Corona-Ampel Österreich in VIS anzeigen:
Hallo, gibt es auch einen Suchwert für eine Gemeinde?
Suche dir die GKZ heraus. Das ist sicherer, da die Namen schon öfters geändert wurden (Groß-Kleinschreibung)
-
@bergjet sagte in Corona-Ampel Österreich in VIS anzeigen:
Suche dir die GKZ heraus. Das ist sicherer, da die Namen schon öfters geändert wurden (Groß-Kleinschreibung)
Wo gebe ich die im Skript ein?
-
@liv-in-sky https://corona-ampel.gv.at/sites/corona-ampel.gv.at/files/assets/Warnstufen_Corona_Ampel_Gemeinden_aktuell.json
Leider, es handelt sich hier um eine andere Datenquelle. Diese Quelle beinhaltet die Regionalen Gemeinden.
Es gibt hier keinen Suchwert Bezirk und keinen Suchwert Bundesland.
Ich möchte die Werte
Stand
Region
GKZ
Name
Warnstufe
auf Grund der GKZ (z.B.320) finden und in Datenpunkte schreiben.