Skip to content

Eine simple Client Implementierung der NINA Warn App API für die MagicMirror² Plattform.

License

Notifications You must be signed in to change notification settings

jalibu/MMM-NINA

Repository files navigation

MMM-NINA

version Known Vulnerabilities

Eine simple Client Implementierung der NINA Warn App API für die MagicMirror² Plattform.
Klicke hier für den Forum Thread.

Feedback und Mithilfe willkommen.

Support

Wenn du meine Arbeit schätzt, dann freue ich mich über einen bescheidenen Beitrag zu meinem nächsten Feierabend-Bier.

Features

  • Das Modul ruft periodisch die NINA API auf und ermittelt Warnmeldungen für deinen Kreis. Screenshot1
  • Es können Alarme mehrerer Städte/Gemeinden gleichzeitig abgerufen werden.
  • Identische Warnungen können zusammengefasst werden. Screenshot2
  • 2 unterschiedliche Themes

Installation

  1. Navigiere in das MagicMirror/modules Verzeichnis und führe folgendes Kommando aus, um das Projekt auf deine Festplatte zu klonen:

    git clone https://github.com/jalibu/MMM-NINA
  2. Ermittle den amtlichen Gemeindeschlüssel deines Ortes aus dieser Liste.

  3. Binde das Modul abschließend in die MagicMirror-Konfiguration MagicMirror/config/config.js ein (Beispiel Konfiguration).

     {
         module: "MMM-NINA",
         position: "top_right",
         config: {
             ags: ["110000000000"], // Liste der Gemeinden, die abgefragt werden sollen
             downgradeLhpSeverity: false,
             downgradeCancelSeverity: true,
             hideCancelledWarnings: false,
             excludeProviders: [], // Mögliche Werte ["MOWAS", "DWD", "BIWAPP", "LHP"]
             maxAgeInHours: 6,
             maxWidth: "200px",
             mergeAlertsById: true,
             mergeAlertsByTitle: true,
             orderBySeverity: true,
             showIcon: true,
             showDate: true,
             showCity: true,
             showNoWarning: true,
             theme: "top", // Erlaubte Werte: top, top-floating, side
             updateIntervalInSeconds: 120,
    
         }
     }

Update

Um das Modul zu aktualisieren, navigiere in das Modulverzeichnis und führe ein git pull aus:

cd ~/MagicMirror/modules/MMM-NINA
git pull

Optionen

Feld Beschreibung Default
ags (Liste von Strings) Amtliche(r) Gemeindeschlüssel (AGS)
Wichtig: Werte unbedingt als String mit führenden Nullen angeben!
["110000000000"] (Berlin)
downgradeLhpSeverity (Boolean) Reduziert die Severity von Meldungen des Länderübergreifenden Hochwasser Portals (LHP) auf "Minor" false
downgradeCancelSeverity (Boolean) Aufgehobene Warnungen sollen grün dargestellt werden und nicht in ihrer ursprünglichen Severity. true
excludeProviders (Liste von Strings) Liste von Providern, dessen Meldungen nicht angezeigt werden sollen. Provider sind: "MOWAS", "DWD", "BIWAPP", "LHP" [] (kein Filter)
hideCancelledWarnings (Boolean) Verstecke aufgehobene Warnungen false
maxAgeInHours (Integer) Maximales Alter der Warnmeldungen in Stunden, bevor sie ausgefiltert werden 6
maxWidth (String) CSS Style für maximale Breite des Moduls, z.B. 220px. Weg lassen, zum Deaktivieren. undefined (deaktiviert)
mergeAlerts Veraltet. Bitte stattdessen mergeAlertsById verwenden. -
mergeAlertsById (Boolean) Sofern Alerts für mehrere Gemeinden abgefragt werden, wird versucht gleiche Meldungen zusammenzufassen true
mergeAlertsByTitle (Boolean) Sofern Alerts mit gleichem Titel vorliegen, wird versucht die Meldungen zusammenzufassen true
orderBySeverity (Boolean) Sollen Warnmeldungen absteigend nach ihrem Schweregrad angezeigt werden? true
showCity (Boolean) Soll der Name der Gemeinde angezeigt werden? true
showDate (Boolean) Soll das Datum der Meldung angezeigt werden? true
showIcon (Boolean) Soll ein Warn-Symbol vor den Warnungen angezeigt werden? true
showNoWarning (Boolean) Lässt eine Meldung "Keine Warnungen" erscheinen, falls keine Ereignisse vorliegen. false
updateIntervalInSeconds (Integer) Abstand in Sekunden, in dem Warnmeldungen vom NINA Server abgerufen werden 120 (2 Minuten)
theme (String) Welches Theme soll angewendet werden?
Verfügbare Themes: top, top-floating und side
side

Contribution and Development

This module is written in TypeScript and compiled with Rollup. The source files are located in the /src folder.

Contribution for this module is welcome!

Available Scripts

Script Purpose
node --run build Production build (minified, optimized)
node --run dev Development build with inline sourcemaps
node --run demo Start MagicMirror with demo config (MM_CONFIG_FILE=modules/MMM-NINA/config.demo.js)
node --run dev:watch Watch mode for active development
node --run test Full quality check (TypeScript + ESLint + Prettier)
node --run type-check TypeScript type validation only
node --run lint Check code style (ESLint + Prettier)
node --run lint:fix Auto-fix code style issues
node --run release Create release (bumps version, updates CHANGELOG, creates git tag)

Development Workflow:

# Start development with watch mode
node --run dev:watch

# Before committing, run full quality check
node --run test

# Auto-fix any linting/formatting issues
node --run lint:fix

# When ready for release
node --run release

Git Hooks:

Folgende Git Hooks sind automatisch aktiviert:

  • pre-commit: Führt node --run test aus (verhindert untesteten Code)
  • pre-push: Führt node --run build aus (verhindert nicht-kompilierten Code)

Gemeindeschlüssel aktualisieren

Hinweis: Dieser Abschnitt ist für normale Nutzer nicht relevant. In größeren sollten die Gemeindeschlüssel jedoch aktuallisiert werden, um neue Gemeinden zu unterstützen.

Die Datei src/backend/Regionalschluessel_2025-07-31.json enthält alle deutschen Gemeinden mit ihren amtlichen Gemeindeschlüsseln (AGS). Diese Datei wird jährlich vom Statistischen Bundesamt aktualisiert.

Um die Datei zu aktualisieren:

  1. Download der neuesten Version (ersetze YYYY-MM-DD mit dem aktuellen Datum, z.B. 2026-07-31):
cd ~/MagicMirror/modules/MMM-NINA/src/backend
curl -s "https://www.xrepository.de/api/xrepository/urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:rs_YYYY-MM-DD/download/Regionalschl_ssel_YYYY-MM-DD.json" -o Regionalschluessel_YYYY-MM-DD.json
  1. Update des Imports in src/backend/Utils.ts:
// Ändere von:
import { daten } from './Regionalschluessel_2025-07-31.json'

// zu:
import { daten } from './Regionalschluessel_YYYY-MM-DD.json'
  1. Formatiere die neue Datei mit Prettier:
cd ~/MagicMirror/modules/MMM-NINA
node --run lint:fix

Die neuesten Versionen sind verfügbar unter:

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Eine simple Client Implementierung der NINA Warn App API für die MagicMirror² Plattform.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 6