ETB – Das Einsatztagebuch
ETB – Das Einsatztagebuch
ETB – Das Einsatztagebuch (kurz: ETB) ist das Einsatzdokumentations-Produkt von BrunSoft.
Web-basiertes Einsatztagebuch mit automatischem Mail-Parser, Lagekarte, Telegram-Alarmierung und Rollen-Konzept — entwickelt für eine Feuerwehr in NRW, von Grund auf darauf ausgelegt, von anderen Feuerwehren übernommen und über einen Setup-Wizard auf die eigene Wache konfiguriert zu werden.
Status: aktiv im Einsatz bei einer Feuerwehr. Andere Feuerwehren sind willkommen — die ortspezifischen Stellen werden Schritt für Schritt in den Setup-Wizard und in Konfigurations-Settings verschoben.
Was es kann
- Mail-Parser — eingehende Alarm-Mails der Leitstelle werden automatisch geparst (Stichwort, Adresse, Sachverhalt, Einsatzmittel, Melder) und erzeugen einen Einsatz in der Datenbank.
- Stichwort-Katalog — administrierbarer Katalog der Einsatzstichworte (Kategorie, volles Stichwort, Anzeige-Variante, Aliase) inkl. CSV-Import und automatisch abgeleiteter Anzeige-Variante über Ausblend-Präfixe. Im Einsatz-Formular wählst du das Stichwort verkettet (Kategorie → Stichwort); Freitext bleibt für noch nicht katalogisierte Stichworte möglich. Der Mail-Parser gleicht eingehende Alarm-Mails gegen den Katalog ab (Treffer auf volles Stichwort oder Alias → Anzeige-Variante).
- Lagekarte — Leaflet/OpenStreetMap, zeigt offene und abgeschlossene Einsätze, Hydranten und Einsatzmittel-Marker. Das Einsatzmittel-Panel öffnet am Smartphone und im Tablet-Hochformat als Vollbild-Overlay.
- Karten-Links je Einsatz — direkte Sprünge zur Einsatzstelle in externen Karten-Diensten: TIM-Online (NRW-Kataster), Digitaler Zwilling NRW (dz.nrw.de, landesweites 3D-Geosystem — je Instanz ab-/zuschaltbar), OpenStreetMap und der eigene Hydrantenplan — in der Einsatz-Detailseite und in der Telegram-Alarm-Nachricht. Die für den Digitalen Zwilling nötigen UTM-Koordinaten (EPSG:25832) berechnet das ETB automatisch aus den GPS-Daten.
- Kurz-Standort je Einsatz — optionales, kompaktes Standort-Kürzel
zusätzlich zur Adresse, automatisch aus den GPS-Koordinaten abgeleitet:
als Plus Code (Open Location Code, offline berechnet, kostenlos) und/oder
what3words (kostenpflichtiger API-Schlüssel in
config/.env). Beide Anbieter sind je Instanz einzeln zuschaltbar und standardmäßig aus; im Bearbeiten-Formular lässt sich der Standort auch per Kürzel setzen (bidirektionale Angleichung mit GPS/UTM). what3words mit Monatszähler und Verbindungstest im Admin sowie Kontingent-Karte im System-Status. - Hydrantenplan — eigene OSM-basierte Karte mit dem Hydranten-Inventar der Wehr, gespeist aus einer selbst hochgeladenen GeoJSON-Datei (zweistufiger Upload mit Vorschau, tolerant bei Feldnamen). Farb-Klassen nach Nennweite (Schwellen, Bezeichnungen und Farben frei konfigurierbar), Filter nach Ort und Dimension.
- Meldungs-Bus & Alarmierung — alle Nachrichten des ETB laufen über eine kanal-unabhängige Schicht: Adressiert wird an Benutzer, Rollen und Löschgruppen, ein austauschbarer Kanal-Adapter macht daraus die Zustellung (heute Telegram, weitere Wege folgen). Der Zustellweg gilt für die ganze Installation — ein einzelner Benutzer wählt ihn bewusst nicht selbst. Im Admin-Bereich Mitteilungen legst du je Meldungsart mehrere Regeln fest (die Führungsstelle bekommt anderen Text und andere Rückmeldungen als eine Löschgruppe; pro Person greift die erste passende), je Regel eine Kurzfassung für Benachrichtigungen — bewusst ohne Personendaten — und eine Langfassung. Dazu ein Zustellnachweis mit fünf Zuständen (zugestellt, nur eingeschränkt, nur im ETB sichtbar, nicht gesendet, fehlgeschlagen) und Eskalation bei echter Fehlzustellung; einen Ausweichkanal gibt es bewusst nicht. Jeder Benutzer sieht unter Meldungen, was an ihn ging. Für reine Alarm-Empfänger gibt es die Rolle Einsatzkraft: ein Konto ohne Zugang, das die Person nur adressierbar macht. Telegram bringt weiterhin die Sonder-Nachricht für IuK-Alarmstichworte und sechs frei editierbare Nachrichten-Templates (Alarm, Alarmierungsliste, Fehler, Heartbeat, ETB-Reset, Selbsttest) mit Platzhaltern und Live-Vorschau.
- Multi-Alarm-Regeln & manuelle Auslösung — ein Stichwort kann
automatisch mehrere Folge-Einsätze (oder -Abschnitte) anlegen
(z. B. UW-ERSTALARM → Grundschutz + Bereitstellung). Bleibt die
Leitstellen-Mail aus, löst der Knopf „
⚡ Alarm auslösen" dieselbe Regel von Hand aus — Basis-Einsatz + Folge-Einsätze an wählbarer Adresse inklusive echter Telegram-Alarmierung, mit Cooldown gegen Doppelauslösung (Recht „Alarm manuell auslösen", Default Lage/EL/Admin). Auch bei manuell angelegten oder geänderten Einsätzen bietet ein Bestätigungs-Banner das Auslösen passender Regeln an (Telegram optional, je Regel und Einsatz nur einmal). - Rollen-Konzept —
admin,lage,einsatzleiter,dispo,sp_dispo,gastmit abgestuften Rechten auf Einsätze, Abschnitte, Schwerpunkte und Stammdaten, dazueinsatzkraftals reiner Meldungs-Empfänger ohne Login (das Konto macht die Person nur über ihre Löschgruppe adressierbar). Berechtigungen pro Rolle administrierbar (/admin/rollen.php) über eine Häkchen-Matrix aus 47 atomaren Permissions — mit Admin-Failsafe und Locked-Permissions gegen Selbst-Aussperren. Rollen-, Aktiv- und Einsatz-Rollen-Änderungen wirken ohne Neuanmeldung (Status-Prüfung pro Request; deaktivierte Konten werden sofort ausgeloggt). Passwort-Selbsthilfe per E-Mail-Link (zeitlich begrenzt, einmalig, nur für Konten mit hinterlegter E-Mail) über ausgehenden SMTP-Versand; keine Selbstregistrierung. - Einsatz-Rollen (temporäre Rollen) — einem Benutzer befristet (max. 48 h) die höhere Rolle Einsatzleiter oder Lage leihen, z. B. für eine mehrtägige Lage. Wirkt sofort ohne Neuanmeldung, das höhere Recht gewinnt („Highlander"), und läuft automatisch aus. Administrator und Schwerpunkt-Dispo sind ausgeschlossen. Wer die Rolle selbst nur geliehen hat, darf sie ihrerseits weitervergeben — die Kette wird dabei über die Laufzeit gedeckelt (endet spätestens mit der eigenen geliehenen Rolle), nicht über ein Verbot. Dazu der Alarm-Knopf (je Alarm-Regel konfigurierbar): Löst die Regel aus, kann ein Disponent die Rolle Lage oder Einsatzleiter einmalig selbst übernehmen — für Alarmlagen ohne anwesende Führung; die so übernommene Lage darf dabei unabhängig vom sonst nötigen Vergabe-Recht weitervergeben, höhere Rollen können das Angebot stattdessen entschärfen. Entziehen („Entfernen", „Alle zurücksetzen") bleibt dagegen der festen Basis-Rolle vorbehalten — eine geliehene Rolle kann ihrem Verleiher nichts wegnehmen.
- Abschnitts-Funktion — größere Einsätze in operative Abschnitte unterteilen (Wasserversorgung, Brandbekämpfung, …) mit eigenem Status, Abschnittsleiter, Funk-Rufgruppe und Einsatzmittel-Zuweisung.
- Schwerpunkte (Großlagen-Gruppierung) — bei Unwetter, Flächenbrand oder Großübung mehrere Einsätze unter einem dedizierten Disponenten bündeln; eigener Einsatzmittel-Pool, eigene Lagekarte mit Dichte- Visualisierung, automatische Einsatz-Zuweisung nach Ort, eigenes „Schwerpunkttagebuch" mit gefiltertem Sub-View aller Module. Optional entsteht beim Anlegen automatisch ein Leitungs-Einsatz für die Schwerpunkt-Führung — ein ganz normaler, oben fixierter Einsatz, der sich wie jeder andere verhält (auch beim Abschluss). Wichtige Einsätze lassen sich in der Übersicht per Reißzwecken-Symbol anheften und stehen dann unabhängig von Sortierung immer oben.
- Bevölkerungswarnung (MoWaS) — das standardisierte Anforderungsformular
für eine Warnung über das Modulare Warnsystem (Warn-App NINA, Sirenen,
Cell Broadcast, Rundfunk) im ETB erfassen, freigeben und als versandfertiges
PDF erzeugen — an einem Einsatz oder Schwerpunkt gestartet und aus dessen
Daten vorbelegt. Mit Vier-Augen-Freigabe je Zyklus (Erstwarnung →
Aktualisierung → Entwarnung), Warnbereichen (eigen/Nachbar/„Gesamt"),
editierbaren Handlungsempfehlungen und Meldungsvorlagen mit Platzhaltern,
administrierbaren Katalogen samt Musterdaten-Loader, revisionsfester
Historisierung der übermittelten Stände, einem Zivilschutz-Warn-Indikator
in Listen/Detail und Warnflächen auf den Karten. Der zu warnende Bereich
ist wahlweise ein Umkreis oder die gesamte Gemeinde — gilt die Warnung
der ganzen Gemeinde (Feld 7 oder ein als „Gesamt" markierter Warnbereich),
zeichnen Lagekarte und Einsatz-Karte statt eines Kreises den
Gemeinde-Umriss (einmalig aus OpenStreetMap geholt oder als GeoJSON-Datei
hochgeladen). Eine offene Warnung blockiert das Erledigen des zugehörigen
Einsatzes bzw. Schwerpunkts, bis sie abgeschlossen ist. Vier eigene Rechte
(
mowas.view/create/release/export) — Sehen und das Herunterladen der Formulare (PDF/Excel) sind getrennt, Downloads werden protokolliert; die Warnung wird nie automatisch versendet. Verlangt Eure Leitstelle ihr eigenes Formular, füllt das ETB es maschinell: Für die Kreisleitstelle Rhein-Sieg-Kreis entsteht das Original-Formular (F.1 Anlage A) als fertige, in Excel weiter bedienbare Excel-Datei zum Download (umschaltbar in den Stammdaten, PDF bleibt daneben erhalten). Die Gemeinde wird einmalig aus dem Formular selbst gewählt, und eine neue Formular-Version der Leitstelle spielt der Administrator geprüft selbst ein. - Wetter (zubuchbares Zusatzmodul) — amtliche Warnungen des Deutschen
Wetterdienstes für frei wählbare Beobachtungsgebiete (eigene Gemeinde,
Nachbarn, Kreis — komfortabel aus dem amtlichen DWD-Gebietskatalog gewählt),
aktuelle Messwerte, eine 24-Stunden-Vorschau mit Vorwarnzeit im Klartext
und ein Lagebild zum Ausdrucken für die Lagebesprechung. Auf Lagekarte,
Wetterseite und maximierter Einsatzkarte drei zuschaltbare Ebenen:
DWD-Warnflächen (schraffiert, Muster kodiert die Stufe, dazu das Symbol
der Warnart — Gewitter, Sturm, Regen, Schnee, Glätte, Frost, Tauwetter,
Nebel, Hitze, UV; Hitze und UV nach der eigenen Farbskala des DWD),
Regenradar mit Zeitleiste (−2 h bis +2 h, abspielbar) und
Blitze & Vorhersage (erkannte Blitze plus Vorhersage für die nächste
Stunde). Ein Klick auf die Karte
setzt die Wetter-Rose (Temperatur als Ring und Zahl, Windkeil in
Wehrichtung, Böen als Zacken) und daneben die Warntafel mit der Warnlage
an genau diesem Punkt, inklusive Gebietsname. Die Wetterkarte lässt sich
maximieren, ohne Ausschnitt und Schalterstellung zu verlieren. Jeder neue
Einsatz hält automatisch fest, wie das Wetter bei der Anlage war
(Detailsicht und PDF-Export); Warnung und aktuelles Wetter lassen sich per
Knopf als Kommentar ins Tagebuch übernehmen (Text serverseitig erzeugt,
nie aus dem Formular). Warnungen, Warnflächen, Radar und Blitze kommen
immer vom DWD (über Bright Sky und die DWD-Geodienste, mit Ausweichweg für
die Warnungen); für Kennzahlen und Vorhersage ist zusätzlich MET
Norway wählbar (CC BY 4.0, Kontakt-Kennung Pflicht), wahlweise als
Modellwert für den Ort (MOSMIX) oder als Stationsmessung — die
Anzeige nennt immer den Dienst und sagt, was von beidem sie zeigt. Ein
Leserecht (
wetter.view), standardmäßig nicht freigeschaltet: ohne Freischaltung sind Menüpunkt, Seiten und Karten-Ebenen für alle unsichtbar. - Audit-Log — jede Mutation (Einsatz, Abschnitt, EM-Zuweisung, Kommentar) wird revisionsfest geloggt.
- PDF-Export — kompletter Einsatz-Bericht inkl. Kommentaren, Anhängen, Abschnitten, einer Einsatzmittel-Übersicht mit Stärke & Kontakt und optional Audit-Historie. Bild-Anhänge werden für die PDF-Datei automatisch verkleinert (max. 1600 px, JPEG) — die Originale bleiben unverändert.
- Setup-Wizard — geführte Erst-Konfiguration (Org-Name, Logo, Karten- Center, Telegram, Mailbox, …).
- Mehrmandanten-fähig — Tabellen-Präfix pro Instanz, mehrere ETBs können in derselben DB nebeneinander laufen.
- Dark-Mode & UI-Komfort — app-weiter dunkler Modus (folgt initial
dem Betriebssystem), einklappbare Sidebar und ein separater
Hell/Dunkel-Schalter für die Vollkarten (Lagekarte, Hydrantenplan); die
Mini-Karten in Einsatz- und Abschnitts-Detail folgen automatisch dem
App-Theme. Die Einsatz-Übersicht lässt sich zwischen Komfort
(luftige Karten-Zeilen) und Kompakt (dicht, für viele Einsätze)
umschalten; jeder Einsatz trägt eine farbige Status-Kachel (laufende
Nummer + Kurz-Status) in Liste, Detail-Kopf, je Abschnitt und als
Lagekarte-Marker, Abschnitte lassen sich direkt in der Liste aufklappen.
Status und Wichtigkeit werden über Farbe + Label unterschieden (keine
Icons/Marker-Formen); die Farben der fünf Einsatz-Status sind
admin-konfigurierbar (
/admin/einsatz-status-farben.php) und wirken überall — Pillen, Zeilenbalken, Kacheln, Lagekarte-Marker und Filter. Durchgängige Inline-SVG-Icons (Tabler-Stil) statt Emoji. Zentrale Design-Tokens (tokens.css) für ein konsistentes, an einer Stelle anpassbares Erscheinungsbild. Die laufende Programmversion steht dezent unten in der Seitenleiste und auf der Login-Seite — bei jedem Deploy automatisch aus dem Git-Stand erzeugt. - Mobil nutzbar & installierbar (PWA) — auf schmalen Bildschirmen ausklappbares Off-Canvas-Menü, einspaltige Formulare und größere Touch-Ziele; per „Zum Startbildschirm hinzufügen" als App-ähnliche Verknüpfung installierbar (HTTPS), mit echten App-Icons in allen Größen (192/512 px inkl. adaptiver „maskable"-Variante für Android, opakes 180-px-Icon für iOS) — automatisch aus dem Branding-Logo gerendert. Bewusst ohne Offline-Datenspeicher (Network-first) — ein Einsatztagebuch zeigt stets den aktuellen Stand. Ohne Netz erscheint statt der Browser-Fehlerseite eine eigene Offline-Seite mit „Erneut versuchen"-Knopf und Verbindungs-Status, die ausdrücklich darauf hinweist, dass gerade Abgeschicktes nicht gespeichert ist. Auf schmalen Bildschirmen führt ein Sprungknopf „Zu den Einsatzmitteln" direkt zur unter den Inhalt gerutschten EM-Seitenleiste.
- Branding — Login-Logo, separates Menü-Logo für die Seitenleiste und Favicon hochladen sowie die Leitstellen-Adresse hinterlegen. Farben und Schrift kommen bewusst aus dem ausgelieferten Design (zentrale Design-Tokens) mit sauberer Hell-/Dunkel-Variante.
- Integriertes Handbuch & Kontext-Hilfe — seiten-genaue
Bedienungsanleitung (ein Thema je Bildschirm) in der App („Hilfe"), als
„?"-Schublade direkt im Kontext jeder Seite, ohne Login unter
/handbuch.phplesbar und ins GitLab-Wiki gespiegelt — Inhalt einmal als Markdown gepflegt.
Anforderungen
- PHP 8.1+ (auf 8.4 getestet) mit Extensions:
pdo_mysql,imap,mbstring,fileinfo,curl,dom,gd; optionalzip(nur für den Excel-Export der Bevölkerungswarnung im Original-Formular einer Leitstelle — ohne die Erweiterung läuft alles andere unverändert; es entfallen dann auch die Gemeinde-Auswahl und das Einspielen einer neuen Formular-Version, weil beides aus der Formular-Datei gelesen wird) - MySQL 5.7+ / MariaDB 10.3+
- Webserver mit Document-Root auf
public/und Rewrite-Modul (Apachemod_rewriteoder Nginx) - Cron alle 1–5 Minuten für die Mailbox-Abfrage
- Ausgehende HTTPS-Verbindungen vom Server (nur für das Zusatzmodul
Wetter:
api.brightsky.devundmaps.dwd.de, bei gewähltem Dienst MET Norway zusätzlichapi.met.no; die Bilder von Regenradar und Blitzen holt der Browser direkt beim DWD)
Installation
- Code in den Webserver kopieren und Document-Root auf
public/setzen. - Konfiguration anlegen:
cp config/.env.example config/.env # DB-Zugang + IMAP-Postfach (Alarm-Mails) eintragen; optional SMTP_* # fuer „Passwort vergessen" (ausgehende Mail). APP_TIMEZONE nur, wenn # die Wehr NICHT in Europe/Berlin liegt (das ist die Vorgabe). - Im Browser öffnen — der Setup-Wizard erscheint automatisch und führt durch die restlichen Schritte (Org-Name, Logo, Standort, Erste User, Telegram-Bot, Cron-Token).
- Cron einrichten — der Wizard zeigt am Ende den passenden
Crontab-Eintrag mit Token; alternativ unter
Admin → Einstellungeneinsehbar:*/2 * * * * curl -fsS "https://etb.example.de/cron.php?token=…" >/dev/null
Update einer bestehenden Installation
git pull
# Schema-Aenderungen wendet die SchemaProvider-Migration beim naechsten
# Login automatisch an.Erscheint nach dem Update der Schema-Banner, einmalig
/admin/schema-check.php → „Reparieren" ausführen — legt neue Tabellen
und Spalten an (z. B. für den Passwort-Reset). Wer „Passwort vergessen"
nutzen will, ergänzt zusätzlich die SMTP_*-Werte in config/.env.
Für den Meldungs-Bus legt derselbe Schema-Check die Tabellen
user_loeschgruppe, meldung_arten, meldung_regeln, meldungen,
meldung_zustellungen und meldung_kanal_ziele an, spielt den
Meldungskatalog ein, ergänzt die Rolle einsatzkraft und rüstet das Recht
mitteilung.durchsage nach. An der Alarmierung ändert sich dabei nichts:
Die Chat-IDs aus der config/.env gelten als Rückfall weiter, bis du sie
unter Admin → Mitteilungen durch eigene Zuordnungen ersetzt.
Das Zusatzmodul Wetter schaltest Du unter
Admin → Feuerwehr → Wetter → Freischaltung frei. Das Leserecht wetter.view
zieht der Schema-Check für alle Rollen nach, die schon die Lagekarte sehen
dürfen; feiner einstellen kannst Du es danach unter
Admin → Rollen & Berechtigungen.
Backups (DB-Dump + storage/uploads/ + public/branding/) vor jedem
Update werden empfohlen.
Dokumentation
Eine ausführliche Bedienungsanleitung liegt unter docs/handbuch/
— seiten-genau geschnitten (ein Thema je Bildschirm, mit Frontmatter für
Reihenfolge und Gruppierung) — und ist über vier Wege zugänglich, immer
derselbe Inhalt:
- Kontext-Hilfe: das „?" rechts in der Aktionsleiste der meisten Seiten öffnet das passende Thema in einer seitlichen Hilfe-Schublade (bleibt über Reload/Seitenwechsel offen; auf schmalen Bildschirmen/PWA ausgeblendet).
- In der App: Sidebar-Eintrag „Hilfe" — das ganze Handbuch mit aufklappbaren Gruppen, ergänzt um dein konfiguriertes Branding.
- Öffentlich ohne Login:
/handbuch.php— dasselbe Handbuch ohne Anmeldung lesbar (eigenes, bewusst helles Layout); auf der Login-Seite neben „Passwort vergessen?" verlinkt. - Im GitLab-Wiki: Home — zum Nachlesen außerhalb der Anwendung (z. B. auf dem Tablet während eines Einsatzes).
Master-Quelle sind immer die Markdown-Dateien im Repo. Das Wiki wird via
scripts/wiki-sync.ps1 aktuell gehalten.
Releases
- v4.8.0 — Feature-Release: Wetter als zubuchbares Zusatzmodul (#210 (closed)).
Amtliche Warnungen des Deutschen Wetterdienstes für frei wählbare
Beobachtungsgebiete, aktuelle Messwerte, eine 24-Stunden-Vorschau mit
Vorwarnzeit im Klartext und ein Lagebild zum Ausdrucken. Auf Lagekarte,
Wetterseite und maximierter Einsatzkarte drei Ebenen: DWD-Warnflächen
(schraffiert, mit dem Symbol der Warnart; Hitze und UV nach der eigenen
Farbskala des DWD), Regenradar mit Zeitleiste und Blitze &
Vorhersage. Ein Klick
auf die Karte setzt die Wetter-Rose und daneben die Warntafel mit der
Warnlage an genau diesem Punkt; die Wetterkarte lässt sich maximieren.
Jeder neue Einsatz hält automatisch fest, wie das Wetter bei der Anlage
war; Warnung und aktuelles Wetter lassen sich als Kommentar ins Tagebuch
übernehmen. Warnungen, Flächen, Radar und Blitze kommen immer vom DWD;
für Kennzahlen und Vorhersage ist zusätzlich MET Norway wählbar (CC BY
4.0, Kontakt-Kennung Pflicht). Neues Leserecht
wetter.view; das Modul ist standardmäßig aus. Mit gebündelt ist das nie veröffentlichte Zwischenrelease 4.7.5: Einsätze anheften, optionaler Leitungs-Einsatz am Schwerpunkt, eine offene Bevölkerungswarnung blockiert das Erledigen, der Formular-Download hängt am neuen Rechtmowas.export, Filter „Mit Warnung", Sperrmeldungen nennen Namen statt Anzahl — dazu die selbst gesetzte Zeitzone (APP_TIMEZONE, PHP und Datenbank gemeinsam). Schema-Check nötig (vier Wetter-Tabellen, Spalteeinsaetze.ist_fixiert, Rechtewetter.viewundmowas.export). - v4.7.0 — Feature-Release: Export der Bevölkerungswarnung im
Original-Formular der Leitstelle (#208 (closed)). Die Kreisleitstelle
Rhein-Sieg-Kreis akzeptiert nur ihr eigenes Excel-Formular — das ETB
befüllt dieses Original (F.1 Anlage A, Version 8.3) jetzt maschinell aus der
Warnung und bietet es ab der Freigabe als Download an
(„Formular Leitstelle (Excel)"), inklusive Ankreuzfeldern, Koordinaten-
Kästchen, Warnbereichen und archivierten Ständen; die Datei rechnet beim Öffnen
neu durch und bleibt in Excel bedienbar (Auswahllisten, Klartext-Zeilen).
Umgestellt wird das in den MoWaS-Stammdaten über die neue Export-Vorlage
(Voreinstellung bleibt das bisherige Standard-Dokument, das PDF bleibt
zusätzlich erhalten). Dort wird auch die Gemeinde einmalig festgelegt
(Auswahl aus dem Formular selbst — sie bestimmt Feld 2 und den
Verwaltungsbereich-Code), eine neue Formular-Version der Leitstelle geprüft
selbst eingespielt und die Gemeindegrenze für die Karten geholt (oder als
GeoJSON-Datei hochgeladen); dazu Standardwerte für die Bürgerinformation
(Feld 17). Im Melde-Formular ist Feld 7 jetzt eine Entscheidung zwischen
Umkreis und gesamter Gemeinde; gilt die Warnung der ganzen Gemeinde —
über Feld 7 oder über einen als „Gesamt" markierten Warnbereich
(Feld 11) —, zeichnen Lagekarte und Einsatz-Karte den Gemeinde-Umriss
statt eines Kreises. Ohne gespeicherte Gemeindegrenze bleibt die Fläche
bewusst leer, ein Kreis wäre dort irreführend. Der Übermittlungs-Hinweis
nennt jeweils das richtige Dokument. Für den
Excel-Export braucht der Server die PHP-Erweiterung
zip; fehlt sie, bleibt es sichtbar beim Standard-Dokument. Schema-Check nötig (neue Spalte für die gespeicherte Auswahlreihenfolge der Warnbereiche). - v4.6.0 — Feature-Release: Bevölkerungswarnung (MoWaS) (#208 (closed)). Das ETB
kann das Anforderungs-/Meldeformular für eine Bevölkerungswarnung erfassen,
über ein Vier-Augen-Prinzip freigeben und als PDF-Dokument für die
Leitstelle erzeugen — gestartet an einem Einsatz oder Schwerpunkt. Der
Ablauf ist Phase × Zyklus (Erstwarnung → Aktualisierung 1…n → Entwarnung,
je Entwurf → Zur Freigabe → Freigegeben → Bei Leitstelle → Aktiv), jede
Übermittlung wird als revisionsfester Stand historisiert und am Einsatz per
System-Kommentar dokumentiert. Dazu Gefahrenbereich (vier Koordinatenformate,
Pflicht-Umkreis, bis zu drei Warnbereiche), editierbare Handlungsempfehlungen
mit Auswahl-Fenster, ein Warn-Indikator (Zivilschutz-Zeichen) und Warn-Radius
auf den Karten, drei Rechte
mowas.view/create/releasesowie eine eigene MoWaS-Leitstelle in den Stammdaten. Die Warnung wird nicht automatisch versendet — das ETB erzeugt nur das Dokument. Schema-Check nötig (/admin/schema-check.php→ „Reparieren"). - v4.5.1 — Wartungs-Release (#200 (closed) komplett, überwiegend intern): der
bislang auf rund 40 Sidebar-Seiten von Hand kopierte Seitenrahmen
(
<!DOCTYPE>bislayout-mainsamt schließender Tags) wandert in drei neue HelferMainNavSidebar::pageHead()/pageBody()/pageEnd()(#200 (closed)-B1); Erfolgsmeldungen laufen über einen Session-Flash statt?msg=-URL-Parameter (#200 (closed)-B2), dersp_url()-Helfer trägt den Schwerpunkt-Kontext auch in der Einsatzübersicht (#200 (closed)-C) und die Modal-Mechanik ist vereinheitlicht (geteiltes Schließen-X, einEtbModal-Öffnen/Schließen-Helfer, zentrale Tab-Fokusfalle; #200 (closed)-A). Einzige sichtbare Änderungen: eine kleine Barrierefreiheits-Verbesserung (Tastatur-Fokus bleibt jetzt auch in den beiden Schwerpunkt-Einstellungen-Fenstern) und sauberere URLs nach dem Speichern — sonst kein neues Feature. Kein Schema-Check nötig. - v4.5.0 — Feature- und Härtungs-Release: Kurz-Standort je Einsatz (#186 (closed))
— kompakte Standort-Kürzel (Plus Codes offline/kostenlos und what3words,
letzteres auch ohne API-Schlüssel von Hand pflegbar), beide auf die jeweilige
Karte verlinkt, mit Kostenschutz (Pro-Einsatz-Deckel) für die kostenpflichtige
what3words-Automatik; Hydrantenplan aus eigener GeoJSON-Datei statt Google
MyMaps (#181 (closed), konfigurierbare Dimensionsklassen); PWA-Offline-Seite + mobiler
EM-Sprungknopf (#195 (closed)); Rechte-Konsolidierung und -Härtung (#201 (closed)/#202 (closed)/#204 (closed)/
#205 (closed)/#206 (closed)): der Status-Riegel und
abschnitt.createsitzen zentral/serverseitig, „Max. Abschnitte pro Einsatz" wird erzwungen; export-Bild-Cache mit Eviction (#203 (closed)) und ein Deploy-Schutz, der einen fehlenden Schema-Stand nach einem Update mit einer freundlichen Hinweisseite statt einer Fehlerseite abfängt. Update-Hinweis: einmaliger Schema-Check nötig (legt die neuen Kurz-Standort- Spalten an; Plus Codes werden für Bestandseinsätze offline nachgetragen). - v4.1.0 — Konsolidierungs-Release (Design-System, Endpoints, Security):
Sondersignal-Automatik (#41 (closed)) — das Sondersignal der Leitstellen-Mail setzt
automatisch die Eil-/Zeit-Wichtigkeit (frei konfigurierbar über zwei neue
Spalten in der Wichtigkeit-Verwaltung); Design-System-Konsolidierung
(#189 (closed)): zentrale Design-Tokens (Schrift/Radius/Schatten), geteilte
Komponenten-Bausteine (
.cmp-scope), eine einheitliche z-index-Leiter (schwebende Hinweise liegen jetzt zuverlässig über Dialogen), projektweit einheitliche AJAX-Antwortform und ein zentralersp_url()-Helfer für den Schwerpunkt-Kontext; echte PWA-App-Icons (#194 (closed)) und automatische Bild-Verkleinerung im PDF-Export (#191 (closed)); ein Security-Block (500er-Deckel für Massen-Aktionen, 5000-Zeilen-Limit im CSV-Import, Cleanup abgelaufener Temp-Rollen, HTTPS-only-Weiterleitungen + datensparsames Telegram-Protokoll, einheitliche Scope-Meldungen) sowie kleinere Bugfixes (#187 (closed)/#193 (closed)). Außerdem Projekt-Umzug zu GitLab. Update-Hinweis: einmaliger Schema-Check nötig (legt die neuen Eil-/Zeit-Einstellungen idempotent an). - v4.0.0 — Großes Funktions- und Fundament-Release: neuer
Einsatz-Status-Lebenszyklus mit Abschnitts-Sperre und geführtem
Abschluss-Workflow; Einsatz-Rollen (temporär geliehene Führungsrollen,
„Highlander"), manuelles Auslösen von Alarmregeln und der Alarm-Knopf
(einmaliges Rollen-Angebot zur Selbstübernahme); Stichwort-Katalog
(Pflege, Auswahl im Einsatz-Formular, Mail-Parser-Abgleich, Auslösen auch bei
manuellen Einsätzen); Entmandantisierung (neutrale Standard-Texte);
Design-Konsolidierung (Status-Kachel, Komfort/Kompakt-Umschalter,
durchgängige SVG-Icons, vereinfachtes Branding); Orts- & Abschluss-Block
(verbindliche Katalog-Orte, Adress-Suffix je Ort, Geocode-Cache-Zugriff,
Schwerpunkt-Abschluss Erledigt/Abgeschlossen); Stärke-Block (Drei-Felder-
Eingabe ZVF/GF/Ma, zuletzt zugewiesene Stärke, Gruppe „entlassen"),
überörtliche Einsatzmittel im SP-Wizard (tastaturbedienbar) und die
mitscrollende EM-Übersicht; das Karten-Paket „Digitaler Zwilling NRW"
(automatische UTM-Koordinaten EPSG:25832) plus Tablet-Hochformat der
Lagekarte; Einsätze endgültig löschen (Hard-Delete mit Begründung; Recht
einsatz.delete, Kommentar-Moderation wandert nachcomment.delete); dazu ein Barrierefreiheits- und Politur-Block (Einsatzmittel-Status zusätzlich als Text statt nur Farbe, markenrote statt blaue Bestätigungs-Dialoge, Tastatur-Fokusfallen, Dark-Kontraste) und die Lagekarten-Scope-Härtung für Disponenten. Update-Hinweis: einmaliger Schema-Check nötig; die Entmandantisierung meldet beim Update außerdem alle aktiven Sitzungen einmalig ab - v3.0.1 — Bugfixing & Feinschliff: neues Recht „Als Disponent arbeiten" (Default Dispo fest, Lage/Einsatzleiter zuschaltbar, Admin via Failsafe; SP-Dispo bleibt ausgeschlossen); Einsatzmittel-Seitenleiste zeigt durchgängig die laufende Nummer (#007) und frisch alarmierte Mittel korrekt als „im Einsatz"; zugeordnete Einsatzmittel jetzt auch mobil sichtbar; Live-Update der EM-Seitenleiste bei Statuswechsel; app-weit neutrale Link-/ Button-/Kachel-Farben (kein Blau nach Klick); Dark-Mode-Korrekturen (Setup-Wizard, Geocode-Admin/-Cache, EM-Gruppen, Lagekarte); Lagekarte- und Geocode-Nummern im #007-Format; diverse Disponenten-Feinheiten
- v3.0.0 — Schwerpunkte, Sicherheit & UX-Overhaul: Schwerpunkt- Einsatzstärke getrennt nach „im Einsatz" und „Reserve", Einsatzmittel- Stärke im Schema A/B/C/S (Gesamt automatisch); Theme-Engine inkl. Dark-Mode-Feinschliff, gruppiertes Hauptmenü, Menü-Logo, Setup-Wizard mit vertikaler Schritt-Navigation, mobil/PWA inkl. Touch-Drag für die Einsatzmittel-Zuweisung, Versionsanzeige in Sidebar + Login; Lagekarte ohne „Taktisch"-Modus; Kommentar-Bild-Galerie, PDF-Export mit Stärke & Kontakt, sauberer Bild-Pagination und immer hellem Druck; Passwort-vergessen per E-Mail-Link (SMTP) + Session-Invalidierung, CSRF-Schutz für Setup-Wizard und Admin-Formulare; großes Refactoring (Services/JS/CSS) mit Tests, PHPStan & CI; 11 Triage-Issues behoben
- v2.4.0 — Schwerpunkt-Dispo-Kopplung, Folge-Abschnitte & Übersichtlichkeit: Einsatz-/Abschnitts-Dispo folgt im Schwerpunkt automatisch dem SP-Dispo (gesperrt, Herauslösen-Modal), Alarm-Regeln mit Folge-Abschnitten + Auto-Reset-Stopp pro Regel, administrierbare Standard-Werte (+ Abschnitts-Status „geplant"), Personalstärke-Anzeige & Gesamtstärke, Einsatzmittel nach Gruppen, Lagekarte-Filter-Toggle (Beamer), Geocode-Cache-Verwaltungsseite
- v2.3.0 — Dark-Mode, UI-Politur & CSS-Zentralisierung: app-weiter
dunkler Modus, einklappbare Sidebar, Karten-Hell/Dunkel-Toggle,
einklappbare Filterleiste, zentrale Design-Tokens (
tokens.css+components.css), einheitliche Admin-Breadcrumbs + Kachel-Reorg - v2.2.0 — Bug-Fixing & Alarm-Regeln: Multi-Alarm-Regelwerk (UW-ERSTALARM → Grundschutz + Bereitstellung), Wichtigkeit „Bereitstellung", Unwettermail-Multi-Einsatz-Parsing, generischer Spalten-Migrations-Mechanismus + Feature-Tabellen-Banner, korrigierte Cron-/Heartbeat-Statistik, SP-Dispo-Dropdown-Trennung
- v2.1.0 — Handbuch: In-App-Hilfe (
/hilfe.php) + Wiki-Sync über 20 Markdown-Topics indocs/handbuch/ - v2.0.0 — Administrierbare Rollen-/Permission-Matrix, Modal-Dialog- Library, Schwerpunkt-Historie, Schema-Auto-Migration, Lagekarte- Verbesserungen (Tooltip-z-Index, warme Heatmap, Cluster-Toggle)
- v1.5.0 — Schwerpunkte (Großlagen-Gruppierung)
- v1.0.0 — Erste stabile Version
Vollständige Änderungshistorie mit allen Bugfixes und Upgrade-Hinweisen im CHANGELOG.
Lizenz
GPL-3.0 — frei nutzen, weitergeben und anpassen, solange Änderungen ebenfalls unter GPL-3.0 verfügbar gemacht werden.
Entwicklung
Repository: privat. Kontakt für Fragen / Mitarbeit über die im Repo hinterlegten Issues bzw. direkt an den Maintainer.