Quick Start - TC100 Display
In 5 Minuten zum funktionsfähigen Warning Display für Ihr SolarLog-System.
Voraussetzungen
- Ulanzi TC100 mit AWTRIX3 Firmware
- TC100 im gleichen Netzwerk wie SolarLog Backend
- SolarLog Backend läuft (Docker Compose)
AWTRIX3 noch nicht installiert?
Flash-Anleitung: blueforcer.github.io/awtrix3/#/flasher
Schritt 1: Display IP-Adresse finden
Option A: Router
Suchen Sie in Ihrem Router nach:
- Gerätename: Ulanzi oder AWTRIX
- MAC-Adresse beginnt mit: 94:FD:8C
Option B: Display Info
- Drücken Sie den mittleren Button 3× am Display
- Die IP-Adresse wird angezeigt
- Notieren Sie die IP (z.B.
192.168.1.100)
Option C: Netzwerk-Scan
# macOS/Linux
nmap -sn 192.168.1.0/24 | grep -i ulanzi
# Oder Browser öffnen
# Display zeigt IP beim Start
Beispiel IP-Adresse
In dieser Anleitung verwenden wir 192.168.178.48 - ersetzen Sie diese mit Ihrer tatsächlichen IP.
Schritt 2: Display testen
Testen Sie die Verbindung mit einem einfachen curl-Befehl:
# Test-Notification senden
curl -X POST http://192.168.178.48/api/notify \
-H "Content-Type: application/json" \
-d '{
"text": "🔌 SolarLog Test!",
"color": [0, 255, 0],
"icon": 4644
}'
Erwartetes Ergebnis: ✅ Display zeigt grünen Blitz mit Text
Fehler: Connection refused?
- Prüfen Sie die IP-Adresse
- Öffnen Sie die WebUI:
http://192.168.178.48 - Starten Sie das Display neu
Schritt 3: Backend konfigurieren
3.1 .env Datei bearbeiten
3.2 Display-Konfiguration hinzufügen
Fügen Sie am Ende der Datei hinzu:
3.3 Speichern und Beenden
- Speichern:
Ctrl+O, dannEnter - Beenden:
Ctrl+X
Alternative: Kommandozeile
Schritt 4: Backend neu starten
Wartezeit: ~10 Sekunden
Schritt 5: Integration testen
5.1 Backend-Logs prüfen
Erwartete Ausgabe:
5.2 Test-Script ausführen
docker exec solarlog-backend python -c "
import asyncio
from app.services.display_service import DisplayService
async def test():
display = DisplayService(display_ip='192.168.178.48', enabled=True)
result = await display.send_notification(
text='✅ Backend verbunden!',
color=[0, 255, 0],
icon=4644
)
print('Test:', 'OK' if result else 'FEHLER')
asyncio.run(test())
"
Erwartete Ausgabe: Test: OK
5.3 Vollständiger Test
# Test-Script kopieren und ausführen
cat > /tmp/test_display.py << 'EOF'
import asyncio
import sys
sys.path.insert(0, '/app')
from app.services.display_service import DisplayService
async def test():
print('🔍 Display Test...')
display = DisplayService(display_ip='192.168.178.48', enabled=True)
# Test 1: Notification
print('Test 1: Notification...')
await display.send_notification(text='Test 1 OK', color=[0,255,0])
await asyncio.sleep(3)
# Test 2: Solar Status
print('Test 2: Solar Status...')
await display.update_solar_status(3200, 8.5, 2, 2)
await asyncio.sleep(3)
# Test 3: Indicators
print('Test 3: Indicators...')
await display.set_indicator(1, color=[0,255,0], fade=1000)
await display.set_indicator(2, color=[0,255,0], fade=1000)
print('✅ Alle Tests erfolgreich!')
asyncio.run(test())
EOF
docker cp /tmp/test_display.py solarlog-backend:/tmp/
docker exec solarlog-backend python /tmp/test_display.py
✅ Erfolgs-Checkliste
Prüfen Sie, ob alle Punkte erfüllt sind:
- Display zeigt Test-Notification
- Backend-Logs zeigen "Display Bridge aktiviert"
-
.enventhältDISPLAY_ENABLED=true - Display IP ist korrekt eingetragen
- Test-Script läuft ohne Fehler
- Indicators leuchten grün
Alles grün?
Glückwunsch! Die Display-Integration ist aktiv und bereit.
Was passiert jetzt automatisch?
Bei Wechselrichter-Ausfall
┌─────────────────────────────────┐
│ ⚠️ Wechselrichter 1 offline! │
│ 🔴 Farbe: Rot │
│ ⚡ Icon: Blitz │
│ 📍 Bleibt bis Button-Druck │
└─────────────────────────────────┘
Bei neuen Production-Daten
┌─────────────────────────────────┐
│ ⚡3.2kW | ☀️8.5kWh heute │
│ 🟢 Farbe: Grün (alle online) │
│ 🔄 Auto-Update │
└─────────────────────────────────┘
Status-Indikatoren
🟢 Oben rechts: WR 1 - Online (pulsierend)
🟢 Mitte rechts: WR 2 - Online (pulsierend)
⚫ Unten rechts: Inaktiv
Häufige Probleme
Display reagiert nicht
Lösung 1: IP-Adresse prüfen
Lösung 2: WebUI öffnen
Backend sendet nichts
Lösung 1: Config prüfen
Lösung 2: Backend-Logs prüfen
Display zeigt falsche Daten
Lösung: Cache leeren
Nächste Schritte
-
Erweiterte Konfiguration
Passen Sie Farben, Icons und Texte an
-
API erkunden
Lernen Sie alle Display-Funktionen kennen
-
Troubleshooting
Detaillierte Problemlösungen
Manuelle Tests (Optional)
WebUI öffnen
Features: - ⚙️ Settings (Helligkeit, Apps) - 📊 Live Screen View - 📁 File Manager - 🔄 Firmware Update
Verschiedene Notifications
# Info (Grün)
curl -X POST http://192.168.178.48/api/notify \
-H "Content-Type: application/json" \
-d '{"text":"ℹ️ Info","color":[0,255,0]}'
# Warnung (Orange)
curl -X POST http://192.168.178.48/api/notify \
-H "Content-Type: application/json" \
-d '{"text":"⚠️ Warnung","color":[255,165,0]}'
# Kritisch (Rot, bleibt stehen)
curl -X POST http://192.168.178.48/api/notify \
-H "Content-Type: application/json" \
-d '{"text":"🚨 Kritisch!","color":[255,0,0],"hold":true}'
Display aus-/einschalten
# Ausschalten
curl -X POST http://192.168.178.48/api/power \
-H "Content-Type: application/json" \
-d '{"power":false}'
# Einschalten
curl -X POST http://192.168.178.48/api/power \
-H "Content-Type: application/json" \
-d '{"power":true}'
Geschätzte Zeit: ⏱️ 5 Minuten
Schwierigkeit: 🟢 Einfach
Voraussetzung: TC100 mit AWTRIX3 im Netzwerk