update
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user