Setup-Anleitung
Übersicht
Diese Anleitung beschreibt die Einrichtung und Nutzung des SolarLog Setup-Systems zur Verwaltung von Wechselrichtern.
Systemarchitektur
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │────▶│ Backend API │────▶│ SQLite DB │
│ (Port 3002) │ │ (Port 3000) │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
│
▼
┌─────────────────┐
│ Scanner API │
│ (Port 3001) │
└─────────────────┘
Installation
Voraussetzungen
- Node.js 16+
- npm oder yarn
- SQLite3
- (Optional) nmap für erweiterte Netzwerk-Scans
Schritt 1: Abhängigkeiten installieren
Schritt 2: Umgebungsvariablen konfigurieren
Erstelle eine .env Datei im Hauptverzeichnis:
# Backend Server
PORT=3000
DATABASE_PATH=./data/solarlog.db
# Scanner Service
SCANNER_PORT=3001
# React Frontend
REACT_APP_API_URL=http://localhost:3000
Schritt 3: Datenbank initialisieren
Die Datenbank wird beim ersten Start des Backend-Servers automatisch initialisiert.
Die Datei data/solarlog.db wird erstellt.
Schritt 4: Services starten
Terminal 1 - Backend Server:
Terminal 2 - Scanner Service:
Terminal 3 - Frontend:
Nutzung
1. Dashboard öffnen
Öffne im Browser: http://localhost:3002
Du siehst zwei Hauptbereiche: - Dashboard: Übersicht über Leistung und Produktion - Setup: Verwaltung der Wechselrichter
2. Netzwerk-Scan durchführen
- Wechsle zur Setup-Seite
- Klicke auf "Network Scan"
- Klicke auf "Start Scan"
- Warte, bis der Scan abgeschlossen ist
- Gefundene Geräte werden in einer Liste angezeigt
Scan-Prozess:
Scan startet
↓
Suche nach Geräten im lokalen Netzwerk
↓
Prüfung der Standard-Ports (80, 81, 502, 1502)
↓
Identifikation des Herstellers (SMA, KOSTAL, DELTA)
↓
Speicherung in scan_results Tabelle
↓
Anzeige im Dialog
3. Wechselrichter aus Scan hinzufügen
- In der Scan-Ergebnisliste, klicke "Add" bei einem Gerät
- Ein vorausgefülltes Formular öffnet sich
- Ergänze fehlende Informationen:
- Name (z.B. "Garage Wechselrichter")
- Location (z.B. "Garage Dach")
- Notizen
- Zugangsdaten (falls erforderlich)
- Klicke "Save"
4. Wechselrichter manuell hinzufügen
- Klicke auf "Add Inverter"
- Fülle alle erforderlichen Felder aus:
- Name: Eindeutiger Name
- Manufacturer: Wähle aus der Liste (SMA, KOSTAL, DELTA, etc.)
- Model: Modellbezeichnung
- IP Address: IP-Adresse im Netzwerk
- Port: TCP-Port (Standard: 502 für Modbus)
- Location: Standort
- Protocol: Kommunikationsprotokoll
- Optional:
- Username/Password für geschützte Geräte
- Modbus Unit ID (Standard: 1)
- Poll Interval (Standard: 300 Sekunden)
- Klicke "Save"
5. Wechselrichter bearbeiten
- Klicke auf das Edit-Icon in der Tabelle
- Ändere die gewünschten Felder
- Klicke "Save"
6. Wechselrichter löschen
- Klicke auf das Delete-Icon in der Tabelle
- Bestätige die Löschung
⚠️ Warnung: Beim Löschen werden auch alle zugehörigen Produktionsdaten entfernt!
7. Wechselrichter aktivieren/deaktivieren
- Öffne den Edit-Dialog
- Schalte den "Enabled"-Switch um
- Klicke "Save"
Deaktivierte Wechselrichter werden nicht abgefragt, bleiben aber in der Datenbank.
Felder-Beschreibung
Pflichtfelder
- Name: Eindeutiger Name zur Identifikation
- Manufacturer: Hersteller (wichtig für protokollspezifische Kommunikation)
- IP Address: Netzwerk-Adresse des Geräts
Optionale Felder
- Model: Modellbezeichnung (z.B. "Sunny Boy 5.0")
- Port: TCP-Port (Standard: 502 für Modbus TCP)
- Location: Physischer Standort (z.B. "Garage Dach")
- Notes: Zusätzliche Notizen (z.B. "Installation 2024")
- Username/Password: Zugangsdaten für geschützte Geräte
- Protocol: Kommunikationsprotokoll
modbus_tcp: Modbus über TCP/IP (Standard)modbus_rtu: Modbus über serielle Verbindunghttp: HTTP-basierte APIcustom: Benutzerdefiniertes Protokoll- Modbus Unit ID: Geräte-ID im Modbus-Netzwerk (1-247)
- Poll Interval: Abfrageintervall in Sekunden (empfohlen: 300)
Hersteller-spezifische Hinweise
SMA
- Ports: 502 (Modbus), 80 (WebConnect)
- Protocol: modbus_tcp oder http
- Modbus Unit ID: Meist 3
- Besonderheiten: Einige Modelle benötigen Aktivierung der Modbus-Schnittstelle
KOSTAL
- Ports: 1502 (Modbus), 80/81 (Web)
- Protocol: modbus_tcp
- Modbus Unit ID: 71
- Besonderheiten: Port 1502 statt Standard-Port 502
DELTA
- Ports: 502 (Modbus)
- Protocol: modbus_tcp
- Modbus Unit ID: 1
- Besonderheiten: Standard-Konfiguration
Troubleshooting
Gerät wird nicht gefunden
- Prüfe, ob das Gerät im gleichen Netzwerk ist
- Prüfe die Firewall-Einstellungen
- Stelle sicher, dass die Modbus/HTTP-Schnittstelle aktiviert ist
- Versuche einen manuellen Ping:
ping <IP-Adresse>
Verbindung schlägt fehl
- Prüfe die IP-Adresse und Port
- Prüfe Username/Password (falls erforderlich)
- Prüfe die Modbus Unit ID
- Prüfe das Protokoll (modbus_tcp vs. http)
- Verwende die Test Connection-Funktion
Scan findet keine Geräte
- Stelle sicher, dass nmap installiert ist:
- Prüfe die Netzwerk-Konfiguration
- Der Fallback-Scanner scannt nur .1-.5, installiere nmap für vollständigen Scan
Datenbank-Fehler
- Prüfe die Berechtigungen im
data/Verzeichnis - Stelle sicher, dass SQLite installiert ist
- Prüfe die Logs in
logs/ - Erstelle ein Backup vor größeren Änderungen
Erweiterte Konfiguration
Netzwerk-Einstellungen
Bearbeite scripts/scanner.js für benutzerdefinierte Port-Ranges:
const INVERTER_PORTS = {
SMA: [502, 80],
KOSTAL: [80, 81, 1502],
DELTA: [502],
SOLAR_LOG: [80],
CUSTOM: [8080, 8443] // Eigene Ports hinzufügen
};
Datenbank-Backup
# Manuelles Backup
cp data/solarlog.db data/backups/solarlog_$(date +%Y%m%d_%H%M%S).db
# Automatisches Backup (cron)
0 2 * * * /path/to/backup-script.sh
Produktions-Deployment
-
Verwende einen Process Manager (z.B. PM2):
-
Konfiguriere einen Reverse Proxy (nginx):
-
Aktiviere HTTPS mit Let's Encrypt
Best Practices
- Regelmäßige Backups: Sichere die Datenbank täglich
- Monitoring: Überwache die Services mit PM2 oder systemd
- Logs: Prüfe regelmäßig die Logs auf Fehler
- Updates: Halte Dependencies aktuell (
npm update) - Sicherheit:
- Verwende starke Passwörter
- Aktiviere Firewall-Regeln
- Nutze HTTPS in Produktion
- Implementiere Authentifizierung