Moonbase59 / inzidenz

Covid-19 7-Tage-Inzidenz für Landkreise/kreisfreie Städte in Deutschland

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

Terminal-Ausgabe

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 requests

fü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.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.

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 unter Linux

inzidenz.py unter Windows 7 (und neuer):

inzidenz.py unter Windows

Abfrage der Geo-Koordinaten bei Google Maps:

Google Maps Koordinaten-Abfrage

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

Einbindung 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: 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.)

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:

Obsidian Tagesnotiz

Und natürlich in Home Assistant:

Home Assistant Sensor

About

Covid-19 7-Tage-Inzidenz für Landkreise/kreisfreie Städte in Deutschland


Languages

Language:Python 100.0%