(Sorry, English readers: This program follows some German Covid-19 regulations and only works for geo coordinates within Germany. Thus, all explanations are in German only.)
Farbcodierte Anzeige der aktuellen Covid-19 7-Tage-Inzidenz für Landkreise/kreisfreie Städte in Deutschland auf der Kommandozeile.
Geschrieben in Python3, es sollte damit auf allen Systemen laufen, auf denen Python3 installiert ist.
Das Programm zeigt den aktuellen 7-Tage-Inzidenzwert farbcodiert an, basierend auf Geo-Koordinaten (latitude, longitude), wie man sie z.B. bei OpenStreetMap oder Google Maps abfragen kann:
Die Daten werden direkt vom Robert-Koch-Institut (COVID-19 Datenhub) bezogen (Danke.)
Um eine leichte Weiterverwendung in anderen Programmen zu ermöglichen, kann in folgenden Formaten ausgegeben werden: ohne Farbcodierung, mit Terminal-Farbcodierung, mit HTML-Farbcodierung und als CSV (mit und ohne Kopfzeile). Außerdem gibt es eine kurze und eine längere Ausgabe.
Python3 muss installiert sein (getestet ab Version 3.4.3).
Das Programm benötigt die Python-Module requests, argparse, colorama, datetime, json und textwrap, die auf den meisten Systemen schon installiert sein dürften, aber ggf. leicht nachzuinstallieren sind, z.B. mit
pip3 install requests
für das requests-Modul.
Die Datei inzidenz
einfach an eine geeignete Stelle kopieren (z.B. ~/bin
oder /usr/local/bin
) und ausführbar machen (chmod +x inzidenz
).
Zur Verwendung auf Windows-Systemen wird empfohlen, die Datei in inzidenz.py
umzubenennen. Die Beispiele dann entsprechend mit inzidenz.py
statt inzidenz
ausführen.
Alle anderen Dateien werden zur Ausführung nicht benötigt.
Öffnen Sie inzidenz
mit einem Text-Editor, der UTF-8 und Linux-Zeilenenden beherrscht und tragen Sie in den Zeilen 21 und 22 Ihre Lieblings-Koordinaten ein:
# Hier die Default-Koordinaten angeben, z.B. Ihren Standort zuhause.
# Berlin, Alexanderplatz, Weltzeituhr
lat = 52.52134162768218
lon = 13.41327381161729
Speichern Sie die Datei danach ohne Endung wieder ab.
Nun können Sie auf der Kommandozeile einfach inzidenz
eingeben, ohne jedes Mal Ihre Koordinaten angeben zu müssen.
Diese Hilfe können Sie auch mit inzidenz -h
oder inzidenz --help
abfragen:
usage: inzidenz [-h] [-V] [-f {none,term,html,csv}] [-lat LATITUDE] [-lon LONGITUDE] [-v]
Covid-19 7-Tage-Inzidenz für Landkreise/kreisfreie Städte in Deutschland
optional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-f {none,term,html,csv,json}, --format {none,term,html,csv,json}
set output format (default: term)
-lat LATITUDE, --latitude LATITUDE
set latitude (default: 52.52134162768218)
-lon LONGITUDE, --longitude LONGITUDE
set longitude (default: 13.41327381161729)
-v, --verbose verbose output (default: False)
Der Inzidenzwert ist farbcodiert (Ausgabeformate 'term' und 'html'):
Bis 35 grün, über 35 gelb, über 50 rot, über 100 magenta.
Daten vom Robert-Koch-Institut (COVID-19 Datenhub).
inzidenz
unter Linux:
inzidenz.py
unter Windows 7 (und neuer):
Abfrage der Geo-Koordinaten bei Google Maps:
Rechtsklick auf dem gewünschten Ort (hier München Flughafen): Es werden die Koordinaten angezeigt. Ein normaler Klick auf die Koordinaten kopiert sie dann in die Zwischenablage.
7-Tage-Inzidenzwert für den vorgegebenen Standort abfragen (Kurzform):
inzidenz
7-Tage-Inzidenzwert für den vorgegebenen Standort abfragen (lange Form):
inzidenz -v
7-Tage-Inzidenzwert für einen anderen Standort abfragen (München Flughafen):
inzidenz -lat 48.357949 -lon 11.783045
CSV-Datei test.csv
mit Kopfzeile anlegen:
inzidenz -f csv -v > test.csv
Neue Daten an CSV-Datei test.csv
anhängen (ohne Kopfzeile):
inzidenz -f csv >> test.csv
Ausgabe als JSON (UTF-8), z.B. zur Verwendung mit Home Assistant:
inzidenz -f json
In Home Assistant kann dieses Script z.B. so eingebunden werden (configuration.yaml
):
automation:
# Covid-19 7-Tage-Inzidenz
- platform: command_line
name: "Covid-19 7-Tage-Inzidenz"
# HASSIO: "python3 /config/scripts/inzidenz -f json"
command: "python3 /home/homeassistant/.homeassistant/scripts/inzidenz -f json"
json_attributes:
- inzidenz
- bezeichnung
- name
- bundesland
- fullname
- last_update
- lat
- lon
value_template: "{{ value_json.inzidenz_rounded }}"
scan_interval: 3600
command_timeout: 15
Dazu müssen allerdings auf dem Home-Assistant-Server alle benötigten Python3-Module installiert sein. (Bspw. mittels python3 -m pip install colorama
machbar.)
Ich hoffe, dieses kleine Programm macht es dem einen oder der anderen leichter, schnell die aktuellen Inzidenzwerte abzufragen. Auf den verschiedenen Internet-Websites findet man sie leider manchmal erst nach längerer Suche und Klickerei …
Ich persönlich benutze das Skript, um die Daten automatisch in meine Obsidian-Tagesnotiz einfügen zu lassen:
Und natürlich in Home Assistant: