inzidenz
(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.
Voraussetzungen
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 requestsfür das requests-Modul.
Installation
Auf Betriebssystemen mit installiertem Python3
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.
Änderung der Standard-Koordinaten
Ö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.41327381161729Speichern 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.
Verwendung
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).
Beispiele
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):
inzidenz7-Tage-Inzidenzwert für den vorgegebenen Standort abfragen (lange Form):
inzidenz -v7-Tage-Inzidenzwert für einen anderen Standort abfragen (München Flughafen):
inzidenz -lat 48.357949 -lon 11.783045CSV-Datei test.csv mit Kopfzeile anlegen:
inzidenz -f csv -v > test.csvNeue Daten an CSV-Datei test.csv anhängen (ohne Kopfzeile):
inzidenz -f csv >> test.csvAusgabe als JSON (UTF-8), z.B. zur Verwendung mit Home Assistant:
inzidenz -f jsonEinbindung in Home Assistant
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: 15Dazu müssen allerdings auf dem Home-Assistant-Server alle benötigten Python3-Module installiert sein. (Bspw. mittels python3 -m pip install colorama machbar.)
Bleiben Sie gesund!
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:





