Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A Scriptable widget that shows the amount of people who have received the corona vaccination in Germany
// Version 1.1.1
// Mit Erstimpfungen und vollständigem Schutz sowie Fix für Herdenimmunitätsdatum
//
// Mit Caching und Fallback
const cacheMinutes = 60; // 60 min
const today = new Date();
const neededTotalVaccinations = 83200000;
let result;
let resultDe;
let width = 100;
const h = 5;
// Colors of light and dark numbers - change them to fit your needs
const colorLightGreen = new Color("#47b881")
const colorDarkGreen = new Color("#00783e")
let widget = new ListWidget();
widget.setPadding(8, 10, 0, 10);
widget.url =
"https://interaktiv.morgenpost.de/corona-virus-karte-infektionen-deutschland-weltweit/";
await getNumbers();
await createWidget();
Script.setWidget(widget);
Script.complete();
if (config.runsInApp) {
widget.presentSmall();
}
async function createWidget() {
const upperStack = widget.addStack();
upperStack.layoutHorizontally();
const upperTextStack = upperStack.addStack();
upperTextStack.layoutVertically();
let staticText1 = upperTextStack.addText("Verabreichte");
staticText1.font = Font.semiboldRoundedSystemFont(11);
let staticText2 = upperTextStack.addText("Impfdosen:");
staticText2.font = Font.semiboldRoundedSystemFont(11);
upperStack.addSpacer();
let logoImage = upperStack.addImage(await getImage("vac-logo.png"));
logoImage.imageSize = new Size(30, 30);
widget.addSpacer(5);
const amountFirstPerCent = round(
(100 / neededTotalVaccinations) * (resultDe.cumsum_latest - resultDe.cumsum2_latest),
1
);
const amountSecondPerCent = round(
(100 / neededTotalVaccinations) * resultDe.cumsum2_latest,
1
);
let amountFirstText = widget.addText(
(resultDe.cumsum_latest - resultDe.cumsum2_latest).toLocaleString() +
" | " +
amountFirstPerCent.toLocaleString() +
"%"
);
amountFirstText.font = Font.boldSystemFont(12);
amountFirstText.textColor = colorLightGreen;
amountFirstText.minimumScaleFactor = 0.8;
// amountFirstText.rightAlignText()
let amountSecondText = widget.addText(
resultDe.cumsum2_latest.toLocaleString() +
" | " +
amountSecondPerCent.toLocaleString() +
"%"
);
amountSecondText.font = Font.boldSystemFont(12);
amountSecondText.textColor = colorDarkGreen;
amountSecondText.minimumScaleFactor = 0.8;
// amountSecondText.rightAlignText();
widget.addSpacer(4);
let progressStack = widget.addStack();
progressStack.layoutVertically();
let progressNumberStack = widget.addStack();
progressNumberStack.layoutHorizontally();
let description3 = progressNumberStack.addText(
"(7T. Ø: " + calculateDailyVac().toLocaleString() + ")"
);
description3.font = Font.mediumSystemFont(9);
progressNumberStack.addSpacer();
const progressText70 = progressNumberStack.addText("83,2 Mio");
progressText70.font = Font.mediumSystemFont(9);
progressStack.addImage(createProgress((resultDe.cumsum_latest - resultDe.cumsum2_latest), resultDe.cumsum2_latest));
widget.addSpacer(8);
let calendarStack = widget.addStack();
const calendarImage = calendarStack.addImage(
await getImage("calendar-icon.png")
);
calendarImage.imageSize = new Size(26, 26);
calendarStack.addSpacer(6);
let calendarTextStack = calendarStack.addStack();
calendarTextStack.layoutVertically();
calendarTextStack.addSpacer(0);
// calculate date
var estimatedDate = new Date();
estimatedDate.setDate(new Date().getDate() + calculateRemainingDays());
let description = calendarTextStack.addText("Herdenimmunität:");
description.font = Font.mediumSystemFont(10);
const description2 = calendarTextStack.addText(
estimatedDate.toLocaleDateString()
);
description2.font = Font.boldSystemFont(10);
widget.addSpacer(2);
const lastUpdateDate = new Date(resultDe.date);
let lastUpdatedText = widget.addText(
"Stand: " + lastUpdateDate.toLocaleDateString()
);
lastUpdatedText.font = Font.mediumMonospacedSystemFont(8);
lastUpdatedText.textOpacity = 0.7;
lastUpdatedText.centerAlignText();
}
// get images from local storage or download them once
async function getImage(image) {
let fm = FileManager.local();
let dir = fm.documentsDirectory();
let path = fm.joinPath(dir, image);
if (fm.fileExists(path)) {
return fm.readImage(path);
} else {
// download once
let imageUrl;
switch (image) {
case "vac-logo.png":
imageUrl = "https://i.imgur.com/ZsBNT8E.png";
break;
case "calendar-icon.png":
imageUrl = "https://i.imgur.com/Qp8CEFf.png";
break;
default:
console.log(`Sorry, couldn't find ${image}.`);
}
let req = new Request(imageUrl);
let loadedImage = await req.loadImage();
fm.writeImage(path, loadedImage);
return loadedImage;
}
}
async function getNumbers() {
// Set up the file manager.
const files = FileManager.local();
// Set up cache
const cachePath = files.joinPath(
files.cacheDirectory(),
"api-cache-covid-vaccine-numbers-mopo"
);
const cacheExists = files.fileExists(cachePath);
const cacheDate = cacheExists ? files.modificationDate(cachePath) : 0;
// Get Data
try {
// If cache exists and it's been less than 60 minutes since last request, use cached data.
if (
cacheExists &&
today.getTime() - cacheDate.getTime() < cacheMinutes * 60 * 1000
) {
console.log("Get from Cache");
result = JSON.parse(files.readString(cachePath));
} else {
console.log("Get from API");
const req2 = new Request(
"https://interaktiv.morgenpost.de/data/corona/rki-vaccination.json"
);
result = await req2.loadJSON();
console.log("Write Data to Cache");
try {
files.writeString(cachePath, JSON.stringify(result));
} catch (e) {
console.log("Creating Cache failed!");
console.log(e);
}
}
} catch (e) {
console.error(e);
if (cacheExists) {
console.log("Get from Cache");
result = JSON.parse(files.readString(cachePath));
} else {
console.log("No fallback to cache possible. Due to missing cache.");
}
}
await setTotalVacNoForGermany(result);
}
async function setTotalVacNoForGermany(result) {
for (var i = result.length - 1; i >= 0; i--) {
let currentItem = result[i];
if (currentItem["id"] === "de") {
console.log("result de: " + JSON.stringify(currentItem))
resultDe = currentItem;
}
}
}
function createProgress(firstVacNo, secondVacNo) {
const context = new DrawContext();
context.size = new Size(width, h);
context.opaque = false;
context.respectScreenScale = true;
context.setFillColor(new Color("#d2d2d7"));
const path = new Path();
path.addRoundedRect(new Rect(0, 0, width, h), 3, 2);
context.addPath(path);
context.fillPath();
context.setFillColor(colorLightGreen);
const path1 = new Path();
const path1width =
(width * firstVacNo) / neededTotalVaccinations > width
? width
: (width * firstVacNo) / neededTotalVaccinations;
path1.addRoundedRect(new Rect(0, 0, path1width, h), 3, 2);
context.addPath(path1);
context.fillPath();
const path2 = new Path();
const path2width =
(width * secondVacNo) / neededTotalVaccinations > width
? width
: (width * secondVacNo) / neededTotalVaccinations;
path2.addRoundedRect(new Rect(0, 0, path2width, h), 3, 2);
context.addPath(path2);
context.setFillColor(colorDarkGreen)
context.fillPath();
return context.getImage();
}
function calculateDailyVac() {
const latestVacAmount = resultDe.cumsum_latest;
const vacAmount7DaysAgo = resultDe.cumsum_7_days_ago;
const dailyVacAmount = Math.round((latestVacAmount - vacAmount7DaysAgo) / 7);
return dailyVacAmount;
}
function calculateRemainingDays() {
const daysRemaining = Math.round(
(116400000 - resultDe.cumsum_latest) / calculateDailyVac()
);
return daysRemaining;
}
function round(value, decimals) {
return Number(Math.round(value + "e" + decimals) + "e-" + decimals);
}
//
// Bitte bis zum Ende kopieren
//
@dennerforen

This comment has been minimized.

Copy link

@dennerforen dennerforen commented Dec 29, 2020

Thx, gefällt mir gut.

Allerdings zeigt das Widget nur etwas an, wenn ich es in Scriptable anklicke. Auf dem Screen bleibt es leer. Oder braucht es da einen Parameter?

@wickenico

This comment has been minimized.

Copy link

@wickenico wickenico commented Dec 29, 2020

Danke Marco!

@lululasse

This comment has been minimized.

Copy link

@lululasse lululasse commented Dec 29, 2020

Super Arbeit! Wenn Du es jetzt noch gesplittet nach BL hinbekommen würdest ☺️

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 29, 2020

Super Arbeit! Wenn Du es jetzt noch gesplittet nach BL hinbekommen würdest ☺️

Leider nicht, denn die (offizielle) Quelle ist eine Excel-Datei!

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 29, 2020

Thx, gefällt mir gut.

Allerdings zeigt das Widget nur etwas an, wenn ich es in Scriptable anklicke. Auf dem Screen bleibt es leer. Oder braucht es da einen Parameter?

Nein, das sollte natürlich auf dem Homescreen laufen. Dafür ist es gedacht. Man muss keine Parameter eingeben. Versuch das Widget auf dem Homescreen nochmal zu löschen und lege es neu an. Dann ggfls. ein paar Minuten warten.

@pawu76

This comment has been minimized.

Copy link

@pawu76 pawu76 commented Dec 29, 2020

Danke!

@Gude11

This comment has been minimized.

Copy link

@Gude11 Gude11 commented Dec 29, 2020

Hallo zusammen, leider erhalte ich eine Fehlermeldung. iCloud ist nicht angemeldet, Zeile119:36. Bitte um kurze Hilfe...

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 29, 2020

Hallo zusammen, leider erhalte ich eine Fehlermeldung. iCloud ist nicht angemeldet, Zeile119:36. Bitte um kurze Hilfe...

Oh Sorry. Das Skript speichert das Logo-Bild, damit es nicht jedesmal neu geladen werden muss.

Ändere bitte Zeile 118. Statt
let fm = FileManager.iCloud()
schreibst du
let fm = FileManager.local()

Dann wird das Bild im Ordner der Scriptable App gespeichert und iCloud wird nicht mehr benötigt.

@Gude11

This comment has been minimized.

Copy link

@Gude11 Gude11 commented Dec 29, 2020

Danke für die schnelle Hilfe. Jetzt kommt folgende Meldung, 2020-12-29 18:43:55: Error: Failed determining if the file is ubiquitous.

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 29, 2020

Danke für die schnelle Hilfe. Jetzt kommt folgende Meldung, 2020-12-29 18:43:55: Error: Failed determining if the file is ubiquitous.

Sorry, eine Stelle übersehen. Bitte wirf Zeile 122 komplett raus:
await fm.downloadFileFromiCloud(path)

@Gude11

This comment has been minimized.

Copy link

@Gude11 Gude11 commented Dec 29, 2020

Jetzt geht's...vielen Dank...

@PixelPartner

This comment has been minimized.

Copy link

@PixelPartner PixelPartner commented Dec 30, 2020

Ich schlage vor, die Zeilen 118 und 122 generell im gist zu ändern

@photomasz

This comment has been minimized.

Copy link

@photomasz photomasz commented Dec 30, 2020

Error on line 80:74: TypeError: undefined is not an object (evaluating 'result.split("Gesamtzahl der Impfungen bis einschl.")[1].split')

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 30, 2020

Ich schlage vor, die Zeilen 118 und 122 generell im gist zu ändern

Eben erledigt. iCloud wird jetzt nicht mehr benötigt. Auch die Formatierung des Kalenders wurde optimiert auf künftige Tage/Monate.

Bitte neu kopieren und einfügen.

@Macbalko

This comment has been minimized.

Copy link

@Macbalko Macbalko commented Dec 30, 2020

Es müsste doch möglich sein nach BL zu trennen, da die Liste ja auch Chronologisch geordnet ist. Noch geiler wäre wie in der Liste angegeben, Alter, Pflegeheime usw. Dass wär der Burner

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 30, 2020

Es müsste doch möglich sein nach BL zu trennen, da die Liste ja auch Chronologisch geordnet ist. Noch geiler wäre wie in der Liste angegeben, Alter, Pflegeheime usw. Dass wär der Burner

Jetzt ist es relativ einfach möglich. Benny hat ein kleines Script geschrieben, dass die Excel Datei ausliest und den Inhalt per Web api als json zur Verfügung stellt. Ich habe dieses Jahr vermutlich keine Zeit mehr. Aber schau mal hier:

https://twitter.com/_thisisbenny_/status/1344216482767659009?s=21

@rw84

This comment has been minimized.

Copy link

@rw84 rw84 commented Dec 30, 2020

Error on line 80:74: TypeError: undefined is not an object (evaluating 'result.split("Gesamtzahl der Impfungen bis einschl.")[1].split')

same here...

@ray-hue

This comment has been minimized.

Copy link

@ray-hue ray-hue commented Dec 30, 2020

Error on line 80:74: TypeError: undefined is not an object (evaluating 'result.split("Gesamtzahl der Impfungen bis einschl.")[1].split')

same here...

And here ...

@bondskin

This comment has been minimized.

Copy link

@bondskin bondskin commented Dec 30, 2020

Bei mir auch. Ist da vielleicht die Quelle gerade nicht verfügbar (wg Update)?

@dk7td

This comment has been minimized.

Copy link

@dk7td dk7td commented Dec 30, 2020

Hallo zusammen, gleicher Fehler hier. Scheint was Grundsätzliches nicht zu passen.
Danke fürs fixen und für das tolle Widget!

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 30, 2020

Das ist das Problem, wenn man HTML parsen muss, um an die Zahlen zu kommen. Das RKI hat das Layout geändert auf deren Seite. Die Gesamtzahl steht jetzt nur noch im Excel-File.

Siehe https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Daten/Impfquoten-Tab.html

Ich passe es heute Nachmittag an und stelle es auf die API um.

@ray-hue

This comment has been minimized.

Copy link

@ray-hue ray-hue commented Dec 30, 2020

Super vielen dank!
echt cooles Widget danke auch dafür im allgemeinen

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Dec 30, 2020

Danke für das Widget 👌

bekomme folgendes :
CF89D441-2270-4A6E-BF7E-40CB726E95BD

Gehört das zu dem oberen Problem dazu ?

@dk7td

This comment has been minimized.

Copy link

@dk7td dk7td commented Dec 30, 2020

Sehr sicher ja!

@rw84

This comment has been minimized.

Copy link

@rw84 rw84 commented Dec 30, 2020

Das ist das Problem, wenn man HTML parsen muss, um an die Zahlen zu kommen. Das RKI hat das Layout geändert auf deren Seite. Die Gesamtzahl steht jetzt nur noch im Excel-File.

Siehe https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Daten/Impfquoten-Tab.html

Ich passe es heute Nachmittag an und stelle es auf die API um.

danke für die schnelle Rückmeldung. Widget ist mal wieder ein Träumchen

@AitschPi

This comment has been minimized.

Copy link

@AitschPi AitschPi commented Dec 30, 2020

Danke für das Skript.

Kannst Du auch noch bitte am Anfang den Link zu Dir bzw. dem Projekt einfügen? Das erleichtert den Überblick, wenn man viele Skripte nutzt (woher hatte ich das, wo gibt es Updates,...)

@HasanISabbah

This comment has been minimized.

Copy link

@HasanISabbah HasanISabbah commented Dec 30, 2020

Würde mich auch freuen, wenn das Widget wieder klappen würde. Danke Dir😉

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 30, 2020

Update (30.12., 14:30 Uhr)

Das Skript funktioniert jetzt wieder. Es nutzt jetzt die neue API von Benny und zusätzlich einen Cache der Daten. Dadurch sollte es wesentlich weniger fehleranfällig sein.

Bitte aktualisieren. Sorry für die Umstände. Merke: Niemals HTML parsen. It's evil!

@bondskin

This comment has been minimized.

Copy link

@bondskin bondskin commented Dec 30, 2020

Update (30.12., 14:30 Uhr)

Das Skript funktioniert jetzt wieder. Es nutzt jetzt die neue API von Benny und zusätzlich einen Cache der Daten. Dadurch sollte es wesentlich weniger fehleranfällig sein.

Bitte aktualisieren. Sorry für die Umstände. Merke: Niemals HTML parsen. It's evil!

Sieht super aus. Danke für deinen tollen Einsatz!

@dk7td

This comment has been minimized.

Copy link

@dk7td dk7td commented Dec 30, 2020

Update (30.12., 14:30 Uhr)

Das Skript funktioniert jetzt wieder. Es nutzt jetzt die neue API von Benny und zusätzlich einen Cache der Daten. Dadurch sollte es wesentlich weniger fehleranfällig sein.

Bitte aktualisieren. Sorry für die Umstände. Merke: Niemals HTML parsen. It's evil!

Hallo Marco,
super - vielen Dank. Paßt wieder perfekt!

@rw84

This comment has been minimized.

Copy link

@rw84 rw84 commented Dec 30, 2020

Update (30.12., 14:30 Uhr)

Das Skript funktioniert jetzt wieder. Es nutzt jetzt die neue API von Benny und zusätzlich einen Cache der Daten. Dadurch sollte es wesentlich weniger fehleranfällig sein.

Bitte aktualisieren. Sorry für die Umstände. Merke: Niemals HTML parsen. It's evil!

Perfekt! Vielen Dank!

@lululasse

This comment has been minimized.

Copy link

@lululasse lululasse commented Dec 30, 2020

Super Arbeit, Marco!!!

@Macbalko

This comment has been minimized.

Copy link

@Macbalko Macbalko commented Dec 30, 2020

Gibt es die Möglichkeit mein Bundesland anzuzeigen?
Das von thisisbenny funktioniert nicht mehr, hängt immer noch bei 29.12.2020 fest

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 30, 2020

Gibt es die Möglichkeit mein Bundesland anzuzeigen?
Das von thisisbenny funktioniert nicht mehr, hängt immer noch bei 29.12.2020 fest

Das geht jetzt dank der API relativ einfach. In Zeile 58 kannst du jetzt z.B. statt
result.vaccinated.toLocaleString()
das hier schreiben
result.states.Bayern.vaccinated.toLocaleString()
für die Zahlen in Bayern.

Wenn du diesen Link öffnest, siehst du das Ergebnis der API:
https://rki-vaccination-data.vercel.app/api

Am besten formatieren in einem Text-Editor oder das Ergebnis hier rein pasten:
https://jsonformatter.curiousconcept.com/

Benny passt seine Variante aber auch schon an (falls nicht bereits passiert).

@Stefan-1982

This comment has been minimized.

Copy link

@Stefan-1982 Stefan-1982 commented Dec 30, 2020

Vorher war noch die Uhrzeit vom Stand dabei ?!?

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 30, 2020

Vorher war noch die Uhrzeit vom Stand dabei ?!?

Die hatte das RKI bis gestern noch manuell dazu geschrieben. Das Dokument wird aber sowieso nur einmal am Tag aktualisiert und ist damit ist die Uhrzeit irrelevant.

@SchneHa

This comment has been minimized.

Copy link

@SchneHa SchneHa commented Dec 30, 2020

Mittlerweile sehe ich nur noch eine Fehlermeldung:
Error on line 80:76: TypeError: undefined is not an object (evaluating 'result.split("Gesamtzahl der Impfungen bis einschl. ")[1].split')

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 30, 2020

Mittlerweile sehe ich nur noch eine Fehlermeldung:
Error on line 80:76: TypeError: undefined is not an object (evaluating 'result.split("Gesamtzahl der Impfungen bis einschl. ")[1].split')

Sorry, das RKI hat das Seiten-Layout geändert. Ist der neuen Version des Skripts aber jetzt egal. Bitte neu kopieren von oben.

Siehe https://gist.github.com/marco79cgn/b5f291d6242a2c530e56c748f1ae7f2c#gistcomment-3577432

@Minsworld-de

This comment has been minimized.

Copy link

@Minsworld-de Minsworld-de commented Dec 30, 2020

Hallo,
ich bekomme die Fehlermeldung

Error on line 6: SyntaxError: Invalid Character '\u201c'

Hat das noch jemand?

@Minsworld-de

This comment has been minimized.

Copy link

@Minsworld-de Minsworld-de commented Dec 30, 2020

Hallo,
ich bekomme die Fehlermeldung

Error on line 6: SyntaxError: Invalid Character '\u201c'

Hat das noch jemand?

Hat sich erledigt, war anscheinend irgendein copy & paste-Formatierungsfehler. :-(
Vielen Dank für das Script!

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Dec 30, 2020

Danke geht nun wieder 👌

Verbesserungsvorschlag:
Anzeige von +xx Anzahl zum Vortag z.b. mit grünem Pfeil nach oben

@QWERTZ000

This comment has been minimized.

Copy link

@QWERTZ000 QWERTZ000 commented Dec 30, 2020

Das geht jetzt dank der API relativ einfach. In Zeile 58 kannst du jetzt z.B. statt
result.vaccinated.toLocaleString()
das hier schreiben
result.states.Bayern.vaccinated.toLocaleString()
für die Zahlen in Bayern.

Wenn du diesen Link öffnest, siehst du das Ergebnis der API:
https://rki-vaccination-data.vercel.app/api

Am besten formatieren in einem Text-Editor oder das Ergebnis hier rein pasten:
https://jsonformatter.curiousconcept.com/

Hallo,
habe gerade versucht, das Widget für Schleswig-Holstein anzupassen. Leider bekomme ich dabei immer eine Fehlermeldung. Vermutlich liegt es an dem Bindestrich im Namen des Bundeslandes. Denn bei den anderen Doppelnamen tritt der Fehler auch auf. Nur bei den Bundesländern mit einfachen Namen funktioniert es wie beschrieben.

Bildschirmfoto 2020-12-30 um 21 32 43

Woran kann das liegen? Mache ich was falsch?

Beste Grüße

@Minsworld-de

This comment has been minimized.

Copy link

@Minsworld-de Minsworld-de commented Dec 30, 2020

Das geht jetzt dank der API relativ einfach. In Zeile 58 kannst du jetzt z.B. statt
result.vaccinated.toLocaleString()
das hier schreiben
result.states.Bayern.vaccinated.toLocaleString()
für die Zahlen in Bayern.
Wenn du diesen Link öffnest, siehst du das Ergebnis der API:
https://rki-vaccination-data.vercel.app/api
Am besten formatieren in einem Text-Editor oder das Ergebnis hier rein pasten:
https://jsonformatter.curiousconcept.com/

Hallo,
habe gerade versucht, das Widget für Schleswig-Holstein anzupassen. Leider bekomme ich dabei immer eine Fehlermeldung. Vermutlich liegt es an dem Bindestrich im Namen des Bundeslandes. Denn bei den anderen Doppelnamen tritt der Fehler auch auf. Nur bei den Bundesländern mit einfachen Namen funktioniert es wie beschrieben.

Bildschirmfoto 2020-12-30 um 21 32 43

Woran kann das liegen? Mache ich was falsch?

Beste Grüße

Bei mir ebenso mit Nordrhein-Westfalen.

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 30, 2020

Bei mir ebenso mit Nordrhein-Westfalen.

Liegt an den Bindestrichen. So geht‘s:
result.states["Nordrhein-Westfalen"].vaccinated.toLocaleString()

@pascalschmiederer

This comment has been minimized.

Copy link

@pascalschmiederer pascalschmiederer commented Dec 30, 2020

Was noch cool wäre:
Eine prozentuale Angabe im Verhältnis zu den Einwohnern Deutschlands.

@QWERTZ000

This comment has been minimized.

Copy link

@QWERTZ000 QWERTZ000 commented Dec 31, 2020

Bei mir ebenso mit Nordrhein-Westfalen.

Liegt an den Bindestrichen. So geht‘s:
result.states["Nordrhein-Westfalen"].vaccinated.toLocaleString()

DANKE, funktioniert!

@RudiRom

This comment has been minimized.

Copy link

@RudiRom RudiRom commented Dec 31, 2020

Ich erhalte eine völlig andere Fehlermeldung. Das sieht eher nach einer Einstellung auf meinen iPhone aus, die ich ändern muss. Wer kann mir hier einen Tipp geben?

Error: Das Zertifikat für diesen Server ist ungültig. Eventuell wird eine Verbindung mit einem Server hergestellt, der vorgibt, „cdn2.iconfinder.com“ zu sein und vertrauliche Daten gefährdet.

@thorstenleidl

This comment has been minimized.

Copy link

@thorstenleidl thorstenleidl commented Dec 31, 2020

Was noch cool wäre:
Eine prozentuale Angabe im Verhältnis zu den Einwohnern Deutschlands.

Habe ich bei meinem Fork eingebaut: https://gist.github.com/thorstenleidl/75124fcb8d16b0f8531d5e50874f7e43

@marco79cgn: Danke für deine super Arbeit!

@Macbalko

This comment has been minimized.

Copy link

@Macbalko Macbalko commented Dec 31, 2020

@Minsworld-de

This comment has been minimized.

Copy link

@Minsworld-de Minsworld-de commented Dec 31, 2020

Bei mir ebenso mit Nordrhein-Westfalen.

Liegt an den Bindestrichen. So geht‘s:
result.states["Nordrhein-Westfalen"].vaccinated.toLocaleString()

Vielen Dank! Klappt sehr gut.

@Minsworld-de

This comment has been minimized.

Copy link

@Minsworld-de Minsworld-de commented Dec 31, 2020

Hat Funktioniert, Danke Könnte man auch dann den Landkreis Namentlich Hinzufügen ? Anzahl Geimpfter(Hessen) z.b Gesendet mit meinem iPhone Am 30.12.20 um 16:58 schrieb marco79cgn

Zeile 55:
let staticText = widget.addText("Anzahl Geimpfter:")
ändern in
let staticText = widget.addText("Anzahl Geimpfter Hessen:")

@Macbalko

This comment has been minimized.

Copy link

@Macbalko Macbalko commented Dec 31, 2020

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Dec 31, 2020

So hab heute ein neues Problem .

Wenn das Widget auf dem homesreen liegt zeigt es das Datum von gestern an .

wenn ich das Script direkt über die scriptable App öffne dann hab ich die aktuellen Daten .

Was müsste geändert werden damit die Aktualisierung automatisch erfolgt ?

@Stefan-1982

This comment has been minimized.

Copy link

@Stefan-1982 Stefan-1982 commented Dec 31, 2020

bei mir das selbe das Widget aktualisiert sich nicht... nur direkt in Scriptable stimmt das Datum

@thorstenleidl

This comment has been minimized.

Copy link

@thorstenleidl thorstenleidl commented Dec 31, 2020

Die Daten hinter der API Abfrage wurden vor ca. 1-2 Stunden aktualisiert, aber das Datum steht noch auf gestern: https://rki-vaccination-data.vercel.app/api

Entweder wurden die Daten von gestern nachträglich aktualisiert oder es wurde das Datum nicht mit aktualisiert. Das Datum sollte aber sowohl in der App, als auch auf dem Home Screen noch auf 30.12.2020 stehen wie in den Source Daten.

@Seme332

This comment has been minimized.

Copy link

@Seme332 Seme332 commented Dec 31, 2020

Was noch cool wäre:
Eine prozentuale Angabe im Verhältnis zu den Einwohnern Deutschlands.

Theoretisch müsste das möglich sein, da 2 Impfungen je Einwohner nötig sind entweder durch 2 teilen und dann auf die Einwohner Deutschlands berechnen oder direkt auf die doppelte Anzahl an Einwohnern. Bin nur nicht vertraut genug mit JavaScript um das zu programmieren :D

@Macbalko

This comment has been minimized.

Copy link

@Macbalko Macbalko commented Dec 31, 2020

Siehe oben, Thorstenleidl, der hat’s geforkt .Sogar mit BL

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Dec 31, 2020

Die Daten hinter der API Abfrage wurden vor ca. 1-2 Stunden aktualisiert, aber das Datum steht noch auf gestern: https://rki-vaccination-data.vercel.app/api

Entweder wurden die Daten von gestern nachträglich aktualisiert oder es wurde das Datum nicht mit aktualisiert. Das Datum sollte aber sowohl in der App, als auch auf dem Home Screen noch auf 30.12.2020 stehen wie in den Source Daten.

Die Excel Datei vom RKI ist relativ schlimm. 😅 Es sind bereits die Daten von heute eingetragen, aber das Tab in Excel hat immer noch das Datum von gestern. Demzufolge auch das Widget.

Die Zahlen sind allerdings korrekt aktualisiert.

@Seme332

This comment has been minimized.

Copy link

@Seme332 Seme332 commented Dec 31, 2020

Siehe oben, Thorstenleidl, der hat’s geforkt .Sogar mit BL

Vielen Dank, hatte ich übersehen. Danke auch an @thorstenleidl!

@Antonia-mg

This comment has been minimized.

Copy link

@Antonia-mg Antonia-mg commented Dec 31, 2020

Bei mir richtet sich das Widget leider nach dem Layout (dunkel/hell) des Smartphones. Gibt es die Möglichkeit den Hintergrund dauerhaft weiß zu gestalten, unabhängig von dem Layout?

@ThisIsBenny

This comment has been minimized.

Copy link

@ThisIsBenny ThisIsBenny commented Dec 31, 2020

Was noch cool wäre:
Eine prozentuale Angabe im Verhältnis zu den Einwohnern Deutschlands.

Theoretisch müsste das möglich sein, da 2 Impfungen je Einwohner nötig sind entweder durch 2 teilen und dann auf die Einwohner Deutschlands berechnen oder direkt auf die doppelte Anzahl an Einwohnern. Bin nur nicht vertraut genug mit JavaScript um das zu programmieren :D

Dafür müsste man erstmal eine genaue Erklärung der Daten vom RKI bekommen. Die aktuelle Information ist was unverständlich:

Über die Anzahl der durchgeführten Impfungen (unterschieden nach erster und zweiter Impfung) soll täglich berichtet werden. Es ist geplant, die Daten am RKI aufzubereiten, zu visualisieren und auf einer Website bereitzustellen. Dazu gehören auch die Berechnung und Darstellung von Impfquoten, also der Anteil der Geimpften in der Bevölkerung oder in bestimmten Bevölkerungsgruppen sowie regionale Bezüge (wie z.B. Bundesland und ggf. Landkreisebene).

Quelle: https://www.rki.de/SharedDocs/FAQ/COVID-Impfen/gesamt.html

Bedeutet dies nun, dass das RKI die zweite Impfung separat ausweisen wird? Oder fließt die zweite Impfung mit in einen gemeinsamen Topf mit der Erst-Impfung?

Wenn beide Werte separat ausgewiesen werden, dann kann man die Quote einfach aus der Anzahl der Erst-Impfungen berechnen. Personen, die eine Impfung bekommen habe, bekommen ja definitiv nach 3 Wochen die zweite.
Die zweite Impfung ist, soweit ich es verstanden habe, zum Sicherstellen, dass ein Schutz besteht. Es kann also bereits nach der ersten ein Impfschutz bestehen (korrigiert mich, wenn ich falsch liege).

Wenn beide Impfungen in einen Topf geworfen wird, kann man die Quote vergessen. Einfach durch 2 zu teilen wäre zu einfach und würde zu einer falschen Quote führen.

Vielleicht stellt das RKI bald ja eine richtige API bereit mit mehr Informationen und evtl. auch einer Quote die vom RKI berechnet wird.

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Dec 31, 2020

Zu deiner Frage mit der Impfung :

ja genau . Nach der ersten Impfung besteht eine Grundimmunität von ca . 40-50% .
Der Rest macht dann die zweite Impfung .

Könnte noch komplizierter werden wenn wie in England nun die zweit Impfung anstatt nach zwei Wochen jetzt auf 12 Wochen verschoben wird 😅

@pascalschmiederer

This comment has been minimized.

Copy link

@pascalschmiederer pascalschmiederer commented Jan 1, 2021

Was noch cool wäre:
Eine prozentuale Angabe im Verhältnis zu den Einwohnern Deutschlands.

Habe ich bei meinem Fork eingebaut: https://gist.github.com/thorstenleidl/75124fcb8d16b0f8531d5e50874f7e43

@marco79cgn: Danke für deine super Arbeit!

Danke für das Script.

@ThisIsBenny

This comment has been minimized.

Copy link

@ThisIsBenny ThisIsBenny commented Jan 1, 2021

Info: Scheinbar wurde nicht vergessen, dass Datum in der Excel zu aktualisieren, sondern es ist immer das Datum vom Vortag.
Was auch korrekt ist, da die Daten auch vom Vortag sind. Heute wurden z.B. die Daten von gestern veröffentlicht, weshalb der 31.12. als Datum drin steht. Die Zahlen von heute kommen dann morgen.

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 2, 2021

Skript Update: (2.1. 01:03 Uhr)

Ich habe nochmal etwas am Layout des Kalenders umgestellt.

@Macbalko

This comment has been minimized.

Copy link

@Macbalko Macbalko commented Jan 2, 2021

Wo fügt man jetzt wieder das BL HINZU?
Finde es nicht, vorher Zeile 36&39 🤷‍♂️
Irgendwie fehlt die Hälfte, Prozent, Deutschland usw. da ist jetzt alles mit Kalender und so.

3D05F7C5-20F6-4AD5-869F-91111475C46D

@SchneHa

This comment has been minimized.

Copy link

@SchneHa SchneHa commented Jan 2, 2021

Die Nadel der Spritze im Logo ist in der dunklen Darstellung nicht zu sehen. Ich schlage vor, sie grau zu machen.

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 2, 2021

Wo fügt man jetzt wieder das BL HINZU?
Finde es nicht, vorher Zeile 36&39 🤷‍♂️
Irgendwie fehlt die Hälfte, Prozent, Deutschland usw. da ist jetzt alles mit Kalender und so.

3D05F7C5-20F6-4AD5-869F-91111475C46D

Das ist die falsche Widget Größe und du suchst wohl eher einen Fork dieses Widgets. Schau mal oben rechts unter „Forks“, da findest du die anderen Varianten:
https://gist.github.com/marco79cgn/b5f291d6242a2c530e56c748f1ae7f2c/forks

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 2, 2021

Die Nadel der Spritze im Logo ist in der dunklen Darstellung nicht zu sehen. Ich schlage vor, sie grau zu machen.

Wenn du mir das geänderte Bild zur Verfügung stellst, baue ich es gerne ein.

@SchneHa

This comment has been minimized.

Copy link

@SchneHa SchneHa commented Jan 2, 2021

6088635-512-2
6088635-512

Such dir eins aus! Das ist mit dem Editor auf iconfinder.com ganz einfach.

@wickenico

This comment has been minimized.

Copy link

@wickenico wickenico commented Jan 3, 2021

So hab heute ein neues Problem .

Wenn das Widget auf dem homesreen liegt zeigt es das Datum von gestern an .

wenn ich das Script direkt über die scriptable App öffne dann hab ich die aktuellen Daten .

Was müsste geändert werden damit die Aktualisierung automatisch erfolgt ?

Gleiches Problem, auf dem Homescreen stehen die Daten vom 1.1. und in der App vom 2.1.

@OliverH77

This comment has been minimized.

Copy link

@OliverH77 OliverH77 commented Jan 3, 2021

@marco: Wie wäre es mit einer prozentualen Anzeige der geimpften im Bezug auf die Gesamteinwohnerzahl Deutschlands? (83,02 Millionen)

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 3, 2021

@marco: Wie wäre es mit einer prozentualen Anzeige der geimpften im Bezug auf die Gesamteinwohnerzahl Deutschlands? (83,02 Millionen)

Das wäre aktuell noch sehr deprimierend, da die Zahl unglaublich klein ist. Aber vielleicht demnächst.

@Stefan-1982

This comment has been minimized.

Copy link

@Stefan-1982 Stefan-1982 commented Jan 4, 2021

Was ist nun mit dem Bild wegen der nicht sichtbaren Nadel beim Schwarzem Hintergrund?

@SchneHa

This comment has been minimized.

Copy link

@SchneHa SchneHa commented Jan 4, 2021

Was ist nun mit dem Bild wegen der nicht sichtbaren Nadel beim Schwarzem Hintergrund?

Bei mir habe ich das gefixt. Da das Bild im Cache abgelegt wird, muss außer der URL in Zeile 113 noch der Bildname in den Zeilen 24 und 112 geändert werden. URL kannst du die nehmen, die beim Laden eines der geänderten Icon-Bilder in der Adresszeile deines Browsers angezeigt wird.

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 4, 2021

Was ist nun mit dem Bild wegen der nicht sichtbaren Nadel beim Schwarzem Hintergrund?

Bei mir habe ich das gefixt. Da das Bild im Cache abgelegt wird, muss außer der URL in Zeile 113 noch der Bildname in den Zeilen 24 und 112 geändert werden. URL kannst du die nehmen, die beim Laden eines der geänderten Icon-Bilder in der Adresszeile deines Browsers angezeigt wird.

Sorry, kam noch nicht dazu.

Man kann alternativ auch einmalig Zeile 106 negieren. Also erst die imageUrl in Zeile 113 anpassen und dann in Zeile 106 statt
if (fm.fileExists(path)) {
einmal ein Ausrufezeichen vor die Bedingung
if (!fm.fileExists(path)) {
Dann einmalig laufen lassen in Scriptable, woraufhin das alte, gecachte Bild durch das neue ersetzt wird. Danach das Ausrufezeichen wieder entfernen, damit der Cache wieder funktioniert. Auf diese Weise entsteht auch kein Datenmüll in Scriptable.

@mstoeb2s

This comment has been minimized.

Copy link

@mstoeb2s mstoeb2s commented Jan 4, 2021

https://gist.github.com/mstoeb2s/a3e1c0732fcd82a27437b8dafb148f3d

Hier findet ihr eine ähnliches Widget getrennt nach Bundesländern.
Viel Spaß damit...

@bondskin

This comment has been minimized.

Copy link

@bondskin bondskin commented Jan 5, 2021

Das Widget zeigt mir heute zwar das aktuelle Datum aber mit dem Datenbestand vom 3. Januar an.
Lasse ich das Script direkt aus Scriptable laufen, sehe ich die aktuellen Daten (Stand: 4. Januar)
Script neu speichern und Widget neu hinzufügen hat leider nicht geholfen.
Gibt es einen Cache den ich löschen muss?
Das anklicken des Widgets öffnet auch immer die RKI Seite, obwohl ich "Run Script" ausgewählt habe.

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Jan 5, 2021

@marco79cgn

Wäre es möglich noch einzubauen wieviele Impfungen dazu kamen ?

@s3018744

This comment has been minimized.

Copy link

@s3018744 s3018744 commented Jan 6, 2021

Das Widget zeigt mir heute zwar das aktuelle Datum aber mit dem Datenbestand vom 3. Januar an.
Lasse ich das Script direkt aus Scriptable laufen, sehe ich die aktuellen Daten (Stand: 4. Januar)
Script neu speichern und Widget neu hinzufügen hat leider nicht geholfen.
Gibt es einen Cache den ich löschen muss?
Das anklicken des Widgets öffnet auch immer die RKI Seite, obwohl ich "Run Script" ausgewählt habe.

Same here.

@joef75

This comment has been minimized.

Copy link

@joef75 joef75 commented Jan 8, 2021

Gibt es eine Möglichkeit das Script mit einem fest definierten Ort zu belegen, so dass man mehrere scripte für verschiedene Orte anzulegen?

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 10, 2021

Ich habe das Widget nochmal komplett überarbeitet.

Das Neue zeigt jetzt die verabreichten Impfungen an sowie eine Prozentzahl. Außerdem wird das voraussichtliche Datum bis zur Herdenimmunität berechnet.

Als Berechnungsgrundlage habe ich die gleiche verwendet wie die "Berliner Morgenpost" auf ihrer Infoseite:

116,4 Mio Impfungen sind nötig, um 70 Prozent aller Einwohner*innen Deutschlands jeweils 2 Impfdosen zu verabreichen.

Das Widget zeigt auch die tägliche, durchschnittliche Anzahl an verabreichten Impfungen der letzten 7 Tage an.

Die Progress Bar im Bild oben dient zur Illustration. Sie ist aktuell so klein, dass man quasi nichts grünes sieht.

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Jan 10, 2021

@marco79cgn

danke 🙏

ich denke nicht das man auch das eigene Bundesland unterbringen müsste oder ?

@lululasse

This comment has been minimized.

Copy link

@lululasse lululasse commented Jan 10, 2021

Wow! Super! 👍💪

Ja, die zweite Impfung muss ja anders in die Rechnung eingehen.

@Nils89

This comment has been minimized.

Copy link

@Nils89 Nils89 commented Jan 10, 2021

So wie ich das sehe hast du dir letzten 7 Tage als Wert fest im Code hinterlegt, ist das richtig?

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 10, 2021

So wie ich das sehe hast du dir letzten 7 Tage als Wert fest im Code hinterlegt, ist das richtig?

Argh, Sorry. Da war tatsächlich noch der Platzhalter drin und ich habe es übersehen. Ist seit gerade eben korrigiert. Danke! Es war lediglich die Anzeige. Bei der Berechnung des Datums war bereits alles korrekt.

Zeile 53 muss natürlich so lauten:
let description3 = widget.addText("(7T. Ø: " + calculateDailyVac().toLocaleString() +")");

@ALL:
Bitte nochmal den aktuellsten Code kopieren. Sorry!

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Jan 11, 2021

@marco . Kann sein das die „% Anzeige“ nicht mit hoch geht ?
Die Zahl ansonsten stimmt ja 👍

79804B23-D87B-4FA2-B55A-5C6F92D070C5

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 11, 2021

@marco . Kann sein das die „% Anzeige“ nicht mit hoch geht ?
Die Zahl ansonsten stimmt ja 👍

79804B23-D87B-4FA2-B55A-5C6F92D070C5

Doch geht sie, aber jeweils auf eine Nachkommastelle gerundet (kaufmännisch). Ich dachte eigentlich das reicht aus. Aber bei diesen geringen Schritten sollte man das wohl auf zwei Nachkommastellen erweitern. Das lässt sich ganz einfach in Zeile 44 ändern. Statt der "1" einfach eine "2" rein schreiben.

@lululasse

This comment has been minimized.

Copy link

@lululasse lululasse commented Jan 11, 2021

@marco . Kann sein das die „% Anzeige“ nicht mit hoch geht ?
Die Zahl ansonsten stimmt ja 👍
79804B23-D87B-4FA2-B55A-5C6F92D070C5

Doch geht sie, aber jeweils auf eine Nachkommastelle gerundet (kaufmännisch). Ich dachte eigentlich das reicht aus. Aber bei diesen geringen Schritten sollte man das wohl auf zwei Nachkommastellen erweitern. Das lässt sich ganz einfach in Zeile 44 ändern. Statt der "1" einfach eine "2" rein schreiben.

Ok, danke Marco! Aber wie erklärt sich dann der Unterschied? Also die 0.74% zu den 0.5% in Deinem Widget?

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 11, 2021

Mein Widget geht, wie oben bereits beschrieben, davon aus, dass 116,4 Mio. Impfungen (→ Spritzen bzw. Impfdosen) nötig sind, damit 70% der deutschen Bevölkerung immunisiert ist (je 2 Impfungen pro Einwohner).

Damit ist es ein einfacher Dreisatz (Stand heute):
100 / 116.400.000 * 613.347 = 0,526930...
→ 0,5% (gerundet auf eine Nachkommastelle)

Die Berechnung ist analog zu jener der Berliner Morgenpost: https://interaktiv.morgenpost.de/corona-virus-karte-infektionen-deutschland-weltweit/

Bildschirmfoto 2021-01-11 um 18 17 39

@lululasse

This comment has been minimized.

Copy link

@lululasse lululasse commented Jan 11, 2021

Ok, kapiert! Danke, Marco.

@vflg

This comment has been minimized.

Copy link

@vflg vflg commented Jan 11, 2021

Vermutlich ne einfache Frage.. das Widget öffnet bei mir immer die Seite der Morgenpost, wenn ich es antippe - es ist auf „Run Script“ konfiguriert.
Die Widget.url hab ich schonmal auskommentiert, hilft aber nix - ist das so gewollt?

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 12, 2021

Vermutlich ne einfache Frage.. das Widget öffnet bei mir immer die Seite der Morgenpost, wenn ich es antippe - es ist auf „Run Script“ konfiguriert.
Die Widget.url hab ich schonmal auskommentiert, hilft aber nix - ist das so gewollt?

Wenn du die widget url auskommentierst, dann sollte auch nichts mehr geöffnet werden. Es dauert allerdings mehrere Minuten, bis sich das im Widget auf dem Homescreen auswirkt.

Das Ausführen des Skripts in der Scriptable App bringt aber auch nicht wirklich viel. Dadurch wird nicht zwangsläufig der Content auf dem Homescreen aktualisiert, falls das die Erwartung ist. Das ist leider nicht möglich.

PS:
Das neueste Update der Scriptable App (von gestern) behebt ein Bug, der vereinzelt dazu führen konnte, dass es Probleme beim Update des Widgets auf dem Homescreen gab.

@vflg

This comment has been minimized.

Copy link

@vflg vflg commented Jan 12, 2021

Vermutlich ne einfache Frage.. das Widget öffnet bei mir immer die Seite der Morgenpost, wenn ich es antippe - es ist auf „Run Script“ konfiguriert.
Die Widget.url hab ich schonmal auskommentiert, hilft aber nix - ist das so gewollt?

Wenn du die widget url auskommentierst, dann sollte auch nichts mehr geöffnet werden. Es dauert allerdings mehrere Minuten, bis sich das im Widget auf dem Homescreen auswirkt.

Das Ausführen des Skripts in der Scriptable App bringt aber auch nicht wirklich viel. Dadurch wird nicht zwangsläufig der Content auf dem Homescreen aktualisiert, falls das die Erwartung ist. Das ist leider nicht möglich.

PS:
Das neueste Update der Scriptable App (von gestern) behebt ein Bug, der vereinzelt dazu führen konnte, dass es Probleme beim Update des Widgets auf dem Homescreen gab.

Danke, wusste nicht dass das ganze dauert bis es sich auf den homescreen auswirkt.
Dass der content dadurch nicht geupdated wird ist mit eigentlich egal, ich will nur nicht ständig auf der Website landen wenn ich da drauf tippe :D

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Jan 13, 2021

Danke für die Erklärung 👌

@thorstenleidl

This comment has been minimized.

Copy link

@thorstenleidl thorstenleidl commented Jan 13, 2021

Ich habe das Widget nochmal komplett überarbeitet.

Das Neue zeigt jetzt die verabreichten Impfungen an sowie eine Prozentzahl. Außerdem wird das voraussichtliche Datum bis zur Herdenimmunität berechnet.

Als Berechnungsgrundlage habe ich die gleiche verwendet wie die "Berliner Morgenpost" auf ihrer Infoseite:

116,4 Mio Impfungen sind nötig, um 70 Prozent aller Einwohner*innen Deutschlands jeweils 2 Impfdosen zu verabreichen.

Das Widget zeigt auch die tägliche, durchschnittliche Anzahl an verabreichten Impfungen der letzten 7 Tage an.

Die Progress Bar im Bild oben dient zur Illustration. Sie ist aktuell so klein, dass man quasi nichts grünes sieht.

Sehr geil 👌🏻

@TrafalgaT

This comment has been minimized.

Copy link

@TrafalgaT TrafalgaT commented Jan 14, 2021

gibt es, oder wäre es möglich, dieses script mit dem hier [https://gist.github.com/dwd0tcom/00a7aa6d41f6f945d16171249a50a29d.js] zu verbinden, so dass man es als "large widget" benutzen kann ?

@niklas23

This comment has been minimized.

Copy link

@niklas23 niklas23 commented Jan 14, 2021

Bei mir kommt folgender Fehler:
Exception Occurred
Error on line 42:30: ReferenceError: Can't find variable: round

Hat das noch jemand?

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 14, 2021

Bei mir kommt folgender Fehler:
Exception Occurred
Error on line 42:30: ReferenceError: Can't find variable: round

Hat das noch jemand?

Du hast das Skript nicht bis zum Ende kopiert. Die "round()" Funktion steht ganz unten und fehlt bei dir offenbar.

@joef75

This comment has been minimized.

Copy link

@joef75 joef75 commented Jan 14, 2021

Bei mir hängt das Widget. Aktueller Stand immer noch vom 12.01.! Woran kann das liegen?

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 14, 2021

Bei mir hängt das Widget. Aktueller Stand immer noch vom 12.01.! Woran kann das liegen?

Es gibt noch keine neuen Daten für gestern. Siehe "Impf-Fortschritt in Deutschland" hier

Ansonsten hat das Skript einen Cache eingebaut mit 60 Minuten, um die Anzahl der API Anfragen zu reduzieren und um Situationen ohne Internet oder sonstige Nicht-Erreichbarkeit zu kompensieren. Kurzum: Sobald die Daten unter obigen Link vorliegen, kann es im worst case noch 60 Minuten dauern, bis sie angezeigt werden.

@joef75

This comment has been minimized.

Copy link

@joef75 joef75 commented Jan 14, 2021

Die Erklärung ist manchmal so einfach ;-)

@Macbalko

This comment has been minimized.

Copy link

@Macbalko Macbalko commented Jan 14, 2021

Lässt sich der Balken auch im Ampel Design darstellen? Also 0-25 rot 25-50 gelb ab 50 grün? Oder so ähnlich.

@TrafalgaT

This comment has been minimized.

Copy link

@TrafalgaT TrafalgaT commented Jan 16, 2021

gibt es, oder wäre es möglich, dieses script mit dem hier [https://gist.github.com/dwd0tcom/00a7aa6d41f6f945d16171249a50a29d.js] zu verbinden, so dass man es als "large widget" benutzen kann ?

Ich gehe mal davon aus nein oder ? Wäre halt schicken gewesen wenn es möglich wäre die beiden Widgets mit einander zu verbinden

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 18, 2021

Wichtiges Skript-Update:

Sorry, leider war ein kleiner Bug im Skript, der durch eine Änderung an der Datenstruktur der Quelldaten jetzt zum Tragen kam.

Bitte neu kopieren von oben oder alternativ in Zeile 174
statt
for (var i = result.length - 1; i > 0; i--) {
das hier
for (var i = result.length - 1; i >= 0; i--) {
schreiben (es fehlt ein = Zeichen beim Vergleich).

@bondskin

This comment has been minimized.

Copy link

@bondskin bondskin commented Jan 18, 2021

Wichtiges Skript-Update:

Sorry, leider war ein kleiner Bug im Skript, der durch eine Änderung an der Datenstruktur der Quelldaten jetzt zum Tragen kam.

Bitte neu kopieren von oben oder alternativ in Zeile 174
statt
for (var i = result.length - 1; i > 0; i--) {
das hier
for (var i = result.length - 1; i >= 0; i--) {
schreiben (es fehlt ein = Zeichen beim Vergleich).

Es funktioniert. Danke

@clslcsl

This comment has been minimized.

Copy link

@clslcsl clslcsl commented Jan 19, 2021

0D75E7EC-4782-44B4-BDD7-5D533F232B33_1_201_a
Ein Freund und ich haben seit heute leider diese Anzeige und wissen nicht, woran es liegt :/

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 19, 2021

0D75E7EC-4782-44B4-BDD7-5D533F232B33_1_201_a
Ein Freund und ich haben seit heute leider diese Anzeige und wissen nicht, woran es liegt :/

Die Antwort steht zwei Beiträge über deinem. ;) Sorry. Ist behoben.

https://gist.github.com/marco79cgn/b5f291d6242a2c530e56c748f1ae7f2c#gistcomment-3598157

@clslcsl

This comment has been minimized.

Copy link

@clslcsl clslcsl commented Jan 19, 2021

0D75E7EC-4782-44B4-BDD7-5D533F232B33_1_201_a
Ein Freund und ich haben seit heute leider diese Anzeige und wissen nicht, woran es liegt :/

Die Antwort steht zwei Beiträge über deinem. ;) Sorry. Ist behoben.

https://gist.github.com/marco79cgn/b5f291d6242a2c530e56c748f1ae7f2c#gistcomment-3598157

Ah, wegen der anderen Zeile dachte ich, dass es ein anderen Problem ist. Sorry! 😬
Und generell danke für das zur Verfügung stellen des Skripts! :)

@rw84

This comment has been minimized.

Copy link

@rw84 rw84 commented Jan 19, 2021

0D75E7EC-4782-44B4-BDD7-5D533F232B33_1_201_a
Ein Freund und ich haben seit heute leider diese Anzeige und wissen nicht, woran es liegt :/

Die Antwort steht zwei Beiträge über deinem. ;) Sorry. Ist behoben.

https://gist.github.com/marco79cgn/b5f291d6242a2c530e56c748f1ae7f2c#gistcomment-3598157

Mal wieder vielen Dank für die schnelle Reaktion!!

@Macbalko

This comment has been minimized.

Copy link

@Macbalko Macbalko commented Jan 19, 2021

👍 läuft

@Scream4Life

This comment has been minimized.

Copy link

@Scream4Life Scream4Life commented Jan 20, 2021

Unfortunately I’m getting this error
A15E2C85-E545-4B74-A149-0CD22D487605

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Jan 20, 2021

Unfortunately I’m getting this error

That’s because you didn’t copy the script until the end. Please make sure to select the whole script before pressing “copy”. It’s easier if you select it from the bottom upwards.

@Scream4Life

This comment has been minimized.

Copy link

@Scream4Life Scream4Life commented Jan 20, 2021

Oh boy,...sorry. Thank you for your swift answer.

@tobsen

This comment has been minimized.

Copy link

@tobsen tobsen commented Jan 22, 2021

Unfortunately I’m getting this error

That’s because you didn’t copy the script until the end. Please make sure to select the whole script before pressing “copy”. It’s easier if you select it from the bottom upwards.

There is an easer way to edit the scripts and avoid copy errors, you can use the macOS beta and edit on Mac the scripts. 🤓

https://scriptable.app/mac-beta/

@bondskin

This comment has been minimized.

Copy link

@bondskin bondskin commented Jan 22, 2021

Unfortunately I’m getting this error

That’s because you didn’t copy the script until the end. Please make sure to select the whole script before pressing “copy”. It’s easier if you select it from the bottom upwards.

There is an easer way to edit the scripts and avoid copy errors, you can use the macOS beta and edit on Mac the scripts. 🤓

https://scriptable.app/mac-beta/

Wohoo! I was looking forward for a Mac version!

@AZ161

This comment has been minimized.

Copy link

@AZ161 AZ161 commented Mar 15, 2021

Bei mir funktioniert es leider nicht. Kann mir jemand sagen was ich falsch mache ?

3EE8C4C7-4A67-4870-8DD4-E68A0583A8E1

Mein Fehler - Hab das Update von Scribtable übersehen - Super Widget, Danke.

@sebasanblas

This comment has been minimized.

Copy link

@sebasanblas sebasanblas commented Apr 4, 2021

Argentina version here:
IMG_7120

@Gualty

This comment has been minimized.

Copy link

@Gualty Gualty commented Apr 4, 2021

Hi, thank you @marco79cgn for your idea and thanks also to @sebasanblas, today I created the Italian version of Vaccination statistics and COVID-19 cases for regions. You can see and download from my GitHub page.

screenshot

@Nils89

This comment has been minimized.

Copy link

@Nils89 Nils89 commented Apr 9, 2021

Weiß jemand wann die Morgenpost API auf das neue Format der Excel angepasst wird?

@sneakpodbob

This comment has been minimized.

Copy link

@sneakpodbob sneakpodbob commented Apr 9, 2021

Seit gestern geht das Widget nicht mehr, der fix ist aber einfach..

In Zeile 150

https://interaktiv.morgenpost.de/data/corona/rki-vaccinations.json

einfach das s hinter rki-vaccination entfernen.

https://interaktiv.morgenpost.de/data/corona/rki-vaccination.json

Aus Gründen die ich nicht versteh haben sie den URL des Endpoints geändert..

@Nils89

This comment has been minimized.

Copy link

@Nils89 Nils89 commented Apr 9, 2021

Klappt zwar, stehen aber aktuell auch veraltete Daten drin.

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Apr 9, 2021

Update 9. April:
Vielen Dank, @sneakpodbob - ist oben im Skript korrigiert.

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented Apr 9, 2021

Klappt zwar, stehen aber aktuell auch veraltete Daten drin.

Bei mir auch . Letzte Daten vom 6.4

@Nils89

This comment has been minimized.

Copy link

@Nils89 Nils89 commented Apr 9, 2021

Jetzt geht wieder alles, waren noch alte Daten im Cache

@HasanISabbah

This comment has been minimized.

Copy link

@HasanISabbah HasanISabbah commented Apr 9, 2021

Wie kann ich es nochmal als Widget hinterlegen?

@FlavourDaveMasterDDissle-theDtotheissle

This comment has been minimized.

Copy link

@FlavourDaveMasterDDissle-theDtotheissle FlavourDaveMasterDDissle-theDtotheissle commented Apr 10, 2021

Klappt zwar, stehen aber aktuell auch veraltete Daten drin.

Ebenfalls, letzte Daten vom 08.04.

@Nils89

This comment has been minimized.

Copy link

@Nils89 Nils89 commented Apr 10, 2021

Klappt zwar, stehen aber aktuell auch veraltete Daten drin.

Ebenfalls, letzte Daten vom 08.04.

Das ist richtig die Daten von gestern 9.4. gibt es noch nicht. Kommen meistens zwischen 11 und 12 Uhr und auch nur Mo-Sa

@FlavourDaveMasterDDissle-theDtotheissle

This comment has been minimized.

Copy link

@FlavourDaveMasterDDissle-theDtotheissle FlavourDaveMasterDDissle-theDtotheissle commented Apr 12, 2021

Klappt zwar, stehen aber aktuell auch veraltete Daten drin.

Ebenfalls, letzte Daten vom 08.04.

Das ist richtig die Daten von gestern 9.4. gibt es noch nicht. Kommen meistens zwischen 11 und 12 Uhr und auch nur Mo-Sa

Kann eigentlich nicht stimmen, auf der Website selbst waren schon aktuellere Zahlen plus später am Tag hat es sich dann endlich aktualisiert.

@ashton-hutscha

This comment has been minimized.

Copy link

@ashton-hutscha ashton-hutscha commented Apr 13, 2021

Hi zusammen, das Widget aktualisiert sich bei mir leider nicht automatisch sondern erst, wenn ich in der Scriptable App auf das entsprechende Script klicke. Bei "When Interacting" auf welches Setting sollte gesetzt werden? "Open App", "Run Script..."?

Vielen Dank im Voraus!

@patdiez

This comment has been minimized.

Copy link

@patdiez patdiez commented Apr 14, 2021

Hängt bei mir auch am 06/04 fest.
Zeile 150 hab ich auf https://interaktiv.morgenpost.de/data/corona/rki-vaccination.json
geändert. Der json sieht aber ander aus, als der "alte"

Alt:

{
		"id": "de",
		"date": "2021-04-06",
		"name": "Deutschland",
		"cumsum_latest": 15434496,
		"cumsum_7_days_ago": 13488151,
		"cumsum2_latest": 4633859
	},

Neu:

	{
		"id": "de.bw",
		"date": "2021-04-13",
		"name": "Baden-Württemberg",
		"cumsum_latest": 2478303,
		"cumsum_7_days_ago": 2018291,
		"cumsum2_latest": 681894,
		"prevdate": "2021-04-06",
		"days": 7
},

Mir fehlt aber das knowHow das zu fixen. :-)

@sneakpodbob

This comment has been minimized.

Copy link

@sneakpodbob sneakpodbob commented Apr 14, 2021

In dem JSON-Array hat sich nur die Reihenfolge geändert.. ganz unten steht weiterhin der Wert für Gesamt-DE-

	{
		"id": "de",
		"date": "2021-04-13",
		"name": "Deutschland",
		"cumsum_latest": 19242381,
		"cumsum_7_days_ago": 15677299,
		"cumsum2_latest": 5184052,
		"prevdate": "2021-04-06",
		"days": 7
	}

Führ das Widget mal innerhalb von Scriptable aus - ist es da noch auf alten Daten?

@patdiez

This comment has been minimized.

Copy link

@patdiez patdiez commented Apr 14, 2021

In dem JSON-Array hat sich nur die Reihenfolge geändert.. ganz unten steht weiterhin der Wert für Gesamt-DE-

	{
		"id": "de",
		"date": "2021-04-13",
		"name": "Deutschland",
		"cumsum_latest": 19242381,
		"cumsum_7_days_ago": 15677299,
		"cumsum2_latest": 5184052,
		"prevdate": "2021-04-06",
		"days": 7
	}

Führ das Widget mal innerhalb von Scriptable aus - ist es da noch auf alten Daten?

ok - geht. Hätte ich auch drauf kommen können... Vielen Dank!

@ray-hue

This comment has been minimized.

Copy link

@ray-hue ray-hue commented Apr 14, 2021

Ich bekomme leider keine Daten neuer als vom 6.4. Auf dem Home Screen angezeigt.
In scriptable selbst stimmt alles, hab es auch schon paar mal neu hinzugefügt und kopiert.
Evtl Weiss ja jemand was 😄

@MichaelMichaelMichaelMichaelMichael

This comment has been minimized.

Copy link

@MichaelMichaelMichaelMichaelMichael MichaelMichaelMichaelMichaelMichael commented Apr 15, 2021

Bei mir ist leider auch mit dem 6.4. Schluss

08B5A19B-7D31-494B-BA1E-8CEDFB3C1009

@Nils89

This comment has been minimized.

Copy link

@Nils89 Nils89 commented Apr 15, 2021

Habt ihr nach dem Update, dem Widget auch das richtige Script zugewiesen?

@xXTim97Xx

This comment has been minimized.

Copy link

@xXTim97Xx xXTim97Xx commented Apr 15, 2021

Bei mir ist leider auch mit dem 6.4. Schluss

08B5A19B-7D31-494B-BA1E-8CEDFB3C1009

WIe oben genannt einmal in Zeile 150 die URL von:
https://interaktiv.morgenpost.de/data/corona/rki-vaccinations.json

auf:
https://interaktiv.morgenpost.de/data/corona/rki-vaccination.json

abändern.

@MichaelMichaelMichaelMichaelMichael

This comment has been minimized.

Copy link

@MichaelMichaelMichaelMichaelMichael MichaelMichaelMichaelMichaelMichael commented Apr 15, 2021

Sorry für die Verwirrung, geht bei mir wieder. 👍

@iceman-2001

This comment has been minimized.

Copy link

@iceman-2001 iceman-2001 commented Apr 15, 2021

Hallo zusammen,

Wie kann ich das Widget im Homescreen aktualisiert bekommen?
In Scriptabe selber werden die neuen Daten angezeigt, aber nicht im homescreen Widget.

Danke für einen Tip

Hat sich gerade erledigt.
Jetzt hat sich das Widget aktualisiert

@ton3r

This comment has been minimized.

Copy link

@ton3r ton3r commented Apr 15, 2021

After changing the URL like xXTim97Xx explained, change the "cacheMinutes" to 1 minute and execute again. After that it's refreshed. Change back to 60 min

image

@marck-consulting

This comment has been minimized.

Copy link

@marck-consulting marck-consulting commented Apr 22, 2021

@marco . Kann sein das die „% Anzeige“ nicht mit hoch geht ?
Die Zahl ansonsten stimmt ja 👍

79804B23-D87B-4FA2-B55A-5C6F92D070C5

Ist die linke Ansicht noch verfügbar oder ist das eine alte Version des Widgets?

@StefanS200

This comment has been minimized.

Copy link

@StefanS200 StefanS200 commented Apr 28, 2021

Script aktualisiert nicht mehr. Letzter Stand 6.4.

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented Apr 28, 2021

@StefanS200
Der Fehler wurde schon behoben. Bitte das Skript neu kopieren und bis zu 60 Minuten warten (wegen Caching). Dann stimmt wieder alles.

@Nils89

This comment has been minimized.

Copy link

@Nils89 Nils89 commented May 3, 2021

Ich denke bei der gesamt Zahl hat sich ein Fehler eingeschlichen: die Zahl gibt 1. + 2. Impfung an, die % Zahl dahinter bezieht sich allerdings nur auf die 1. Impfung (+ JJ)

@Ted377

This comment has been minimized.

Copy link

@Ted377 Ted377 commented May 5, 2021

@Nils89 das ist mir auch schon aufgefallen.
Da stimmt die Berechnung nicht.

@Ted377

This comment has been minimized.

Copy link

@Ted377 Ted377 commented May 5, 2021

F44296DE-54F8-4C16-8F08-8FF5318E0E9B
BFF8A583-9217-4493-AA6D-B5EE481476F2

@Ted377

This comment has been minimized.

Copy link

@Ted377 Ted377 commented May 5, 2021

Ich würde mir hier eine Anpassung der Anzeige wünschen:

  1. die Impfung der letzten 7 Tage raus
  2. Erste Impfung rein
  3. Voller Impfschutz rein

im Endeffekt so wie es bei Morgenpost auch dargestellt wird.

Dann wären die Informationen korrekt.

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented May 5, 2021

Bin schon dran. Update kommt zeitnah.

@Ted377

This comment has been minimized.

Copy link

@Ted377 Ted377 commented May 6, 2021

Perfekt 😀
Genau so hatte ich mir das vorgestellt 😬

Schon mal großen Dank im Voraus 👍🏼

@toso1979

This comment has been minimized.

Copy link

@toso1979 toso1979 commented May 6, 2021

Super, kannst du in den Code vllt noch so etwas wie eine Versionsnummer einbauen. Bin wie ganz sicher obs ein Update gibt oder nicht.

@marco79cgn

This comment has been minimized.

Copy link
Owner Author

@marco79cgn marco79cgn commented May 6, 2021

Update (6. Mai, 13:49 Uhr)

Version 1.1.0:
Das Skript zeigt jetzt die Erstimpfungen sowie jene mit vollständigem Schutz getrennt voneinander an. Bitte neu kopieren. Werde das Skript zeitnah bei widget-hub hinzufügen, um künftige Updates zu vereinfachen.

@Gandalf8266

This comment has been minimized.

Copy link

@Gandalf8266 Gandalf8266 commented May 6, 2021

Cooles Sache, ich manage meine Scripts mit ScriptDude, ein Klick, und das Update war eingespielt.
Saubere Arbeit Marco!!

@F3000

This comment has been minimized.

Copy link

@F3000 F3000 commented May 6, 2021

Danke @marco

Warum ist jetzt das Datum von der Herdenimmunität von September auf Juli vorgezogen worden ? (bei Upgrade auf Version 1.1.0)