Go to file
2020-06-17 22:01:01 +02:00
misc update Mi 17. Jun 21:31:01 CEST 2020 2020-06-17 21:31:01 +02:00
public update Mo 15. Jun 01:01:02 CEST 2020 2020-06-15 01:01:02 +02:00
server update Mi 17. Jun 22:01:01 CEST 2020 2020-06-17 22:01:01 +02:00
views update Sa 13. Jun 11:31:01 CEST 2020 2020-06-13 11:31:01 +02:00
.foreverignore 2020-01-18 10:40:30 +01:00
.gitignore 2020-01-18 10:40:30 +01:00
LICENSE.md License & Readme 2018-12-06 10:02:50 +01:00
package-lock.json update Mi 17. Jun 22:01:01 CEST 2020 2020-06-17 22:01:01 +02:00
package.json update Mi 17. Jun 22:01:01 CEST 2020 2020-06-17 22:01:01 +02:00
README.md Anpassung 2020-01-05 23:00:55 +01:00
server.js update Di 16. Jun 09:31:02 CEST 2020 2020-06-16 09:31:02 +02:00
TODO.md update Do 6. Feb 17:01:01 CET 2020 2020-02-06 17:01:01 +01:00

Wachalarm-IP-Web

enter image description here

DEMO

📺🔥 https://wachalarm.info.tm/

Login-Daten:

  • Benutzer: me
  • Passwort: 123

Die Demo-Version zeigt frei erfundene Einsätze die jede Stunde neu alarmiert werden. Ohne Login wird der Wachalarm mit reduziertem Inhalt dargestellt (zur Wahrung des Datenschutzes).

Beschreibung

Ziel dieser Version des Wachalarms soll es sein, auf jedem Endgerät - egal ob Windows, Linux, Mac, PC oder Smartphone - Alarme anzuzeigen ohne zusätzliche Software zu installieren. Da es sich beim Wachalarm-IP-Web um eine reine Web-Server-Anwendung handelt, sollte dieser am besten durch eine Leitstelle betrieben werden, die Einsatzalarme direkt an das System übergibt. Der Zugriff erfolgt dann innerhalb eines geschützten Netzwerkes (VPN, LAN etc.) oder direkt über das Internet (sofern freigegeben und gewollt). Der Web-Server empfängt Einsatzdaten über eine definierte Schnittstelle aus dem Einsatzleitsystem (oder anderen Systemen) und übersendet diese dann an die jeweiligen Clients.

Funktionsumfang

  • Anzeige verschiedener Wachalarme für einzelne Wachen, Träger oder ganze Kreise
  • Ausgabe synthetischer Sprachdurchsagen (Gong, Einsatzart, Stichwort, Ort, Ortsteile, beteiligte Einsatzmittel, Sondersignal)
  • Kartenmodul zur Anzeige des Einsatzortes
  • Responsive Webdesign - gleiche Anzeige des Wachalarms auf allen Geräten, Unterstützung von Hoch- und Querformat
  • Rechteverwaltung von Benutzern zur Sicht von Wachalarmen verschiedenster Wachen, Träger oder ganzer Kreise
  • Verschlüsselte Übertragung der Einsatzdaten (https)
  • Anzeige eines reduzierten (Datenschutz beachtenden) Wachalarms bei fehlender Berechtigung
  • Steuerung der übermittelten Daten durch den Server - auf dem Client werden keine Daten gespeichert (außer dem Session-Cookie)
  • Volle kompatibilität mit den gängigen Browsern (getestet in Chrome, Firefox, Safari, Microsoft Edge)
  • Basierend auf modernsten Web-Technologien (Node.js, Express, Socket.io, Passport, SQLite, Bootstrap, Leaflet)

offene Punkte

Neue Funktionen oder bekannte Probleme werden schrittweise hinterlegt. Eine Aufzählung findet sich hier.

Installation & Konfiguration

Vorbereitung & Installation

  1. Installation von Node.js (Version 10 LTS oder höher)
  2. Installation von FFmpeg (wird benötigt um Sound-Dateien umzuwandeln und neu zusammen zu setzen)
  3. optional: Installation von SVOX "pico2wave" (nur zur Sprachausgabe unter Linux notwendig)
  4. Download des Quellcodes (Master)
  5. Entpacken der *.zip-Datei
  6. Komandozeile öffnen (Powershell, CMD, Terminal etc.) und in das entpackte Verzeichnis wechseln. Dort folgende Befehle eingeben
  7. npm install (lädt und installiert alle Pakete)
  8. npm start (startet den Web-Server)
  9. optional: eigenes SSL-Zertifikat erstellen und im Verzeichnis /server ablegen

Server-Einstellungen

In der Datei ./server/app_cfg.js können individuelle Einstellungen für den Betrieb des Servers gesetzt werden:

  • http_port: 3000 (HTTP-Port der Anwendung)
  • https_port: 3443 (HTTPS-Port der Anwendung)
  • udpport: 60233 (UDP-Port der Schnittstelle)
  • database: './database.sqlite3' (Speicherort der Datenbank)
  • soundpath: '/public/media/' (Speicherort der Sound-Dateien)
  • mediapath: '/media/' (Pfad der Mediendateien)
  • defaultuser: 'me' (Standard-Administrator, beim ersten Start)
  • defaultpass: '123' (Standarad-Administrator-Passwort)
  • defaultuserip: '127.0.0.1' (Standard-IP des Administrators)
  • ip_auth_range: ['::ffff:172.16.5.0/24', '::ffff:192.168.2.0/24'] (Bereich / Bereiche aus denen eine Anmeldung per IP-Adresse zulässig ist)
  • saltRounds: 10 (Anzahl der Verschlüsselungsrunden für Kennwörter)
  • sessionsecret: '0987654321abcdef#xyz' (Geheimnis für Session-Speicherung)
  • app_id: process.pid (Prozess-ID)
  • map_tile: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' (Provider der Hintergrund-Karte des Wachalarms)

Zertifikat

Erläuterung folgt. Selbst signiertes Zertifikat erstellen:

openssl req -nodes -new -x509 -keyout server.key -out server.cert

Benutzer verwalten

Erläuterung folgt.

Schnittstelle

Erläuterung folgt.

Beispiel JSON

{
  "einsatzdaten": {
    "nummer": "419123456",
    "alarmzeit": "19.02.16&17:16",
    "art": "Brandeinsatz",
    "stichwort": "B:Sonderobjekt",
    "sondersignal": 1,
    "besonderheiten": "Probeeinsatz für Wachalarm-IP-Web der Leitstelle Lausitz!",
    "patient": "Mustermann, Max"
  },
  "ortsdaten": {
    "ort": "Cottbus",
    "ortsteil": "Madlow",
    "strasse": "Dresdener-Straße 46",
    "objekt": "Regionalleitstelle Lausitz",
    "objektnr": "-1",
    "objektart": "",
    "wachfolge": "520201",
    "wgs84_x": "51.733266",
    "wgs84_y": "14.337831"
  },
  "alarmdaten": [
    {
      "typ": "ALARM",
      "netzadresse": "192.168.1.120",
      "wachenname": "CB FW Cottbus 1",
      "einsatzmittel": "FL CB 01/82-01",
      "zeit_a": "17:16",
      "zeit_b": "",
      "zeit_c": ""
    },
    {
      "typ": "ALARM",
      "netzadresse": "",
      "wachenname": "CB FW Cottbus 2",
      "einsatzmittel": "FL CB 02/46-01",
      "zeit_a": "17:16",
      "zeit_b": "",
      "zeit_c": ""
    }
  ]
}

Screenshots

Startseite

FireShot Capture 001 - Startseite - localhost

Einsatz (Querformat)

FireShot Capture 005 - Alarmmonitor - localhost

Einsatz (Hochformat)

FireShot Capture 006 - Alarmmonitor - localhost

Bildschirmschoner

FireShot Capture 002 - Alarmmonitor - localhost

Login

FireShot Capture 003 - Login - localhost

Benutzerverwaltung

FireShot Capture 004 - Benutzer und Rechte verwalten - localhost

Lizenz

[Creative Commons Attribution Share Alike 4.0 International]