wrolpi/controller
Roland 8687816b84 controller: selectable hotspot protocol (WPA2/WPA3) with device capability probing
Probe the selected WiFi device with iw to determine which hotspot
protocols it can host: WPA2 requires AP mode; WPA3 requires SAE in AP
mode (SAE_OFFLOAD_AP, or a mac80211 driver with the CMAC cipher for
software SAE).  The Raspberry Pi's brcmfmac supports neither, so Pis
correctly offer WPA2 only (verified against real Pi 4/Pi 5 iw output).

The protocol is saved as hotspot.protocol in controller.yaml.
enable_hotspot() now always sets the Hotspot connection's key-mgmt
explicitly (sae + required PMF for WPA3) so a reused profile cannot
keep a stale protocol, and reverts to WPA2 if the driver rejects SAE.

New GET /api/hotspot/protocols endpoint; protocol dropdowns added to
both the ControllerPage React UI and the fallback controller UI.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 21:12:24 -06:00
..
api controller: selectable hotspot protocol (WPA2/WPA3) with device capability probing 2026-07-28 21:12:24 -06:00
lib controller: selectable hotspot protocol (WPA2/WPA3) with device capability probing 2026-07-28 21:12:24 -06:00
templates controller: selectable hotspot protocol (WPA2/WPA3) with device capability probing 2026-07-28 21:12:24 -06:00
test controller: selectable hotspot protocol (WPA2/WPA3) with device capability probing 2026-07-28 21:12:24 -06:00
__init__.py Creating Controller service which will control WROLPi services, admin, SMART, disks, and status. nginx will fallback to Controller UI when React UI is unavailable (such as during upgrades). 2025-12-15 15:48:40 -07:00
conftest.py Controller: move hotspot settings to controller.yaml with WiFi device dropdown. 2026-07-04 09:03:58 -06:00
defaults.py controller: selectable hotspot protocol (WPA2/WPA3) with device capability probing 2026-07-28 21:12:24 -06:00
main.py controller: report cooling fan RPM in CPU status 2026-07-23 19:52:47 -06:00
requirements.txt Bump safe dependencies (combined Dependabot updates) 2026-07-15 20:07:21 -06:00
serve.py Migrating Controller from port 8087 to 80 so that it is more discoverable. Reformatting Controller dashboard to make header at the top. Reformatting navigation bar to handle the new links which prevented Admin from being visible in some screens. 2026-04-09 15:01:05 -06:00