Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
COVID-19 Inzidenz-Widget für iOS innerhalb Deutschlands 🇩🇪 (Kreis/Stadt + Bundesland + Trend)
// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: red; icon-glyph: briefcase-medical;
// Licence: Robert Koch-Institut (RKI), dl-de/by-2-0
// BASE VERSION FORKED FROM AUTHOR: kevinkub https://gist.github.com/kevinkub/46caebfebc7e26be63403a7f0587f664
// UPDATED VERSION BY AUTHOR: rphl https://gist.github.com/rphl/0491c5f9cb345bf831248732374c4ef5
const outputFields = 'GEN,cases,cases_per_100k,cases7_per_100k,cases7_bl_per_100k,last_update,BL';
const apiUrl = (location) => `https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&outFields=${outputFields}&geometry=${location.longitude.toFixed(3)}%2C${location.latitude.toFixed(3)}&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelWithin&returnGeometry=false&outSR=4326&f=json`
const outputFieldsStates = 'Fallzahl,LAN_ew_GEN,cases7_bl_per_100k';
const apiUrlStates = `https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/Coronaf%E4lle_in_den_Bundesl%E4ndern/FeatureServer/0/query?where=1%3D1&outFields=${outputFieldsStates}&returnGeometry=false&outSR=4326&f=json`
const apiUrlNewCases = 'https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_COVID19/FeatureServer/0/query?f=json&where=NeuerFall%20IN(1%2C%20-1)&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22AnzahlFall%22%2C%22outStatisticFieldName%22%3A%22value%22%7D%5D&resultType=standard&cacheHint=true'
/**
* Fix Coordinates/MediumWidget
* Set Widgetparameter for each column, seperated by ";" Format: POSITION,LAT,LONG(,NAME);POSITION,LAT,LONG(,NAME)
*
* Examples:
*
* First fix column (No second column): 0,51.1244,6.7353
* Second fix column (Second column is visble, MediumWidget): 1,51.1244,6.7353
* Both Fix columns (both are visble, MediumWidget): 0,51.1244,6.7353;1,51.1244,6.7353
* Only Second Fix (both are visble, MediumWidget): 1,51.1244,6.7353
* Custom Name: 0,51.1244,6.7353,Home
* Custom Name Second column: 1,51.1244,6.7353,Work
*/
const LIMIT_DARKRED = 100
const LIMIT_RED = 50
const LIMIT_ORANGE = 35
const LIMIT_YELLOW = 25
const LIMIT_DARKRED_COLOR = new Color('9e000a') // DARKRED:
const LIMIT_RED_COLOR = new Color('f6000f')
const LIMIT_ORANGE_COLOR = new Color('#ff7927')
const LIMIT_YELLOW_COLOR = new Color('F5D800')
const LIMIT_GREEN_COLOR = new Color('1CC747')
const BUNDESLAENDER_SHORT = {
'Baden-Württemberg': 'BW',
'Bayern': 'BY',
'Berlin': 'BE',
'Brandenburg': 'BB',
'Bremen': 'HB',
'Hamburg': 'HH',
'Hessen': 'HE',
'Mecklenburg-Vorpommern': 'MV',
'Niedersachsen': 'NI',
'Nordrhein-Westfalen': 'NRW',
'Rheinland-Pfalz': 'RP',
'Saarland': 'SL',
'Sachsen': 'SN',
'Sachsen-Anhalt': 'ST',
'Schleswig-Holstein': 'SH',
'Thüringen': 'TH'
};
let MEDIUMWIDGET = (config.widgetFamily === 'medium') ? true : false
let fixedCoordinates = []
if (args.widgetParameter) {
fixedCoordinates = parseInput(args.widgetParameter)
if (typeof fixedCoordinates[1] !== 'undefined' && Object.keys(fixedCoordinates[1]).length >= 3) {
MEDIUMWIDGET = true
}
} else { // DEBUG MEDIUM WIDGET
// fixedCoordinates[0] = { index: 0, latitude: 51.23377, longitude: 6.7731, name: false }
// fixedCoordinates[1] = { index: 1, latitude: 48.24670, longitude: 12.52155, name: 'Work' }
// fixedCoordinates[0] = { index: 0, latitude: 48.13743, longitude: 11.57549, name: false }
// fixedCoordinates[1] = { index: 1, latitude: 53.551086, longitude: 9.993682, name: 'Home' }
// MEDIUMWIDGET = true
}
let data = {}
let weekData = {}
const widget = await createWidget()
if (!config.runsInWidget) {
if (MEDIUMWIDGET) {
await widget.presentMedium()
} else {
await widget.presentSmall()
}
}
Script.setWidget(widget)
Script.complete()
async function createWidget() {
const _data = await getData(0)
let areaName;
if (_data && typeof _data.areaName !== 'undefined') {
areaName = _data.areaName;
data[areaName] = _data
}
const list = new ListWidget()
const headerLabel = list.addStack()
headerLabel.useDefaultPadding()
headerLabel.centerAlignContent()
if (MEDIUMWIDGET) {
headerLabel.layoutHorizontally()
} else {
list.setPadding(10,15,10,10)
headerLabel.layoutVertically()
}
const header = headerLabel.addText("🦠 Inzidenz".toUpperCase())
header.font = Font.mediumSystemFont(13)
if (data && typeof data[areaName] !== 'undefined') {
weekData[areaName] = saveLoadData(data[areaName], areaName)
if (!data[areaName].shouldCache) {
list.addSpacer(6)
const loadingIndicator = list.addText("Ort wird ermittelt...".toUpperCase())
loadingIndicator.font = Font.mediumSystemFont(13)
loadingIndicator.textOpacity = 0.5
}
if (MEDIUMWIDGET && typeof data[areaName] !== 'undefined') {
headerLabel.addSpacer()
createGerTopDailyCasesLabel(headerLabel, data[areaName], weekData[areaName])
}
list.addSpacer(16)
// INCIDENCE
const incidenceLabel = list.addStack()
if (MEDIUMWIDGET) {
incidenceLabel.size = new Size(300, 90)
}
incidenceLabel.layoutHorizontally()
incidenceLabel.useDefaultPadding()
incidenceLabel.topAlignContent()
createIncidenceLabelBlock(incidenceLabel, data[areaName], weekData[areaName], 0)
const _dataF = await getData(1)
let areaNameF
if (_dataF && typeof _dataF.areaName !== 'undefined') {
areaNameF = _dataF.areaName;
data[areaNameF] = _dataF
}
if (MEDIUMWIDGET && typeof data[areaNameF] !== 'undefined') {
weekData[areaNameF] = saveLoadData(data[areaNameF], areaNameF)
incidenceLabel.addSpacer(10)
createIncidenceLabelBlock(incidenceLabel, data[areaNameF], weekData[areaNameF], 1)
}
if (data[areaName].shouldCache) {
list.refreshAfterDate = new Date(Date.now() + 60 * 60 * 1000)
}
} else {
list.addSpacer()
const errorLabel = list.addText("Daten nicht verfügbar. \nWidget öffnen für reload...")
errorLabel.font = Font.mediumSystemFont(12)
errorLabel.textColor = Color.gray()
}
return list
}
async function getData(useFixedCoordsIndex = false) {
try {
let dataCases = await new Request(apiUrlNewCases).loadJSON()
const cases = dataCases.features[0].attributes.value
let dataStates = await new Request(apiUrlStates).loadJSON()
const incidencePerState = dataStates.features.map((f) => { return {
BL: BUNDESLAENDER_SHORT[f.attributes.LAN_ew_GEN],
incidence: f.attributes.cases7_bl_per_100k,
cases: f.attributes.Fallzahl // ???
}})
const averageIncidence = incidencePerState.reduce((a, b) => a + b.incidence, 0) / incidencePerState.length
const location = await getLocation(useFixedCoordsIndex)
let data = await new Request(apiUrl(location)).loadJSON()
const attr = data.features[0].attributes
const res = {
incidence: parseFloat(attr.cases7_per_100k.toFixed(1)),
incidenceBL: parseFloat(attr.cases7_bl_per_100k.toFixed(1)),
areaName: attr.GEN,
areaCases: parseFloat(attr.cases.toFixed(1)),
nameBL: BUNDESLAENDER_SHORT[attr.BL],
shouldCache: true,
updated: attr.last_update,
incidencePerState: incidencePerState,
averageIncidence: parseFloat(averageIncidence.toFixed(1)),
cases: cases
}
return res
} catch (e) {
return null
}
}
function parseInput (input) {
const _coords = []
const _fixedCoordinates = input.split(";").map(coords => {
return coords.split(',')
})
_fixedCoordinates.forEach(coords => {
_coords[parseInt(coords[0])] = {
index: parseInt(coords[0]),
latitude: parseFloat(coords[1]),
longitude: parseFloat(coords[2]),
name: (typeof coords[3] !== 'undefined') ? coords[3] : false
}
})
return _coords
}
async function getLocation(fixedCoordinateIndex = false) {
try {
if (fixedCoordinates && typeof fixedCoordinates[fixedCoordinateIndex] !== 'undefined' && Object.keys(fixedCoordinates[fixedCoordinateIndex]).length >= 3) {
return fixedCoordinates[fixedCoordinateIndex]
} else {
Location.setAccuracyToThreeKilometers()
return await Location.current()
}
} catch (e) {
return null;
}
}
function createGerTopDailyCasesLabel(label, data, weekData) {
let casesStack = label.addStack()
casesStack.layoutHorizontally()
casesStack.centerAlignContent()
casesStack.setPadding(4,4,4,4)
casesStack.cornerRadius = 6
let formatedCases = formatCases(data.cases)
const prevData = getDataForDate(weekData);
if (prevData) {
formatedCases += getTrendArrow(prevData.cases, data.cases)
}
createUpdatedLabel(casesStack, data)
let labelCases = casesStack.addText(`(+${formatedCases})`)
labelCases.rightAlignText()
labelCases.font = Font.systemFont(10)
}
function createGerDailyCasesLabel(label, data, weekData) {
let bgColor = new Color('f0f0f0')
let textColor = new Color('444444')
if(Device.isUsingDarkAppearance()) {
bgColor = new Color('202020')
textColor = new Color('f0f0f0')
}
let fontsize = MEDIUMWIDGET ? 10 : 9
let formatedCasesArea = ''
let formatedCasesBL = ''
let formatedCases = formatCases(data.cases)
const prevData = getDataForDate(weekData);
if (prevData) {
formatedCases += getTrendArrow(prevData.cases, data.cases)
formatedCasesArea = getNewAreaCasesAndTrend(data, weekData)
formatedCasesBL = getNewBLCasesAndTrend(data, weekData)
}
let casesStack = label.addStack()
casesStack.layoutHorizontally()
casesStack.centerAlignContent()
casesStack.setPadding(4,3,4,3)
casesStack.cornerRadius = 6
casesStack.backgroundColor = bgColor
casesStack.size = (MEDIUMWIDGET) ? new Size(140, 15) : new Size(132, 15)
let labelCases = casesStack.addText(`${formatedCasesArea}`)
labelCases.font = Font.systemFont(fontsize)
labelCases.textColor = textColor
casesStack.addSpacer()
let labelCases2 = casesStack.addText(`${formatedCasesBL}`)
labelCases2.centerAlignText()
labelCases2.font = Font.systemFont(fontsize)
labelCases2.textColor = textColor
// GER CASES
if (!MEDIUMWIDGET) {
casesStack.addSpacer()
let labelCases3 = casesStack.addText(`+${formatedCases}`)
labelCases3.rightAlignText()
labelCases3.font = Font.systemFont(fontsize)
labelCases3.textColor = textColor
}
}
function formatCases(cases) {
return formatedCases = new Number(cases).toLocaleString('de-DE')
}
function getTrendArrow (preValue, currentValue) {
return (currentValue <= preValue) ? '↓' : '↑'
}
function createUpdatedLabel(label, data, align = 1) {
const areaCasesLabel = label.addText(`${data.updated.substr(0, 10)} `)
areaCasesLabel.font = Font.systemFont(10)
if (align === -1) { areaCasesLabel.rightAlignText() } else { areaCasesLabel.leftAlignText() }
}
function createIncidenceLabelBlock(labelBlock, data, weekData, fixedCoordinateIndex = 0) {
const stack = labelBlock.addStack()
stack.layoutVertically()
stack.useDefaultPadding()
stack.topAlignContent()
// DATE
if (!MEDIUMWIDGET) {
createUpdatedLabel(stack, data)
}
// MAIN ROW WITH INCIDENCE
const stackMainRow = stack.addStack()
stackMainRow.useDefaultPadding()
stackMainRow.centerAlignContent()
stackMainRow.size = (MEDIUMWIDGET) ? new Size(145, 30) : new Size(135, 30)
// MAIN INCIDENCE
let incidence = data.incidence >= 100 ? Math.floor(data.incidence) : data.incidence;
const incidenceLabel = stackMainRow.addText('' + incidence)
incidenceLabel.font = Font.boldSystemFont(27)
incidenceLabel.leftAlignText();
incidenceLabel.textColor = getIncidenceColor(data.incidence)
const incidenceTrend = getIncidenceTrend(data, weekData)
const incidenceLabelTrend = stackMainRow.addText(incidenceTrend)
incidenceLabelTrend.font = Font.boldSystemFont(27)
incidenceLabelTrend.leftAlignText();
incidenceLabelTrend.textColor = (incidenceTrend === '↑') ? LIMIT_RED_COLOR : (incidenceTrend === '↓') ? LIMIT_GREEN_COLOR : new Color('999999')
stackMainRow.addSpacer(5)
// BL INCIDENCE
const incidenceBLStack = stackMainRow.addStack();
incidenceBLStack.backgroundColor = new Color('f0f0f0')
incidenceBLStack.cornerRadius = 4
incidenceBLStack.setPadding(2,3,2,3)
const incidenceBL = (data.incidenceBL >= 100) ? Math.floor(data.incidenceBL) : data.incidenceBL
const incidenceBLLabel = incidenceBLStack.addText(incidenceBL + getIncidenceBLTrend(data, weekData) + '\n' + data.nameBL)
incidenceBLLabel.font = Font.mediumSystemFont(9)
incidenceBLLabel.textColor = new Color('444444')
stackMainRow.addSpacer()
let areaName = data.areaName
if (typeof fixedCoordinates[fixedCoordinateIndex] !== 'undefined' && fixedCoordinates[fixedCoordinateIndex].name !== false) {
areaName = fixedCoordinates[fixedCoordinateIndex].name
}
const areanameLabel = stack.addText(areaName.toUpperCase())
areanameLabel.font = Font.mediumSystemFont(14)
areanameLabel.lineLimit = 2
stack.addSpacer()
createGraph(stack, weekData)
stack.addSpacer(4)
createGerDailyCasesLabel(stack, data, weekData)
}
function createGraph(row, weekData) {
let graphRow = row.addStack()
graphRow.centerAlignContent()
graphRow.useDefaultPadding()
graphRow.size = (MEDIUMWIDGET) ? new Size(145, 10) : new Size(135, 10)
let incidenceColumnData = []
let incidenceColumnBLData = []
let incidenceColumnGerData = []
Object.keys(weekData).forEach(key => {
incidenceColumnData.push(weekData[key].incidence)
incidenceColumnBLData.push(weekData[key].incidenceBL)
if (!MEDIUMWIDGET) {
incidenceColumnGerData.push(weekData[key].averageIncidence)
}
})
incidenceColumnData.push(0)
incidenceColumnData = incidenceColumnData.concat(incidenceColumnBLData)
if (!MEDIUMWIDGET) {
incidenceColumnData.push(0)
incidenceColumnData = incidenceColumnData.concat(incidenceColumnGerData)
}
let w = (MEDIUMWIDGET) ? 135 : 125
let image = columnGraph(incidenceColumnData, w, 15).getImage()
let img = graphRow.addImage(image)
img.resizable = false;
img.centerAlignImage();
}
function columnGraph(data, width, height) {
let context = new DrawContext()
context.size = new Size(width, height)
context.opaque = false
let max = Math.max(...data)
data.forEach((value, index) => {
context.setFillColor(getIncidenceColor(value))
let w = (width / data.length) - 2
let h = value / max * height
let x = (w + 2) * index
let y = height - h
let rect = new Rect(x, y, w, h)
context.fillRect(rect)
})
return context
}
function getIncidenceColor(incidence) {
let color = LIMIT_GREEN_COLOR
if (incidence >= LIMIT_DARKRED) {
color = LIMIT_DARKRED_COLOR
} else if (incidence >= LIMIT_RED) {
color = LIMIT_RED_COLOR
} else if (incidence >= LIMIT_ORANGE) {
color = LIMIT_ORANGE_COLOR
} else if (incidence >= LIMIT_YELLOW) {
color = LIMIT_YELLOW_COLOR
}
return color
}
function getIncidenceTrend(data, weekData) {
let incidenceTrend = ' ';
if (typeof weekData !== 'undefined' && Object.keys(weekData).length > 0) {
const prevData = getDataForDate(weekData);
if (prevData) {
incidenceTrend = (data.incidence < prevData.incidence) ? '↓' : (data.incidence > prevData.incidence) ? '↑' : '→'
}
}
return incidenceTrend
}
function getNewAreaCasesAndTrend(data, weekData) {
let newAreaCases = '';
if (typeof weekData !== 'undefined' && Object.keys(weekData).length > 0) {
const prev1DayData = getDataForDate(weekData);
if (prev1DayData && typeof prev1DayData.areaCases !== 'undefined') {
newAreaCases += (data.areaCases < prev1DayData.areaCases) ?'-' : '+'
newAreaCases += formatCases(Math.abs(getDiff(data, prev1DayData, 'areaCases')))
const prev2DaysData = getDataForDate(weekData, 2);
if (prev2DaysData && typeof prev2DaysData.areaCases !== 'undefined') {
const diffPrev1Day = getDiff(data, prev1DayData, 'areaCases')
const diffPrev2Days = getDiff(prev1DayData, prev2DaysData, 'areaCases')
if (diffPrev1Day || diffPrev2Days) {
newAreaCases += (diffPrev1Day > diffPrev2Days) ?'↑' : '↓'
} else {
newAreaCases += '→'
}
}
}
}
return newAreaCases
}
function getDiff(data, data2, field) {
if (typeof data[field] !== 'undefined' && typeof data2[field] !== 'undefined') {
return data[field] - data2[field]
}
return 0
}
function getNewBLCasesAndTrend(data, weekData) {
let newBLCases = ''
let d = data.incidencePerState.filter((item) => {
return item.BL === data.nameBL
})
let currentBLData = (typeof d[0] !== 'undefined') ? d[0] : null
const prev1DayData = getDataForDate(weekData);
let dp = prev1DayData.incidencePerState.filter((item) => {
return item.BL === data.nameBL
})
let prev1DayBLData = (typeof dp[0] !== 'undefined') ? dp[0] : null
if(currentBLData && prev1DayBLData) {
newBLCases += (currentBLData.cases < prev1DayBLData.cases) ?'-' : '+'
newBLCases += formatCases(Math.abs(currentBLData.cases - prev1DayBLData.cases))
const prev2DaysData = getDataForDate(weekData, 2);
if (prev2DaysData) {
let dp = prev2DaysData.incidencePerState.filter((item) => {
return item.BL === data.nameBL
})
let prev2DaysBLData = (typeof dp[0] !== 'undefined') ? dp[0] : null
if (prev2DaysBLData) {
const diffPrev1Day = getDiff(currentBLData, prev1DayBLData, 'cases')
const diffPrev2Days = getDiff(prev1DayBLData, prev2DaysBLData, 'cases')
if (diffPrev1Day || diffPrev2Days) {
newBLCases += (diffPrev1Day > diffPrev2Days) ?'↑' : '↓'
} else {
newBLCases += '→'
}
}
}
}
return newBLCases
}
function getIncidenceBLTrend(data, weekData) {
let incidenceBLTrend = '';
if (typeof weekData !== 'undefined' && Object.keys(weekData).length > 0) {
const prevData = getDataForDate(weekData);
if (prevData) {
incidenceBLTrend = (data.incidenceBL < prevData.incidenceBL) ? '↓' : (data.incidenceBL > prevData.incidenceBL) ? '↑' : '→'
}
}
return incidenceBLTrend
}
function getDataForDate(weekData, dayOffset = 1) {
let dateKey;
const today = new Date();
const todayDateKey = `${today.getDate()}.${today.getMonth() + 1}.${today.getFullYear()}`
if (typeof weekData[todayDateKey] === 'undefined') {
dayOffset = dayOffset + 1
}
today.setDate(today.getDate() - dayOffset);
dateKey = `${today.getDate()}.${today.getMonth() + 1}.${today.getFullYear()}`
if (typeof weekData[dateKey] !== 'undefined') {
return weekData[dateKey]
}
return false
}
// LIMIT TO 7 DAYS
function saveLoadData (newData, suffix = '') {
const updated = newData.updated.substr(0, 10);
const loadedData = loadData(suffix)
if (loadedData) {
loadedData[updated] = newData
const loadedDataKeys = Object.keys(loadedData);
const lastDaysKeys = loadedDataKeys.slice(Math.max(Object.keys(loadedData).length - 7, 0))
let loadedDataLimited = {}
lastDaysKeys.forEach(key => {
loadedDataLimited[key] = loadedData[key]
})
try {
let fm = FileManager.iCloud()
let path = fm.joinPath(fm.documentsDirectory(), 'covid19' + suffix + '.json')
fm.writeString(path, JSON.stringify(loadedDataLimited))
} catch (e) {
let fm = FileManager.local()
let path = fm.joinPath(fm.documentsDirectory(), 'covid19' + suffix + '.json')
fm.writeString(path, JSON.stringify(loadedDataLimited))
}
return loadedData
}
return {}
}
function loadData(suffix) {
try {
let fm = FileManager.iCloud()
let path = fm.joinPath(fm.documentsDirectory(), 'covid19' + suffix + '.json')
if (fm.fileExists(path)) {
let data = fm.readString(path)
return JSON.parse(data)
}
} catch (e) {
let fm = FileManager.local()
let path = fm.joinPath(fm.documentsDirectory(), 'covid19' + suffix + '.json')
if (fm.fileExists(path)) {
let data = fm.readString(path)
return JSON.parse(data)
}
}
return {};
}
// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: red; icon-glyph: briefcase-medical;
// LICENCE: Robert Koch-Institut (RKI), dl-de/by-2-0
// AUTHOR: rphl https://gist.github.com/rphl/0491c5f9cb345bf831248732374c4ef5
// TEST PROTOTYPE FOR R-VALUE !!!
// TEST PROTOTYPE FOR R-VALUE !!!
// TEST PROTOTYPE FOR R-VALUE !!!
const apiRUrl = `https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Projekte_RKI/Nowcasting_Zahlen_csv.csv?__blob=publicationFile`
function parseRCSV(rDataStr) {
let lines = rDataStr.split(/(?:\r\n|\n)+/).filter(function(el) {return el.length != 0});
let headers = lines.splice(0, 1)[0].split(";");
let valuesRegExp = /(?:\"([^\"]*(?:\"\"[^\"]*)*)\")|([^\";]+)/g;
let elements = [];
for (let i = 0; i < lines.length; i++) {
let element = {};
let j = 0;
while (matches = valuesRegExp.exec(lines[i])) {
var value = matches[1] || matches[2];
value = value.replace(/\"\"/g, "\"");
element[headers[j]] = value;
j++;
}
elements.push(element);
}
return elements
}
const widget = await createWidget()
if (!config.runsInWidget) {
await widget.presentSmall()
}
Script.setWidget(widget)
Script.complete()
async function createWidget() {
const list = new ListWidget()
const rDataStr = await new Request(apiRUrl).loadString()
const rData = parseRCSV(rDataStr)
let lastR = {}
rData.forEach(item => {
if (parseFloat(item['Schätzer_7_Tage_R_Wert']) > 0) {
lastR = item;
}
})
const d = list.addText('Date: ' + lastR['Datum'])
d.font = Font.mediumSystemFont(13)
const r = list.addText('R: ' + lastR['Schätzer_7_Tage_R_Wert'])
r.font = Font.mediumSystemFont(20)
return list
}
@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 19, 2020

🙋‍♂️Hinweis in eigener Sache :-)

Danke schon mal für das viele positive Feedback. Da hier schon fasst 250 Kommentare sind, und die Übersicht langsam leidet, habe ich das Skript in ein eigenes Repository umgezogen. Dies erleichtert die Wartung / Erweiterung, sowie die Übersicht ungemein 😄

D.h. alle zukünftigen Updates werde ich jetzt nur noch über das neue Repository bereitstellen.
Funktionsweise bleibt aber so wie bei dem GIST hier gleich, Copy&Paste :-)
Nur eben das organisatorische wird einfacher 😄

Repository: https://github.com/rphl/corona-widget

  • Fehler / Probleme / Wünsche bitte als Issue einstellen
  • Wenn ihr Änderungen habt, gerne ein Issue + PRs erstellen, evtl. kann ich es dann übernehmen.

IMG_5438


Einen Kaffee ausgeben 🙃: https://ko-fi.com/rapha


Updates
27.10.2020

  • Trend-Diagramme der letzten (max.)7 Tage für: Stadt / BL / Gesamt (Gespeicherte Werte werden wiederverwendet. Sonst am nächsten Tag 🙃)
  • Unterstützung für eigene Namen (Siehe Kommentar oben im Skript)

25.10.2020

  • Darstellung der aktuellen Fallzahlen je Bundesland (Erst am nächsten Tag verfügbar, da gechached werden muss)

24.10.2020

  • Support mediumWidget (2Spaltig) Widgetparamer. Siehe Kommentar im Skript.
  • Anzeige der aktuellen Fälle für den Landkreis incl. Trend. (Erst am nächsten Tag verfügbar, da gechached werden muss)
  • Trend für Inzidenz wird jetzt Grün wenn er fällt bzw. Rot wenn steigt.

23.10.2020

  • iCloud ist jetzt optional. Trend Daten werden jetzt auch lokal auf dem Gerät gespeichert.

22.10.2020

  • Es werden jetzt Inzidenzdaten für die letzten 7 Tage auf der iCloud zwischengespeichert. Diese sind die Basis für den Trend. Siehe auch covid19STADTNAME.json im Scriptable iCloud ordner.
  • Am ersten Tag nach dem Update wird kein Trend angezeigt (Da nur "heute" Verfügbar ist)

21.10.2020

  • Trend (Land / Bund)
  • Datum letztes update

20.10.2020

  • Bundesland hinzugefügt

Weitere Infos / Forks siehe: https://gist.github.com/kevinkub/46caebfebc7e26be63403a7f0587f664#gistcomment-3493076

@P8DFxKfyJB

This comment has been minimized.

Copy link

@P8DFxKfyJB P8DFxKfyJB commented Oct 19, 2020

Hi,
ich habe das mal ausprobiert, ich bekomme aber nur ein "The URL is invalid" Error.

Bild-3

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 19, 2020

Hmm evtl. gibt der Landkreis Request in deinem Fall kein Bundesland zurück. Habe das Skript etwas angepasst.

Wäre aber super wenn ich wüste wie die Rückhabe bei dir aussieht. Wenn es möglich ist, Zeile 43 folgendes reinkopieren: console.log(attr)

und Ausgabe posten. Sollte in etwa wie folgt aussehen: 2020-10-19 17:21:44: {"GEN":"Düsseldorf","cases7_per_100k":50.009889415431,"BL":"Nordrhein-Westfalen"} (mein Fall)
Dann könnte ich es prüfen.

@P8DFxKfyJB

This comment has been minimized.

Copy link

@P8DFxKfyJB P8DFxKfyJB commented Oct 19, 2020

Der Error bleibt, aber ich habe ein Ergebnis:

Bild-3

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 19, 2020

Habe es mal gecheckt es liegt nicht am Bundesland. Bekomme für Sömmerda/Thüringen passende Werte.

IMG_5358

Evtl als neues Skript anlegen und wieder Standortzugriff erlauben...

@P8DFxKfyJB

This comment has been minimized.

Copy link

@P8DFxKfyJB P8DFxKfyJB commented Oct 19, 2020

Jetzt funktioniert es. Ich habe irgend eine Änderung des Codes nicht mitbekommen.

@cryptosteve2

This comment has been minimized.

Copy link

@cryptosteve2 cryptosteve2 commented Oct 19, 2020

Funktioniert bei mir auf Anhieb gut. Nett gemacht, danke.

IMG_3209

Edit: ups, etwas groß geworden :)

@Reborn2

This comment has been minimized.

Copy link

@Reborn2 Reborn2 commented Oct 19, 2020

Tolles Script, würde nor noch eine Version für das Doppelwidget nebeneinander fehlen mit 2 Landkreisen.

@funkenstrahlen

This comment has been minimized.

Copy link

@funkenstrahlen funkenstrahlen commented Oct 19, 2020

Danke! Tolle Erweiterung!

@funkenstrahlen

This comment has been minimized.

Copy link

@funkenstrahlen funkenstrahlen commented Oct 19, 2020

@Reborn2 das ist möglich!

BF748787-B32C-4098-BE86-DD78177F1B37
0FAE6439-F84E-426C-A3A6-9784DC8FFA75

@Reborn2

This comment has been minimized.

Copy link

@Reborn2 Reborn2 commented Oct 19, 2020

Hallo

Meinte die mittlere Widget Größe
9C7B417B-5A02-44B8-858B-0C98D6C09FF0

@korbinio

This comment has been minimized.

Copy link

@korbinio korbinio commented Oct 20, 2020

Super Ding! Fände noch die Möglichkeit das Datum der letzten Aktualisierung anzuzeigen super.

@pedersla

This comment has been minimized.

Copy link

@pedersla pedersla commented Oct 20, 2020

Richtig gute Arbeit, danke dir!!!!!🙌🙌

@1121PD

This comment has been minimized.

Copy link

@1121PD 1121PD commented Oct 20, 2020

Vielen lieben Dank auch von mir 🙏

Warum sind das bei dir 2 Scripts, 1x iCloud??!!

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 20, 2020

@korbinio Super Ding! Fände noch die Möglichkeit das Datum der letzten Aktualisierung anzuzeigen super.

Evtl ist das eine Option for das Breite (medium) Widget ich überlebe mir mal was.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 20, 2020

@1121PD Vielen lieben Dank auch von mir 🙏

Warum sind das bei dir 2 Scripts, 1x iCloud??!!

Die iCloud Version speichert die Werte in der iCloud zwischen. Falls kein aktueller Standort ermittelt werden kann, werden die Zwischengespeicherten Werte genommen. Sonst bliebe das Widget leer. Alles andere ist gleich.

@1121PD

This comment has been minimized.

Copy link

@1121PD 1121PD commented Oct 20, 2020

@1121PD Vielen lieben Dank auch von mir 🙏
Warum sind das bei dir 2 Scripts, 1x iCloud??!!

Die iCloud Version speichert die Werte in der iCloud zwischen. Falls kein aktueller Standort ermittelt werden kann, werden die Zwischengespeicherten Werte genommen. Sonst bliebe das Widget leer. Alles andere ist gleich.

Ah ok, danke für die Info. Genau das hatte ich gerade mit Fehlermeldung im Widget. Musste es 1x starten dann kam die Anzeige wieder.
Aber man merkt dann nicht mehr ob immer nur der Wert aus iCloud genommen wird oder ob der Standort neu ermittelt wurde?

@wado-kd

This comment has been minimized.

Copy link

@wado-kd wado-kd commented Oct 20, 2020

@Reborn2 das ist möglich!

BF748787-B32C-4098-BE86-DD78177F1B37
0FAE6439-F84E-426C-A3A6-9784DC8FFA75

Hallo Funkenstrahlen,
kannst Du mir den Script für die 2 Standorte zusenden?
bei einem würde ich gerne meinen Wohnort fest eingeben und der andere, wo ich eben bin.
Bin leider kein Progi oder Scripter, sondern Anwender.
Gruß und Danke WADO

@korbinio

This comment has been minimized.

Copy link

@korbinio korbinio commented Oct 20, 2020

Hallo Funkenstrahlen,
kannst Du mir den Script für die 2 Standorte zusenden?
bei einem würde ich gerne meinen Wohnort fest eingeben und der andere, wo ich eben bin.
Bin leider kein Progi oder Scripter, sondern Anwender.
Gruß und Danke WADO

Auch als Anwender sollte man das hinbekommen. Ist hier schon mehrfache erklärt, einfach lesen. (Spoiler: einfach unter Parameter bei Widget bearbeiten die Koordinaten von deinem Wunschort angeben (z.B. "49.00, 8.40") )

@pedersla

This comment has been minimized.

Copy link

@pedersla pedersla commented Oct 20, 2020

Hallo Funkenstrahlen,
kannst Du mir den Script für die 2 Standorte zusenden?
bei einem würde ich gerne meinen Wohnort fest eingeben und der andere, wo ich eben bin.
Bin leider kein Progi oder Scripter, sondern Anwender.
Gruß und Danke WADO

Auch als Anwender sollte man das hinbekommen. Ist hier schon mehrfache erklärt, einfach lesen. (Spoiler: einfach unter Parameter bei Widget bearbeiten die Koordinaten von deinem Wunschort angeben (z.B. "49.00, 8.40") )

Einfach mehrere Widgets zum Startbildschirm hinzufügen und bei einem unter Widget-Settings in den Parametern die Koordinaten (siehe google) angeben, beim anderen leer lassen, dann zieht er sich dort deinen aktuellen standortö.

@wodkasreineseele

This comment has been minimized.

Copy link

@wodkasreineseele wodkasreineseele commented Oct 20, 2020

Ich habe folgendes Problem: Im Dark Mode ist alles ok, aber im normalen Mode wird das Widget nicht weiß.
Wenn ich das Script in der App öffne, ist der Hintergrund weiß. Vielleicht ist die Ursache mein schwarzes Wallpaper.
9A0E0B5A-F8AD-4C7E-BF0B-492739D8666B

@wado-kd

This comment has been minimized.

Copy link

@wado-kd wado-kd commented Oct 20, 2020

Auch als Anwender sollte man das hinbekommen. Ist hier schon mehrfache erklärt, einfach lesen. (Spoiler: einfach unter Parameter bei Widget bearbeiten die Koordinaten von deinem Wunschort angeben (z.B. "49.00, 8.40") )

Einfach mehrere Widgets zum Startbildschirm hinzufügen und bei einem unter Widget-Settings in den Parametern die Koordinaten (siehe google) angeben, beim anderen leer lassen, dann zieht er sich dort deinen aktuellen standortö.

Alles klar ich arbeite mich da rein und probiers aus. Danke für die Infos. Jetzt weis ich wo ich ansetzen soll.

@MatzeKitt

This comment has been minimized.

Copy link

@MatzeKitt MatzeKitt commented Oct 20, 2020

Es genügt übrigens, nur mit der ersten API-URL zu arbeiten, Dort kann man bei outputFields noch BL und cases7_bl_per_100k hinzufügen. Dann benötigt man den zweiten API-Aufruf nicht.

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Oct 20, 2020

Könntest du so ein Widget noch bauen ?

Anstatt der Fälle würde ich gerne die Zahl vom gesamten Bundesland haben

F8750AC3-3455-4AB5-A85E-6BE7E826C245

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 21, 2020

@wodkasreineseele Habe ein Update online gestellt (Incl Darkmode fixes von Kevinkub) Gerne mal testen.
Update:
IMG_0005

@grisu112

This comment has been minimized.

Copy link

@grisu112 grisu112 commented Oct 22, 2020

Ist es jetzt noch möglich die Gesamtzahl der neuen Fälle Bundesweit anzuzeigen?

@kevinkub

This comment has been minimized.

Copy link

@kevinkub kevinkub commented Oct 22, 2020

Ich habe den Screenshot deines Widgets in meiner Liste aktualisiert. Ich finde den Trend super cool und würde den gerne übernehmen, aber ich befürchte, dass der nicht so funktioniert wie gedacht, oder? Ich verstehe es so: Wenn der Tageswert kleiner dem Durchschnittswert der letzten sieben Tagen liegt, dann sinkt der Trend (also z. B. Sonntags, wenn weniger Ergebnisse gemeldet werden), obwohl der Durchschnittswert steigt (bzw. steigen könnte), oder? Das hält mich aktuell von der Umsetzung zurück.

@TheSpirit

This comment has been minimized.

Copy link

@TheSpirit TheSpirit commented Oct 22, 2020

Das mit dem Trend finde ich auch interessant. Aber meiner Meinung nach müsste der Trend den heutigen 7 Tage Inzidenzwert mit dem von gestern vergleichen.

@kevinkub

This comment has been minimized.

Copy link

@kevinkub kevinkub commented Oct 22, 2020

@TheSpirit genau, den gibt es aber leider nicht per Schnittstelle und um den Wert zu cachen bräuchte man eine eigene API oder müsste lokal cachen (das geht in Scriptable leider nur per Datei schreiben).

@TheSpirit

This comment has been minimized.

Copy link

@TheSpirit TheSpirit commented Oct 22, 2020

@kevinkub Leider bin ich in Scriptable nicht so fit, aber das mit dem Datei schreiben wäre dann ja eine Option.
Muss man halt einmal am Abend machen (für alle Landkreise am besten, die man über den Tag "gesehen" hat) und dann hat man am nächsten Tag die Daten auch vom Vortag.
Leider fehlt es mir hier an know how, dies umzusetzen.

@barclay-reg

This comment has been minimized.

Copy link

@barclay-reg barclay-reg commented Oct 22, 2020

Hi @rphl und @kevinkub,
das Thema mit dem Trend interessiert mich auch: aber ich befürchte, dass dieser nicht aus den Daten ermittelt werden kann.
Gibt es irgendwo eine genaue Beschreibung der Felder? Ich habe nichts gefunden.

  • cases7_per_100k ist ziemlich sicher die Zahl der neuen Fälle der letzten 7 Tage je 100k, für Ravensburg heute 23.1, gestern 23.6
  • cases_per_100k scheint mir eher die Anzahl aller bisherigen Fälle je 100k für Ravensburg heute 368.2

Ich finde die Berechnung daher auch nicht nachvollziehbar ... diese würde für heute "Steigend" ausgeben.

@krnkjcid

This comment has been minimized.

Copy link

@krnkjcid krnkjcid commented Oct 22, 2020

Das RKI stellt die 7-Tage-Inzidenzwerte der Vortage wohl leider nur als Excel-Download zur Verfügung:

https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Daten/Fallzahlen_Kum_Tab.html

@MatzeKitt

This comment has been minimized.

@barclay-reg

This comment has been minimized.

Copy link

@barclay-reg barclay-reg commented Oct 22, 2020

@krnkjcid ein großteil der Zahlen aus dem Excel kommt sehrwohl von der Schnittstelle, die wir hier verwenden

Das Widget nutzt die NPGEO Corona Schnittstelle des RKI.

@TheSpirit

This comment has been minimized.

Copy link

@TheSpirit TheSpirit commented Oct 22, 2020

per api bekommt man schon den 7-Tage-Inzidenzwert, aber eben nur den aktuellen von heute

@krnkjcid

This comment has been minimized.

Copy link

@krnkjcid krnkjcid commented Oct 22, 2020

@krnkjcid ein großteil der Zahlen aus dem Excel kommt sehrwohl von der Schnittstelle, die wir hier verwenden

Das Widget nutzt die NPGEO Corona Schnittstelle des RKI.

Aber aus der Schnittstelle lassen sich ja nur die aktuellen Daten – und keine Vortages-Werte – beziehen.

@krnkjcid

This comment has been minimized.

Copy link

@krnkjcid krnkjcid commented Oct 22, 2020

Vielleicht ginge es mit dieser API: https://services7.arcgis.com/mOBPykOjAyBO2ZKk/ArcGIS/rest/services/Coronafälle_in_den_Bundesländern/FeatureServer/0

Das ist allerdings nur auf Bundesland-Ebene. Und die hier ausgegebene Fallzahl ist auch lediglich die Gesamtfallzahl und nicht die Fallzahl der aktuell Erkrankten.

@krnkjcid

This comment has been minimized.

Copy link

@krnkjcid krnkjcid commented Oct 22, 2020

https://npgeo-corona-npgeo-de.hub.arcgis.com/datasets/dd4580c810204019a7b8eb3e0b329dd6_0/data

Man könnte hier über Meldedatum die jeweiligen Tage filtern und hier die Zahl der neuen Fälle pro LK summieren und diese Dann durch die EWZ aus der bereits genutzten Schnittstelle dividieren und mit 100000 multiplizieren.

Soweit die Theorie. Ich selbst kann es nur leider nicht umsetzen und weiß auch nicht ob es praktisch umsetzbar wäre, da ich Anfänger in der Materie bin.

@ProfMertes

This comment has been minimized.

Copy link

@ProfMertes ProfMertes commented Oct 22, 2020

@rphl: Erstmal danke für deinen Einsatz und die zügigen Updates!
Kleine Anmerkung: Bei einem 3-stelligen Inzidenzwert wird der Pfeil aufgrund von Platzmangel ausgeblendet (siehe Screenshot).
IMG_2520

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 22, 2020

Hi @rphl und @kevinkub,
das Thema mit dem Trend interessiert mich auch: aber ich befürchte, dass dieser nicht aus den Daten ermittelt werden kann.
Gibt es irgendwo eine genaue Beschreibung der Felder? Ich habe nichts gefunden.

  • cases7_per_100k ist ziemlich sicher die Zahl der neuen Fälle der letzten 7 Tage je 100k, für Ravensburg heute 23.1, gestern 23.6
  • cases_per_100k scheint mir eher die Anzahl aller bisherigen Fälle je 100k für Ravensburg heute 368.2

Ich finde die Berechnung daher auch nicht nachvollziehbar ... diese würde für heute "Steigend" ausgeben.

@barclay-reg Gehe davon aus das cases_per_100k der (leider so hohe) Tageswert ist. Bin mir aber aktuell nicht mehr ganz so sicher. Werde es mal checken.

Das RKI stellt die 7-Tage-Inzidenzwerte der Vortage wohl leider nur als Excel-Download zur Verfügung:

@krnkjcid Wäre eine Idee. Aber jedesmal 100kb zu laden & parsen ist suboptimal. Beim Trafficverbrauch wären die Leute dann schreien 😅

Nach der aktuellen Lage sehen die Zahlen aber plausibel aus -.-

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 22, 2020

@rphl: Erstmal danke für deinen Einsatz und die zügigen Updates!
Kleine Anmerkung: Bei einem 3-stelligen Inzidenzwert wird der Pfeil aufgrund von Platzmangel ausgeblendet (siehe Screenshot).
IMG_2520

@ProfMertes Habe mal ein Quick Fix online gestellt. Würde nur ungern die Schrift verkleinern. Gerne testen.

@barclay-reg

This comment has been minimized.

Copy link

@barclay-reg barclay-reg commented Oct 22, 2020

Hi @rphl und @kevinkub,
das Thema mit dem Trend interessiert mich auch: aber ich befürchte, dass dieser nicht aus den Daten ermittelt werden kann.
Gibt es irgendwo eine genaue Beschreibung der Felder? Ich habe nichts gefunden.

  • cases7_per_100k ist ziemlich sicher die Zahl der neuen Fälle der letzten 7 Tage je 100k, für Ravensburg heute 23.1, gestern 23.6
  • cases_per_100k scheint mir eher die Anzahl aller bisherigen Fälle je 100k für Ravensburg heute 368.2

Ich finde die Berechnung daher auch nicht nachvollziehbar ... diese würde für heute "Steigend" ausgeben.

@barclay-reg Gehe davon aus das cases_per_100k der (leider so hohe) Tageswert ist. Bin mir aber aktuell nicht mehr ganz so sicher. Werde es mal checken.

Das RKI stellt die 7-Tage-Inzidenzwerte der Vortage wohl leider nur als Excel-Download zur Verfügung:

@krnkjcid Wäre eine Idee. Aber jedesmal 100kb zu laden & parsen ist suboptimal. Beim Trafficverbrauch wären die Leute dann schreien 😅

Nach der aktuellen Lage sehen die Zahlen aber plausibel aus -.-

@rphl ist definitiv nicht der Tageswert. Es gibt/gab 1051 Fälle (davon ca 840 genesene; ca 190 aktive ... habe die Zahlen aus der Zeitung von gestern) - da hier 285k Einwohner sind, ergibt das ca 368 Fälle je 100k

@krnkjcid

This comment has been minimized.

Copy link

@krnkjcid krnkjcid commented Oct 22, 2020

Die Trend-Auswertung macht momentan definitiv keinen Sinn. Bei mir zeigt er nun für das Bundesland eine sinkende Inzidenz an, obwohl diese so hoch wie nie ist. Der Vergleich mit dem Gesamtwert der Fälle pro 100000EW klappt da nicht.

@ProfMertes

This comment has been minimized.

Copy link

@ProfMertes ProfMertes commented Oct 22, 2020

@rphl: Erstmal danke für deinen Einsatz und die zügigen Updates!
Kleine Anmerkung: Bei einem 3-stelligen Inzidenzwert wird der Pfeil aufgrund von Platzmangel ausgeblendet (siehe Screenshot).
IMG_2520

@ProfMertes Habe mal ein Quick Fix online gestellt. Würde nur ungern die Schrift verkleinern. Gerne testen.

Danke für den schnellen workaround.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 22, 2020

Die Trend-Auswertung macht momentan definitiv keinen Sinn. Bei mir zeigt er nun für das Bundesland eine sinkende Inzidenz an, obwohl diese so hoch wie nie ist. Der Vergleich mit dem Gesamtwert der Fälle pro 100000EW klappt da nicht.

@krnkjcid @barclay-reg Habe mal ein iCloud caching für die (max.) letzten 7Tage eingebaut. Daraus berechnet sich jetzt der "Trend" jetzt. Für den ersten Tag gibt es keinen Trend, erst ab "morgen". Gerne testen.

    "21.10.2020": {
        "incidence": 70.9,
        "incidenceBL": 60.8,
        "areaName": "Düsseldorf",
        "nameBL": "NRW",
        "shouldCache": true,
        "updated": "21.10.2020, 00:00 Uhr",
        "incidencePerState": [
            ...
        ],
        "averageIncidence": 50.7,
        "cases": 7656
    }
    "22.10.2020": {
        "incidence": 79.9,
        "incidenceBL": 70.8,
        "areaName": "Düsseldorf",
        "nameBL": "NRW",
        "shouldCache": true,
        "updated": "22.10.2020, 00:00 Uhr",
        "incidencePerState": [
            ...
        ],
        "averageIncidence": 45.7,
        "cases": 11287
    }
}```
@Tekelua

This comment has been minimized.

Copy link

@Tekelua Tekelua commented Oct 22, 2020

Vielen Dank für den tollen Fork; gefällt mir von den aktuellen definitiv am Besten 👍
Ich habe dein Design noch ein wenig weiter in einem Fork angepasst und bin auf Updates zum Thema Trendpfeil gespannt!

@daseichi

This comment has been minimized.

Copy link

@daseichi daseichi commented Oct 22, 2020

Vielen Dank für deine Arbeit, das ist echt sehr gut geworden!!

@krnkjcid

This comment has been minimized.

Copy link

@krnkjcid krnkjcid commented Oct 22, 2020

Die Trend-Auswertung macht momentan definitiv keinen Sinn. Bei mir zeigt er nun für das Bundesland eine sinkende Inzidenz an, obwohl diese so hoch wie nie ist. Der Vergleich mit dem Gesamtwert der Fälle pro 100000EW klappt da nicht.

@krnkjcid @barclay-reg Habe mal ein iCloud caching für die (max.) letzten 7Tage eingebaut. Daraus berechnet sich jetzt der "Trend" jetzt. Für den ersten Tag gibt es keinen Trend, erst ab "morgen". Gerne testen.

    "21.10.2020": {
        "incidence": 70.9,
        "incidenceBL": 60.8,
        "areaName": "Düsseldorf",
        "nameBL": "NRW",
        "shouldCache": true,
        "updated": "21.10.2020, 00:00 Uhr",
        "incidencePerState": [
            ...
        ],
        "averageIncidence": 50.7,
        "cases": 7656
    }
    "22.10.2020": {
        "incidence": 79.9,
        "incidenceBL": 70.8,
        "areaName": "Düsseldorf",
        "nameBL": "NRW",
        "shouldCache": true,
        "updated": "22.10.2020, 00:00 Uhr",
        "incidencePerState": [
            ...
        ],
        "averageIncidence": 45.7,
        "cases": 11287
    }
}```

Super Arbeit! Danke für deine Mühe.

@barclay-reg

This comment has been minimized.

Copy link

@barclay-reg barclay-reg commented Oct 22, 2020

Die Trend-Auswertung macht momentan definitiv keinen Sinn. Bei mir zeigt er nun für das Bundesland eine sinkende Inzidenz an, obwohl diese so hoch wie nie ist. Der Vergleich mit dem Gesamtwert der Fälle pro 100000EW klappt da nicht.

@krnkjcid @barclay-reg Habe mal ein iCloud caching für die (max.) letzten 7Tage eingebaut. Daraus berechnet sich jetzt der "Trend" jetzt. Für den ersten Tag gibt es keinen Trend, erst ab "morgen". Gerne testen.

    "21.10.2020": {
        "incidence": 70.9,
        "incidenceBL": 60.8,
        "areaName": "Düsseldorf",
        "nameBL": "NRW",
        "shouldCache": true,
        "updated": "21.10.2020, 00:00 Uhr",
        "incidencePerState": [
            ...
        ],
        "averageIncidence": 50.7,
        "cases": 7656
    }
    "22.10.2020": {
        "incidence": 79.9,
        "incidenceBL": 70.8,
        "areaName": "Düsseldorf",
        "nameBL": "NRW",
        "shouldCache": true,
        "updated": "22.10.2020, 00:00 Uhr",
        "incidencePerState": [
            ...
        ],
        "averageIncidence": 45.7,
        "cases": 11287
    }
}```

code sieht schonmal super aus - vielen Dank.

@Seronifar

This comment has been minimized.

Copy link

@Seronifar Seronifar commented Oct 22, 2020

Vielen Dank für das Script und die Arbeit.
Könntest du noch die Warnstufe gelb ab einem Wert von 20 einbauen? Dann müsste ich das nicht nach jedem Update selber rein fummeln.
In Rheinland-Pfalz gibt es jedenfalls diese Stufe, wie es in anderen Bundesländern aussieht weiß ich leider nicht.
Danke.

Edit: Und vielleicht auch Dunkelrot ab einem Wert vom 100?

@korbinio

This comment has been minimized.

Copy link

@korbinio korbinio commented Oct 22, 2020

Super Arbeit, ist mein Lieblingsfork von dem Widget! Kleiner Bug-Report: Die Fallzahlen neben dem Updatezeitpunkt sind von ganz Deutschland und nicht von dem entsprechenden Ort...

@grisu112

This comment has been minimized.

Copy link

@grisu112 grisu112 commented Oct 22, 2020

Super Arbeit, ist mein Lieblingsfork von dem Widget! Kleiner Bug-Report: Die Fallzahlen neben dem Updatezeitpunkt sind von ganz Deutschland und nicht von dem entsprechenden Ort...

Für mich ist das kein Bug, genau das hab ich gesucht 😊

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 23, 2020

@korbinio Super Arbeit, ist mein Lieblingsfork von dem Widget! Kleiner Bug-Report: Die Fallzahlen neben dem Updatezeitpunkt sind von ganz Deutschland und nicht von dem entsprechenden Ort...

Danke. Ist aber in der Tag kein Bug ;-) Es ist gewollt die Gesamtzahl für D.

@korbinio

This comment has been minimized.

Copy link

@korbinio korbinio commented Oct 23, 2020

Danke. Ist aber in der Tag kein Bug ;-) Es ist gewollt die Gesamtzahl für D.

Ah ok. Bin nicht so tief in der Materie, aber was müsste ich denn verändern wenn ich hier die Fallzahl für den entsprechenden Ort/Landkreis angezeigt haben möchte?

@tswb83

This comment has been minimized.

Copy link

@tswb83 tswb83 commented Oct 24, 2020

Ich bin begeistert - vielen Dank!
Verbesserungsvorschläge:

  1. Pfeil - Tendenz: separate Farbe (grün wenn Zahlen im Trend runter gehen, auch wenn noch Risiko-Gebiet)
  2. Könnte man zwei Kreise / Zahlen gleichzeitig anzeigen? zB aktueller Ort (nach Position) & darunter ein “Fester” - zB den Wohnort?
  3. Deutschland - Gesamtzahl: auch mit Tendenz
@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 24, 2020

Super gemacht, vielen Dank!

Wie kann ich denn hinter dem Bundesland noch die aktuellen fallzahlen einfügen? Also für Hamburg sind heute zum Beispiel (fiktiv) 300 neue Infektionen dazu gekommen. Ich würde mir diesen Wert gerne, wie ganz unten die Gesamtzahl, hinter dem Bundesland anzeigen lassen, also so: HH (+300).

@barclay-reg

This comment has been minimized.

Copy link

@barclay-reg barclay-reg commented Oct 24, 2020

@tswb83 mehrere Locations habe ich bei mir grad umgesetzt. Muss das noch polieren und dann stelle ich es hier bereit

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 24, 2020

Ich habe mich gerade in der API etwas umgesehen. Wird dort der Wert für die Neuinfektionen pro Bundesland gar nicht ausgegeben? Ich konnte den wer den man im Corona Dashboard angezeigt bekommt, nirgends über die api auslesen.

Das würde heißen man müsste sich den Wert selbst aus der Differenz der Infektionen zum Vortag berechnen... sollte eigentlich nicht so schwer sein, aber wie ist es mit dem Speicher? Man muss ja immer den Wert vom Vortag Zwischenspeichern.

Oder hab ich was übersehen?

@barclay-reg

This comment has been minimized.

Copy link

@barclay-reg barclay-reg commented Oct 24, 2020

@suffix12 das Zwischenspeichern ist schon seit vorgestern drin, sollte also auch mit den Zahlen vom BL gehen

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 24, 2020

Ah super!

Ich hab gesehen du hast auch eine Funktion die den gestrigen Tag berechnet. Wäre es auch möglich in einem Aufruf direkt die Werte von gestern aus der api zu beziehen und direkt mit dem Wert vom aktuellen Tag zu verrechnen?

Dann bräuchte ich gar nicht zwischenzuspeichern.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 24, 2020

@suffi12

Die API gibt hier nur Gesamt "Anzahl Fälle" je Landkreis/Bundesland zurück. Die Differenz könnte man über das "Caching" zum Vortag berechnen.

Soweit ich das sehe gibt es keine Daten für einen bestimmten Tag in der API. Deswegen nutze ich den weg des lokalen cachings.


mehrere Locations habe ich bei mir grad umgesetzt. Muss das noch polieren und dann stelle ich es hier bereit

@barclay-reg Wie sieht das platztechnisch im Widget aus? Nicht das es zu überfüllt/unlesbar wird. Schon mal probiert das in einem medium Widget (2-Spaltig) umzusetzen?

Das wäre mein Ziel es auszuprobieren: 2-Spaltiges mediumWidget

[ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ]
+------+------+
|  GEO | FEST |
+------+------+
[ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ]
@barclay-reg

This comment has been minimized.

Copy link

@barclay-reg barclay-reg commented Oct 24, 2020

@rphl ... so sieht es grad bei mir aus
366D81A0-5BE1-4779-B889-D04D34F42FB4
FB942D79-C904-4C7D-AEA1-62DB06E0B29F

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 24, 2020

@rphl ... so sieht es grad bei mir aus
366D81A0-5BE1-4779-B889-D04D34F42FB4
FB942D79-C904-4C7D-AEA1-62DB06E0B29F

Würdest du den Code dafür zur Verfügung stellen?

@TheSpirit

This comment has been minimized.

Copy link

@TheSpirit TheSpirit commented Oct 24, 2020

das hier

[ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ]
+------+------+
|  GEO | FEST |
+------+------+
[ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ]

fände ich auch super

@barclay-reg

This comment has been minimized.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 24, 2020

@TheSpirit
Ein Update mit aktuell Fällen fürs Land/Stadt + Trend ist online. Auch ein erster MediumWidget support ist drin. Gerne Testen :-)

widget1

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 24, 2020

Hey schaut schon sehr interessant aus.

Kannst du die Farben der Zahlen noch etwas feiner justieren, in anlehnung an die bekannten Grenzwerte?
Unter 25 grün
Ab 25 gelb
Ab 35 Orange
Ab 50 rot
Ab 100 dunkelrot

So fein detailliert wäre geil :)

Sorry dass ich hier nur „fordere“ ohne zu leisten, bin auf dem Gebiet ein Noob. Kann nur Copy/Paste 🤣

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 24, 2020

@TheSpirit
Ein Update mit aktuell Fällen fürs Land/Stadt + Trend ist online. Auch ein erster MediumWidget support ist drin. Gerne Testen :-)

widget1

Das ist jetzt mit den täglichen neuen fallzahlen pro Bundesland? Cool, vielen Dank!

Ps. Kommen sicher erst nach einem Tag Nutzung rein?

@mappledp

This comment has been minimized.

Copy link

@mappledp mappledp commented Oct 24, 2020

Erstmal dickes Lob für die Arbeit. 👍🏻
Leider bei höheren Werten nicht ganz optimal:
3D89D914-1A86-43E3-B0BE-941F3BC8062C

@chimcen

This comment has been minimized.

Copy link

@chimcen chimcen commented Oct 24, 2020

Hammer Ding! Danke.
Wäre geil wenn man für das mittlere Widget beide Orte per GeoDaten vorgeben könnte. Denn als Pendler zwischen zwei Orten ist sonst blöd, weil an einem Ort dann zweimal der selbe Ort (einmal via GPS, einmal via Parameter) angezeigt wird...

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 24, 2020

@RosoV89 Habe mal die anderen Schwellenwerte hinzugefügt ;-)

Das ist jetzt mit den täglichen neuen fallzahlen pro Bundesland? Cool, vielen Dank!
Ps. Kommen sicher erst nach einem Tag Nutzung rein

@suffix12 Ja, sollten aber morgen dargestellt werden.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 24, 2020

@mappledp Was für ein iPhone hast du? Eigentlich sollten alle Werte bis 3 Stellen je Inzidenz nicht abgeschnitten werden.
Sind die Zahlen in Berchtesgarden schon 4 Stellig 🤨?

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 24, 2020

@chimcen

Hammer Ding! Danke.
Wäre geil wenn man für das mittlere Widget beide Orte per GeoDaten vorgeben könnte. Denn als Pendler zwischen zwei Orten ist sonst blöd, weil an einem Ort dann zweimal der selbe Ort (einmal via GPS, einmal via Parameter) angezeigt wird...

Habe mal die Parameter etwas angepasst. Siehe Kommentar oben im Skript. Jetzt können beide Orte Fix gesetzt werden, oder auch nur jeweils eins davon.

 * Fix Coordinates/MediumWidget
 * Set Widgetparameter for each column, seperated by ";" Format: POSITION,LAT,LONG;POSITION,LAT,LONG
 *
 * Examples:
 *
 * First fix column (No second column): 0,51.1244,6.7353
 * Second fix column (Second column is visble, MediumWidget): 1,51.1244,6.7353
 * Both Fix columns (both are visble, MediumWidget): 0,51.1244,6.7353;1,51.1244,6.7353
 * Only Second Fix (both are visble, MediumWidget): 1,51.1244,6.7353
 */
@chimcen

This comment has been minimized.

Copy link

@chimcen chimcen commented Oct 25, 2020

Hammer wie schnell - leider passt da was noch nicht. Mir wird bei Beiden der gleiche Ort angezeigt.
Habe Dein kpl. neues Script verwendet und als Parameter das hier übergeben:
0,48.13743,11.57549;1,48.24670,12.52155

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

Hmm komisch, mit deinen Werten bekomme ich zwei Orte angezeigt.

Kannst du mal checken ob du das neuste Script hast?

FC5B35E2-3978-4145-8E85-B652DFDF276C

@TheSpirit

This comment has been minimized.

Copy link

@TheSpirit TheSpirit commented Oct 25, 2020

Was bedeutet der weiße Hintergrund beim Bundesland?
Und noch ein Vorschlag.
Wenn der Inzidenzwert gleich bleibt, wird ja auch der Pfeil nach oben dargestellt. Finde das nicht so schön. Könntest du hier nicht - anzeigen und dann in grau?
Danke für die super Arbeit

@chimcen

This comment has been minimized.

Copy link

@chimcen chimcen commented Oct 25, 2020

Hmm komisch, mit deinen Werten bekomme ich zwei Orte angezeigt.

Kannst du mal checken ob du das neuste Script hast?

FC5B35E2-3978-4145-8E85-B652DFDF276C

Es geht jetzt. War schon das neue Script.
Ich musste das Widget nur entfernen und wieder neu rein machen, dann gings sofort.

Übrigens: danke für Deine tolle Arbeit. 👍 :)

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

38D9ED92-859D-45B6-AF08-49E8B5398EE8

Super tolle Arbeit. Du siehst, es funktioniert.

Unter den Werten ist ja jetzt noch Platz. Könntest du darunter nicht die Fälle pro Landkreis jeweils drunter packen? und auch mit einem Pfeil die Entwicklung kennzeichnen?

Der Pfeil hat ja jetzt nur zwei Ausprägungen. Hoch oder runter. sicher könnte man jetzt noch verschiedene Parameter definieren und den Pfeil unterschiedliche Ausrichtungen geben.. 😅 das wäre dann die eierlegende wollmilchsau. Wenn ich könnte würde ich es programmieren.

Kannst du es machen? :)))

Vielleicht legst du es sogar als Fork an, weil das jetzige Widget ja schon sehr gut ist.

lieb frag

:)

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Die Berechnung der Anzahl der neuinfektionen pro Bundesland, also die 183 bei Bremen zum Beispiel, stimmt leider nicht ganz mit der vom RKI überein... berechnen die ihre Zahl irgendwie anders? :D

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Habe gerade noch ein Problemchen festgestellt. Es scheint mir so als wenn das kleine Einzel Widget die Koordinaten nicht mehr ausliest wenn man welche fest vorgibt. Gestern ging das noch mit dem alten Script

Edit: ich glaube ich gebe beim Einzel Widget die Parameter falsch an oder sie werden nicht mehr ausgelesen. Ich gebe sie in diesem Format an: xx.xxxxx,xx.xxxxx

Müsste doch passen oder?

@cuca94

This comment has been minimized.

Copy link

@cuca94 cuca94 commented Oct 25, 2020

0,lat,long ist jetzt nötig

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

0,lat,long ist jetzt nötig

Ah ja jetzt gehts... danke!

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Die Berechnung der Anzahl der neuinfektionen pro Bundesland, also die 183 bei Bremen zum Beispiel, stimmt leider nicht ganz mit der vom RKI überein... berechnen die ihre Zahl irgendwie anders? :D

Liegt das vielleicht daran, dass die Zahlen für die Kreise ausgewertet werden, und nicht fürs gesamte Bundesland?

@Devs91

This comment has been minimized.

Copy link

@Devs91 Devs91 commented Oct 25, 2020

Hat jemand auch das Probelm, dass es so angezeigt wird? Habe zwei iPad´s bei dem anderen funktioniert es ohne Probleme und bei dem zweiten geht es nicht?!. Nur wenn man auf den Button drückt.

BF5ECACD-7BEF-4D3F-A9D6-EEF1DBD18FF8

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Hat jemand auch das Probelm, dass es so angezeigt wird? Habe zwei iPad´s bei dem anderen funktioniert es ohne Probleme und bei dem zweiten geht es nicht?!. Nur wenn man auf den Button drückt.

Du musst nen longpress auf das Widget machen, dann Widget bearbeiten auswählen und dort dann das zuvor erstelle Script Auswahlen

@Devs91

This comment has been minimized.

Copy link

@Devs91 Devs91 commented Oct 25, 2020

Hab ich gemacht, sonst würde es ja bei dem anderen iPad nicht funktionieren, es wird kurz „weis“ und dann kommt das Play-Symbol wieder.

@Webby0815

This comment has been minimized.

Copy link

@Webby0815 Webby0815 commented Oct 25, 2020

Vielen Dank für dieses Widget .könntest du bitte die Zahl der bestätigten Fälle und die todesopfer in zahlen mit einbinden ,jeweils für das Land und den Ort ?

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Vielen Dank für dieses Widget .könntest du bitte die Zahl der bestätigten Fälle und die todesopfer in zahlen mit einbinden ,jeweils für das Land und den Ort ?

Man sollte allerdings aufpassen dass man es nicht überlädt. Zu viele zahlen ohne Beschriftung führen zu Verwirrung, am Ende weiß man gar nicht mehr welche Zahl was anzeigt.

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Hab ich gemacht, sonst würde es ja bei dem anderen iPad nicht funktionieren, es wird kurz „weis“ und dann kommt das Play-Symbol wieder.

Hast du mal neugestartet? Und das Widget nochmal neu erstellen.

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Vielen Dank für dieses Widget .könntest du bitte die Zahl der bestätigten Fälle und die todesopfer in zahlen mit einbinden ,jeweils für das Land und den Ort ?

Man sollte allerdings aufpassen dass man es nicht überlädt. Zu viele zahlen ohne Beschriftung führen zu Verwirrung, am Ende weiß man gar nicht mehr welche Zahl was anzeigt.

Recht hast du. Aber vielleicht ist es mit relativ wenig Aufwand möglich und dann kann man ein Fork davon erstellen. Ich persönlich interessiere mich für die fälle. Weniger für die Todeszahlen (das ist schon an sich traurig genug)

@Webby0815

This comment has been minimized.

Copy link

@Webby0815 Webby0815 commented Oct 25, 2020

Stimmt ,die fallzahlen wären aber trotzdem interessant

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Ja auf jeden fall.

Es steht und fällt mit dem Programmierer des skripts. Ich bin ein Noob und kann es selbst nicht programmieren.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

Die Berechnung der Anzahl der neuinfektionen pro Bundesland, also die 183 bei Bremen zum Beispiel, stimmt leider nicht ganz mit der vom RKI überein... berechnen die ihre Zahl irgendwie anders? :D

Hey. Die Berechnung erfolgt anhand der "AnzahlFallzahl" je Landkreis/Stadt da es in der API da es keinen Wert für neue Fälle am Tag im Kreis/Stadt gibt. Oder übersehe ich da was?
Die Differenz zum Vortag ergibt somit den auch den Trend.

"Anzahl am Tag" habe ich z.B nur in den Lokalen APIs z.b vom Rheinkreis Neuss gefunden. Aber das wäre nur eine lokale Lösung.
https://opendata.rhein-kreis-neuss.de/explore/dataset/rhein-kreis-neuss-corona-pressebericht/api/?sort=datum&q.timerange.datum=datum:%5B2020-10-23T22:00:00Z+TO+2020-10-24T21:59:59Z%5D

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

Vielen Dank für dieses Widget .könntest du bitte die Zahl der bestätigten Fälle und die todesopfer in zahlen mit einbinden ,jeweils für das Land und den Ort ?

@Webby0815 Das wären zu viele Zahlen ohne Beschriftung auf der kleinen Fläche. Da kommt man schnell durcheinander und es wird zu unübersichtlich.

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Die Berechnung der Anzahl der neuinfektionen pro Bundesland, also die 183 bei Bremen zum Beispiel, stimmt leider nicht ganz mit der vom RKI überein... berechnen die ihre Zahl irgendwie anders? :D

Hey. Die Berechnung erfolgt anhand der "AnzahlFallzahl" je Landkreis/Stadt da es in der API da es keinen Wert für neue Fälle am Tag im Kreis/Stadt gibt. Oder übersehe ich da was?
Die Differenz zum Vortag ergibt somit den auch den Trend.

"Anzahl am Tag" habe ich z.B nur in den Lokalen APIs z.b vom Rheinkreis Neuss gefunden. Aber das wäre nur eine lokale Lösung.
https://opendata.rhein-kreis-neuss.de/explore/dataset/rhein-kreis-neuss-corona-pressebericht/api/?sort=datum&q.timerange.datum=datum:%5B2020-10-23T22:00:00Z+TO+2020-10-24T21:59:59Z%5D

Verstehe, das heißt du nimmst die „AnzahlFälle“ und vergleichst sie mit dem Vortag. Differenz ist dann die Zahl neuer Fälle pro Tag. Das machst du aktuell für den „Kreis“, korrekt? Also Bremen wäre nur Bremen ohne Bremerhaven.

Ich bin davon ausgegangen, dass du die Zahlen pro Bundesland nimmst, die auch im RKI Dashboard angezeigt werden, also hier die 190 fürs Bundesland Bremen. So hätte man die „offiziell“ abrufbaren Werte im Widget.

20C4D792-7906-492D-BD75-97490369847B

Dies wäre zusätzlich noch sehr interessant, falls das platzmäßig noch realisierbar ist.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

@RosoV89 Unter den Werten ist ja jetzt noch Platz. Könntest du darunter nicht die Fälle pro Landkreis jeweils drunter packen? und auch mit einem Pfeil die Entwicklung kennzeichnen?

Den Platz unten möchte ich später für ein Diagram nutzen. Weitere Zahlen würden wahrscheinlich das Widget überfrachten.

@RosoV89 Der Pfeil hat ja jetzt nur zwei Ausprägungen. Hoch oder runter. sicher könnte man jetzt noch verschiedene Parameter definieren und den Pfeil unterschiedliche Ausrichtungen geben.. 😅 das wäre dann die eierlegende wollmilchsau. Wenn ich könnte würde ich es programmieren.

Mal schauen. Hier müsste es plausible grenzen für die Tendenzen geben ↑↓ Und das ist denke ich mal von BL zu BL unterschiedlich?!?

>+ 5 = ↑
> 0 = ↗
<- 5 = ↓
< 0 = ↘

Wenn du Vorschläge hast, gerne her damit. Dann kann ich es mir überlegen es einzubauen

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Ja es fehlt eine plausible Grundlage. Aber dein Vorschlag klingt schon praktikabel.

Aber wenn du ein Diagramm planst, bin ich echt gespannt, wohin die Entwicklung geht. Find ich toll. :)

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Wenn man die Schriftarten kleiner macht, würde mehr passen. Aber ja, es muss für den Großteil der Nutzer einen Sinn erfüllen.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

@suffix Ja ist nur für den Landkreis/Stadt weil mich das mehr Interessiert. Aber die Differenz zum BL kann ich auch hinzufügen, muss nur schauen wo 😅
Ich sehe jedoch das die BL Rückgabe für Bremen, nicht die erwähnten +190 Zurückgibt. Wobei die 4342 passt.
Ich muss mal checken ob es eine andere Api gibt die es evtl direkt zurück gibt. Oder gehen die auch da über die Differenz?

 "attributes": {
        "OBJECTID_1": 4,
        "LAN_ew_AGS": "04",
        "LAN_ew_GEN": "Bremen",
        "LAN_ew_BEZ": "Freie Hansestadt",
        "LAN_ew_EWZ": 681202,
        "OBJECTID": 5,
        "Fallzahl": 4342,
        "Aktualisierung": 1603576800000,
        "AGS_TXT": "04",
        "GlobalID": "4132268b-54de-4327-ac1e-760e915112f1",
        "faelle_100000_EW": 637.402708741313,
        "Shape__Area": 1119156745.43408,
        "Shape__Length": 335717.737774516,
        "Death": 64,
        "cases7_bl_per_100k": 114.943878614567
      }
@grisu112

This comment has been minimized.

Copy link

@grisu112 grisu112 commented Oct 25, 2020

widget1

Updates
24.10.2020

  • Support mediumWidget (2Spaltig) Widgetparamer. Siehe Kommentar im Skript.
  • Anzeige der aktuellen Fälle für den Landkreis incl. Trend. (Trend is erst am nächsten Tag verfügbar, da gechached werden muss)
  • Trend für Inzidenz wird jetzt Grün wenn er fällt bzw. Rot wenn steigt.

23.10.2020

  • iCloud ist jetzt optional. Trend Daten werden jetzt auch lokal auf dem Gerät gespeichert.

22.10.2020

  • Es werden jetzt Inzidenzdaten für die letzten 7 Tage auf der iCloud zwischengespeichert. Diese sind die Basis für den Trend. Siehe auch covid19STADTNAME.json im Scriptable iCloud ordner.
  • Am ersten Tag nach dem Update wird kein Trend angezeigt (Da nur "heute" Verfügbar ist)

21.10.2020

  • Trend (Land / Bund)
  • Datum letztes update

20.10.2020

  • Bundesland hinzugefügt

Weitere Infos / Forks siehe: https://gist.github.com/kevinkub/46caebfebc7e26be63403a7f0587f664#gistcomment-3493076

H, du schreibst das es nun die aktuellen Fälle je Landkreis gibt. Auf dem Bild ist das ja auch zu sehen. Bei mir ist die stelle allerdings weiterhin leer. Die Anzahl Fälle wird nicht angezeigt (für viersen in dem Fall)

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

@suffix Ja ist nur für den Landkreis/Stadt weil mich das mehr Interessiert. Aber die Differenz zum BL kann ich auch hinzufügen, muss nur schauen wo 😅
Ich sehe jedoch das die BL Rückgabe für Bremen, nicht die erwähnten +190 Zurückgibt. Wobei die 4342 passt.
Ich muss mal checken ob es eine andere Api gibt die es evtl direkt zurück gibt. Oder gehen die auch da über die Differenz?

 "attributes": {
        "OBJECTID_1": 4,
        "LAN_ew_AGS": "04",
        "LAN_ew_GEN": "Bremen",
        "LAN_ew_BEZ": "Freie Hansestadt",
        "LAN_ew_EWZ": 681202,
        "OBJECTID": 5,
        "Fallzahl": 4342,
        "Aktualisierung": 1603576800000,
        "AGS_TXT": "04",
        "GlobalID": "4132268b-54de-4327-ac1e-760e915112f1",
        "faelle_100000_EW": 637.402708741313,
        "Shape__Area": 1119156745.43408,
        "Shape__Length": 335717.737774516,
        "Death": 64,
        "cases7_bl_per_100k": 114.943878614567
      }

Korrekt, habe den Wert auch nicht gefunden. Ich denke das wird ebenfalls über die Differenz berechnet

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Ich würde es hier sehr cool finden (hinter HB):

C717715B-0AFD-4246-AFB3-E7D163E4B667

@Devs91

This comment has been minimized.

Copy link

@Devs91 Devs91 commented Oct 25, 2020

Hat jemand der R-Wert für das BL bzw. Für ganz Deutschland?

@Flippo71

This comment has been minimized.

Copy link

@Flippo71 Flippo71 commented Oct 25, 2020

Hallo Zusammen,
ich habe noch eine Frage zum Standort. Ich versuche verzweifelt meinen Standort, die Stadt Bernau bei Berlin, hinzuzufügen. Es werden mir aber immer nur die Werte vom Landkreis Barnim angezeigt. Hat jemand eine Idee?

Vielen Dank!

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

@Flippo71 Probier mal hier verschiedene Stadtorte zu finden.Hier kannst du nach den LAT/LONG suchen. http://de.mygeoposition.com

Ich weiss auch nicht genau wie das RKI & co die grenzen definieren.

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Ich habe jetzt schon mehrfach diese Fehlermeldung bekommen:

0243CE7D-7AC2-4506-B2CA-F9ABB5AE06AB

Eine Idee woran das liegt? Koordinaten sind fest vorgegeben.

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Ich habe jetzt schon mehrfach diese Fehlermeldung bekommen:

0243CE7D-7AC2-4506-B2CA-F9ABB5AE06AB

Eine Idee woran das liegt? Koordinaten sind fest vorgegeben.

Schau dir deine vorgegebenen Koordinaten nochmal genau an. Bei Maps wurden mir die Koordinaten mit Komma angegeben. Für das Skript muss an der Stelle ein Punkt sein. Bei mir war’s diese Formatierung die den Unterschied machte

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Die Koordinaten sehen so aus:

x.xxxx,x.xxxx

Das sollte passen. Mir fällt gerade ein, das linke Widget ist ohne Koordinaten. Also tritt es bei beiden Varianten auf

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Ok.

Schau mal hier:
5837E318-633F-4CE9-8BD6-5A1D70BB809A

Hast du vor den Koordinaten 0 (für linke Position) oder 1 (für rechte Position) stehen?

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Ja, das passt alles. Es geht auch um die Einzel Widgets. Da habe ich die 0, vor den Koordinaten stehen, also so: 0,xx.xxxxx,x.xxxxx

Und bei dem ganz ohne Koordinaten tritt es auch auf, nur mit einer anderen Zeile in der der Fehler liegt.

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Muss bei den einzelwidgets die 0 überhaupt stehen? Vorsicht, bei mir isses grad erheblich gefährliches Halbwissen. 🤣

@b3nsen

This comment has been minimized.

Copy link

@b3nsen b3nsen commented Oct 25, 2020

Besteht irgendwie die Möglichkeit den Namen der Stadt (zB hinter den Koordinaten) manuell anzugeben?

@cuca94

This comment has been minimized.

Copy link

@cuca94 cuca94 commented Oct 25, 2020

Ich habe jetzt schon mehrfach diese Fehlermeldung bekommen:

0243CE7D-7AC2-4506-B2CA-F9ABB5AE06AB

Eine Idee woran das liegt? Koordinaten sind fest vorgegeben.

Hab ich auch öfter, auch bei Verwendung des aktuellen Standorts

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

Hmm. Wegen dem areaName Problem hatte ich mal ein Update online gestellt. Könnt ihr es mal mit der neusten Version checken?

@mappledp

This comment has been minimized.

Copy link

@mappledp mappledp commented Oct 25, 2020

@mappledp Was für ein iPhone hast du? Eigentlich sollten alle Werte bis 3 Stellen je Inzidenz nicht abgeschnitten werden.
Sind die Zahlen in Berchtesgarden schon 4 Stellig 🤨?

Das betrifft nur die 3 stelligen Werte (plus Kommastelle).
Hab bei mir die Schriftgrösse verkleinert. Nicht ganz optimal aber zumindest kann ich so die Werte ablesen.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

@mappledp Im neuen Skript wird ab 3 Stellen, die Kommastelle weggelassen. Sollte also passen.

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

Kleines Update mit Fallzahlen je Bundesland online:
IMG_5418

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Geil!! 👍👍👍
Direkt installiert und funzt
BD25B022-A71D-407F-BB7A-926BFCCB25A8

Nur bei Heilbronn müssen jetzt noch die Zahlen vom Vortag dazukommen, damit da auch die Trendpfeile angezeigt werden.

@suffix12

This comment has been minimized.

Copy link

@suffix12 suffix12 commented Oct 25, 2020

Hammer!

Bei Bremerhaven bekommen ich allerdings das hier angezeigt:

3F0A2E07-A458-473B-8813-9CF1071145CF

Vielen Dank für deine Arbeit 👍🏼

@b3nsen

This comment has been minimized.

Copy link

@b3nsen b3nsen commented Oct 25, 2020

5205E458-A439-4412-86B0-D0DCD6368323

Funktioniert! Danke 👍
Sieht nur etwas doof aus mit dem Namen in SB 😂

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

Was ist denn die mittlere Zahl in dem Balken unten? bei mir ist da nichts
A1A4F00F-6236-4D95-92B3-87CCDAEDC046

@rphl

This comment has been minimized.

Copy link
Owner Author

@rphl rphl commented Oct 25, 2020

@RosoV89 Zahlen im Balken sind Neue Fälle je Tag: (STADT/KREIS) (BL) (DEUSTCHLAND)

@suffix12 Kannst du mal deine Widgetparameter Posten. Könnte es später checken. Wieso da NaN steht.

@RosoV89

This comment has been minimized.

Copy link

@RosoV89 RosoV89 commented Oct 25, 2020

@RosoV89 Zahlen im Balken sind Neue Fälle je Tag: (STADT/KREIS) (BL) (DEUSTCHLAND)

Ok. Also hat das BL keine Zahlen gemeldet? Ich warte mal morgen ab, wegen zahlen Update.

@suffix12