Key features:
- PIC Gateway Settings. All 15 PIC configuration registers now visible via Web UI, REST API and MQTT. Values are read on-demand (PR= polling) and cached in the browser with colour coding (green = live, orange = cached).
- Optional password protection. HTTP Basic Auth for settings, file management, reboot and OTA. Off by default; existing setups unaffected.
- MQTT publish gating. Rate-limiting on OpenTherm and PS=1 messages to reduce broker load and WiFi traffic.
- Full PS=1 integration. PS=1 summary output is now parsed, published to MQTT and forwarded to Home Assistant discovery.
- Light/dark theme toggle. Persistent per browser.
- Triple-reset WiFi recovery. 3 quick resets within 10 seconds clears WiFi credentials and reopens the captive portal. No reflash needed.
- Non-blocking WiFi reconnect. No more 30-second freeze in the main loop on connection loss.
- Centralised auth on all POST/PUT endpoints, CORS wildcard replaced by dynamic origin, webhook SSRF prevention, XSS fix
- ArduinoJson removed, settings/state restructured to structs, String class removed from hot paths, ~1,400 bytes of stack pressure eliminated
- Bugfixes: hostname falling back to ESP-XXXXXX, iOS Safari settings page blank, millis() wraparound, f8.8 negative encoding
The release itself can be downloaded here: https://github.com/rvdbre...mware/releases/tag/v1.3.0
If you have questions, comments, compliments or bug reports, you can find me on the OTGW Discord.
Regards,
Robert