Erste Bugfix-Methode
- Laravel-Log lokal herunterladen
- Ins Claude werfen
- Fragen wo das Problem ist
Instanzen
- DEV —
https://smartflex.bakehouse.dev/ - PROD —
https://smartflex.tiwag.at/
Test-User für DEV und PROD liegen im Bitwarden.
1. Wie das Ganze zusammenhängt
Drei Systeme reden miteinander:
1. TC-Kundenportal
Login. Der Kunde meldet sich mit seinen TIWAG-Zugangsdaten an. Wir bekommen Name, E-Mail und die Info, ob er das Smartflex-Recht hat.
2. Smartflex-Portal (wir)
Die Oberfläche. Kunde sieht seine Geräte, klickt Knöpfe, sieht Statistiken. Wir speichern fast nichts selbst — wir holen Daten aus Podero und zeigen sie schön an.
3. Podero
Die eigentliche Geräte-Anbindung. Podero spricht mit Tesla, KEBA, Smappee, Wärmepumpen-Cloud, Wechselrichtern usw. — und wir reden mit Podero.
Anders gesagt: Wir sind ein UI über zwei externe Systeme. Das macht das Portal sehr stabil — aber es heißt auch, dass Probleme meistens von außen kommen.
2. Anmeldung über das ITC-Kundenportal
Login läuft über OpenID Connect gegen das TIWAG-Kundenportal (PowerCommerce). Der gleiche Flow wie beim Business-Hub:
- Kunde klickt "Anmelden" → wird zum TIWAG-Kundenportal weitergeleitet
- Dort gibt er seine TIWAG-Zugangsdaten ein
- Kundenportal schickt ihn zurück zu uns mit einem Token
- Wir prüfen das Token, legen den User bei uns an (falls neu) und melden ihn an
Rollen-Check
Damit ein Kunde das Smartflex-Portal benutzen darf, muss er im Kundenportal die Rolle SMART_FLEX oder PSI_MARKET haben. Fehlt sie, landet er auf einer Hinweisseite und kann nichts machen. Die Rolle vergibt die TIWAG selbst — das ist nicht unsere Baustelle.
3. Podero — das Herzstück
Podero ist der Dienst, der die Verbindung zu den eigentlichen Geräten herstellt. Wenn ein Kunde sein E-Auto, seine Wärmepumpe oder seinen Batteriespeicher mit Smartflex verbinden will, läuft das so:
- Kunde klickt im Portal auf "Gerät hinzufügen"
- Wir holen von Podero eine spezielle Onboarding-URL
- Kunde wird auf eine von Podero gehostete Seite umgeleitet
- Dort wählt er seinen Hersteller (Tesla, KEBA, Smappee, …) und loggt sich beim Hersteller ein
- Podero baut die Verbindung im Hintergrund auf
- Kunde kommt zurück zu uns — und ein paar Minuten später taucht das Gerät bei ihm im Portal auf
Wir bauen also kein eigenes Onboarding. Wenn beim Verbinden was schiefgeht, passiert das auf der Podero-Seite oder beim Hersteller.
Was Podero für jeden Kunden weiß
- Welche Geräte er verbunden hat (E-Autos, Wärmepumpen, Wechselrichter)
- Live-Daten der Geräte (Ladestand, Leistung, Temperatur …)
- Statistiken (Verbrauch, CO₂-Ersparnis, Kosten)
- Ob die Smart-Optimierung gerade an oder aus ist
Wenn der Kunde im Portal auf "Boost laden" klickt oder die Smart-Optimierung umschaltet, schicken wir den Befehl an Podero — und Podero gibt ihn an das Gerät weiter. Wir reden also nie direkt mit dem Auto oder der Wärmepumpe.
4. Admin-Panel
Unter /admin läuft ein Filament-Panel. Unsere internen Test-User sind alle Admin. Beim User muss in der Spalte "admin" der Wert "1" hinterlegt sein. Was man dort findet:
- Kunden — Liste aller User, mit Adresse und Podero-ID. Wichtigster Knopf: "Simulieren" — meldet dich für 5 Minuten als dieser Kunde an, damit du genau das siehst was er sieht. Admins kann man nicht simulieren.
- Statistik — Activity-Log: wer hat sich wann angemeldet, wer hat ein Gerät hinzugefügt, wer hat Boost gedrückt. Gut um nachzuvollziehen, was ein Kunde gemacht hat, bevor er sich beschwert.
- Debug → Podero Debug Links — direkte Links zu den Debug-Endpoints (Live-Daten aus Podero ansehen).
- Debug → Podero Nutzer löschen — für den Doppelaccount-Fall aus Abschnitt 3.
5. Vorgehen bei einer Kunden-Meldung
- Was sagt das Log? Laravel-Log holen, durchsuchen nach dem Kunden (E-Mail oder ID).
- Den Kunden simulieren. Im Admin-Panel auf "Simulieren" — siehst genau seine Sicht. Spart enorm viel Hin und Her.
- Podero-Snapshot im Admin Panel ansehen. Zeigt, ob das Problem bei uns oder bei Podero liegt.
- Falls Podero die Daten richtig liefert, wir sie aber nicht zeigen: Cache leeren, neu laden.
- Falls Podero die Daten nicht liefert: nicht unser Bug.
Wenn gar nichts hilft
Im Zweifel: nichts deployen, Issue auf Eis legen, bis Manuel zurück ist.
Keine "schnellen Workarounds" in der Podero-Integration — das macht es danach nur schwerer. Zur Not eine ältere Version einspielen.
Das Smartflex-Portal ist von unserer Seite eine stabile Anwendung. Der Fehler kommt fast immer von außen — entweder aus dem ITC-Kundenportal beim Login oder von Podero bei den Geräten. Bevor du tief im Code gräbst: prüfe erst diese beiden.