Skip to content

feat: optional MQTT username/password with portal restyling - #41

Merged
stritti merged 1 commit into
mainfrom
feat/mqtt-credentials
Aug 11, 2026
Merged

stritti merged 1 commit into
mainfrom
feat/mqtt-credentials

Conversation

@stritti

@stritti stritti commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Zusammenfassung

Erweitert die Konfiguration um optionales MQTT-User/Passwort und gleicht das Look & Feel des Konfigurationsportals an den pool-controller an.

Änderungen

  • NetworkManager::beginMqtt() akzeptiert optional username/password:
    • Leerer Username → anonyme Verbindung wie bisher (connect(clientId))
    • Gesetzter Username → connect(clientId, username, password)
  • Portal-Felder (PoolMonitorContext::initializeNetwork()):
    • Neu: „MQTT Username" (mqtt_user) und „MQTT Password" (mqtt_pass)
    • Persistenz in NVS (putString/getString) konsistent zu mqtt_server/mqtt_port
    • Passwort-Feld via injiziertem Script als type=password maskiert
  • Look & Feel angeglichen an pool-controller/data/web/style.css:
    • Dark-Glassmorphism-Theme (bg #06121e/#0a1e2f, Glas-Card rgba(8,28,48,.75))
    • Cyan-Akzent #00e5ff, Inputs mit Cyan-Focus-Glow, Gradient-Buttons #00b4d8→#00e5ff
    • Injektion über WiFiSettings.html() (kein Library-Fork nötig)
  • Wiring: Credentials werden in initializeMqtt() und showWiFiConnectedScreen() an beginMqtt() durchgereicht; Offline-Zyklus lädt sie aus NVS

Verifikation

  • platformio check --environment LILYGO_T5_V231 --skip-packages → PASSED (0 HIGH/MEDIUM)
  • platformio run --environment LILYGO_T5_V231 → SUCCESS (RAM 16.8%, Flash 89.1%)
  • cpplint auf allen geänderten Dateien → sauber

Kompatibilität

Rückwärtskompatibel: ohne gesetzten MQTT-User bleibt das Verhalten identisch zum Status quo. Die NVS-Keys mqtt_user/mqtt_pass sind konsistent zum pool-controller (kMqttUser/kMqttPass).

Add optional MQTT authentication to the configuration portal and MQTT
connection:

- NetworkManager::beginMqtt() accepts optional username/password; empty
  username keeps the anonymous connection path
- New portal fields 'MQTT Username' and 'MQTT Password' (mqtt_user,
  mqtt_pass), persisted to NVS like the existing mqtt_server/mqtt_port
- Password field is masked via injected script (type=password)
- Portal look & feel matches the pool-controller web dashboard: dark
  glassmorphism theme with cyan accent (#00e5ff), glass card, gradient
  buttons
@github-actions

Copy link
Copy Markdown
Contributor

Super-linter summary

Language Validation result
CPP Pass ✅
EDITORCONFIG Pass ✅
GITLEAKS Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

@stritti
stritti merged commit 0b4aa9c into main Aug 11, 2026
9 checks passed
@stritti
stritti deleted the feat/mqtt-credentials branch August 11, 2026 20:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant