This commit is contained in:
jhartworks
2026-06-23 10:59:58 +02:00
parent 9b651f1cd6
commit a445fef521
21 changed files with 3161 additions and 664 deletions
+28 -26
View File
@@ -1,43 +1,45 @@
# SE Local Trenddata.
Modernisierte Trendoberflaeche fuer Wago-Bestandsdatenbanken mit React, Node.js, MariaDB und Redis.
Modernisierte Trendoberfläche für Wago-Bestandsdatenbanken mit React, Node.js, MariaDB, Redis, Dockhand und vorbereitetem Collector-Service.
## Enthalten
- React-Frontend mit Light/Dark/System-Theme
- Username-Login und Rollen fuer `viewer`, `technician`, `admin`
- Alias-Verwaltung fuer `Wert1` bis `Wert200` je `ispXX`
- CSV-Import und CSV-Export fuer Aliasdaten
- Gespeicherte Auswahlen ueber mehrere ISPs
- Dashboard mit Graph-, Zahl- und Gauge-Widgets
- Vollbild fuer die Trendansicht
- SQL-Import fuer vorhandene Langzeitdaten
- Redis fuer Metadaten, Auswahlen, Dashboard und User-Praferenzen
- MariaDB-Init fuer `isp01` bis `isp20` plus `app_users`
- React-Frontend mit System-, Hell- und Dunkelmodus
- Username-Login, Rollen, Passwortwechsel und Benutzerverwaltung
- Alias-Verwaltung für `Wert1` bis `Wert200` je Trendtabelle
- CSV-Import und CSV-Export für Aliasdaten
- Gespeicherte Auswahlen über mehrere ISPs hinweg
- Dashboard mit Graph-, Zahl- und Zeigermanometer-Widgets
- Fokusansicht für den Trendgraph statt Browser-Vollbild
- Export des Trendgraphs als CSV, XLSX, PNG, JPG, SVG und PDF
- SQL-Import für vorhandene Langzeitdaten
- Redis für Metadaten, Auswahlen, Dashboard und Benutzerpräferenzen
- MariaDB-Init für `isp01` bis `isp20` plus `app_users`
- Dockhand im Compose-Stack
- Collector-Gerüst für spätere Modbus-, OPC-UA-, BACnet- und KNX-Anbindung
## Starten
1. Optional `.env.example` nach `.env` kopieren und Werte anpassen.
2. `docker compose up -d --build`
3. Frontend: `http://localhost:5173`
4. API: `http://localhost:18080/api`
5. Dockhand: `http://localhost:3000`
6. Collector: `http://localhost:18110/health`
## Standard-Login
- Username: `admin`
- Passwort: `ChangeMe123!`
Bitte nach dem ersten Login in der Benutzerverwaltung einen eigenen Admin anlegen oder die Zugangsdaten anpassen.
## Datenbank-Kompatibilität
- Bestehende Anlagen können weiter mit `root` und Passwort `SE3112` auf die MariaDB gehen.
- Die API versucht zusätzlich als Fallback noch das ältere Root-Passwort `root`, damit vorhandene Entwicklungs-Volumes nicht sofort umgebaut werden müssen.
## Datenmodell
- Bestehende Trenddaten bleiben in den breiten Tabellen `isp01`, `isp02`, ...
- Die Anwendung erkennt vorhandene `isp`-Tabellen dynamisch.
- Metadaten wie Alias, Einheit, Faktor und Dashboard-Konfiguration liegen in Redis.
## Wago / SD-Karte
- Für Wago-Systeme liegt mit [docker-compose.wago.yml](/C:/Projects/SeLTD/docker-compose.wago.yml) ein Override bereit.
- Start auf Wago mit SD-Karte: `docker compose -f docker-compose.yml -f docker-compose.wago.yml up -d --build`
- Dabei landen die großen Daten unter `/media/sd/seltd/...`.
## Wichtige Container
- `seltd-mariadb`
- `seltd-redis`
- `seltd-api`
- `seltd-web`
## Hinweise fuer Bestandsdaten
- Vorhandene SQL-Dumps koennen im Admin-Bereich direkt importiert werden.
- Die Anwendung liest die Tabellenstruktur mit `datum`, `userlevel` und `Wert1..Wert200` direkt.
- Wenn spaeter weitere Tabellen wie `isp21` oder `isp35` auftauchen, werden sie automatisch in der Oberflaeche erkannt.
## Hinweise
- Vorhandene SQL-Dumps können im Admin-Bereich direkt importiert werden.
- Leere Trendtabellen tauchen nicht im Trend-Dropdown auf, aber weiter im Admin-Bereich.
- Der Collector ist bewusst erst als technisches Gerüst enthalten; Protokoll-Scan und Feldbus-Importe sind noch nicht vollständig implementiert.
- Für Dockhand wurde der Container ergänzt. Eine sichere automatische Vorbelegung eines lokalen Admin-Users war ohne offizielle Initialisierungsdokumentation nicht belastbar genug und wurde deshalb nicht blind in die SQLite-Datenbank geschrieben.