Coronavirus: Ausbreitungsstatistiken mit Homeassistant verfolgen

Coronavirus: Ausbreitungsstatistiken mit Homeassistant verfolgen

SARS-CoV-2, im Volksmund auch Coronavirus genannt, und die daraus resultierende Erkrankung COVID-19 hält die Welt in Atem. Seit dem Release 106.3 kann Homeassistant die gesicherten Fallzahlen weltweit und landesspezifisch als Sensoren bereitstellen. Wie man sich täglich automatisiert ein Update dieser Zahlen mittels einer beliebigen Notify-Integration senden lassen und die Daten anschaulich darstellen kann, möchte ich im Folgenden erläutern.

Coronavirus Integration in Homeassistant einbinden

Die Integration der Virusstatistiken erfordert keine händische Bearbeitung einer Konfigurationsdatei und kann bequem über die GUI aktiviert werden. Dazu unter Configuration > Integrations den großen roten Button mit dem “+”-Zeichen klicken und den Menüpunkt Coronavirus auswählen. Anschließend kann genauer definiert werden zu welchem Land (oder weltweit) Statistiken angegeben werden sollen. Im Folgenden Beispiel wird Deutschland ausgewählt und verwendet.

Anschließend stehen 4 Sensoren zur Verfügung:

  • sensor.germany_coronavirus_current: Aktuell akute Fälle von Erkrankungen
  • sensor.germany_coronavirus_confirmed: Gesamtzahl bekannter Erkrankungsfälle inkl. bereits erfolgter Heilungen
  • sensor.germany_coronavirus_recovered: Anzahl geheilter Erkrankungen
  • sensor.germany_coronavirus_deaths: Anzahl Todesfälle

Tägliche Benachrichtigung über die aktuellen Fallzahlen

Sind die Sensoren eingebunden, kann eine Automation erstellt werden, die tagesaktuell um 9 Uhr einen Bericht sendet. Im Beispiel nutze ich Matrix als Notification-Platform:

- alias: Corona Report
  initial_state: True
  trigger:
    - at: 09:00:00
      platform: time
  action:
    - service: notify.matrix
      data:
        message: >
          😷 CORONA REPORT ({{ now().strftime("%d.%m.%Y") }}): 😷

          ══════════════════════════

          Bestätigte Fälle: ...... {{ states('sensor.germany_coronavirus_confirmed') }}

          Aktuell infiziert: ....... {{ states('sensor.germany_coronavirus_current') }}

          Geheilte Fälle: ......... {{ states('sensor.germany_coronavirus_recovered') }}

          Todesfälle: .............. {{ states('sensor.germany_coronavirus_deaths') }}

Das Ergebnis:

Lovelace Card zur Visualisierung

Für die Darstellung der Fallzahlen benutze ich zwei Custom-Cards für Lovelace, die beide über HACS installiert werden können:

  1. vertical-stack-in-card: Erlaubt die vertikale Anordnung mehrerer Lovelace Cards ohne Trennelemente. Mehrere Karten werden wie eine große Card gerendert.
  2. mini-graph-card: Zur Darstellung eines Graphen über einen beliebig definierbaren Zeitraum. Im Beispiel wird der Zeitraum von 1 Woche benutzt.
type: 'custom:vertical-stack-in-card'
cards:
  - type: 'custom:mini-graph-card'
    animate: true
    entities:
      - entity: sensor.germany_coronavirus_confirmed
        index: 0
    font_size_header: 16
    hours_to_show: 192
    points_per_hour: 0.25
    name: COVID-19 Deutschland (1w)
    show:
      extrema: false
      icon: false
  - type: entities
    show_header_toggle: false
    entities:
      - entity: sensor.germany_coronavirus_confirmed
        icon: 'mdi:account-switch'
        name: Bestätigte Fälle
      - entity: sensor.germany_coronavirus_current
        icon: 'mdi:doctor'
        name: Aktuell Betroffen
      - entity: sensor.germany_coronavirus_recovered
        icon: 'mdi:pill'
        name: Geheilte Fälle
      - entity: sensor.germany_coronavirus_deaths
        icon: 'mdi:skull-crossbones'
        name: Totenzahl
      - entity: automation.corona_report
        icon: 'mdi:comment-alert-outline'

Das Ergebnis sieht dann so aus: