TIWAG Smartflex-Portal

    Das Smartflex-Portal ist die Plattform, über die TIWAG-Kunden ihre Elektroautos, Wärmepumpen und Batteriespeicher / Wechselrichter verwalten können. Smart-Optimierung an- und ausschalten, Ladepläne fürs E-Auto setzen, Boost-Laden auslösen, Verbrauch und Ersparnis ansehen.

    Hinweis

    Wir machen nur die Optik und keine Logik

    Wir bauen das Portal — aber wir steuern die Geräte nicht selbst. Login läuft über das ITC-Kundenportal der TIWAG, und alles was mit Geräten zu tun hat geht über Podero. Wenn etwas nicht funktioniert, liegt es fast immer an einem von beiden — selten an unserem Code.

    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:

    1. Kunde klickt "Anmelden" → wird zum TIWAG-Kundenportal weitergeleitet
    2. Dort gibt er seine TIWAG-Zugangsdaten ein
    3. Kundenportal schickt ihn zurück zu uns mit einem Token
    4. 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:

    1. Kunde klickt im Portal auf "Gerät hinzufügen"
    2. Wir holen von Podero eine spezielle Onboarding-URL
    3. Kunde wird auf eine von Podero gehostete Seite umgeleitet
    4. Dort wählt er seinen Hersteller (Tesla, KEBA, Smappee, …) und loggt sich beim Hersteller ein
    5. Podero baut die Verbindung im Hintergrund auf
    6. 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

    1. Was sagt das Log? Laravel-Log holen, durchsuchen nach dem Kunden (E-Mail oder ID).
    2. Den Kunden simulieren. Im Admin-Panel auf "Simulieren" — siehst genau seine Sicht. Spart enorm viel Hin und Her.
    3. Podero-Snapshot im Admin Panel ansehen. Zeigt, ob das Problem bei uns oder bei Podero liegt.
    4. Falls Podero die Daten richtig liefert, wir sie aber nicht zeigen: Cache leeren, neu laden.
    5. 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.