🐛 Fixes
🌎 Web Application
🛠 Under the hood
- fix(async_tcp)--Set-core-affinity-to-async_tcp
- Merge branch 'pr3241' into dev
- Revert "Radio_NRF: reduce re-requests"
- RadioNRF: better time based channel hopping- #3012
- Respect the WiFi reconnect pause
- chore(pio): Warnings be gone!
- Merge branch 'pr3253' into dev
- fix(hoymiles): repair event log count guard in sendAlarmLogRequest()
- fix(hoymiles): fix out-of-bounds read in StatisticsParser::zeroFields()
- fix(logging): iterate websocket clients race-free when sending log chunks
- fix(webapi): correct inverted validation condition in security settings
- fix(webapi): null-check inverter config in Prometheus panel metrics
- fix(hoymiles): handle unknown grid profile item definitions gracefully
- fix(hoymiles): use signed index when writing statistics fields
- fix(webapi): validate the display diagram duration
- fix(led): clamp brightness from configuration before indexing pwmTable
- fix(mqtt): drop partially reassembled messages on disconnect
- fix(webapi): report file upload failure and do not restart
- fix(webapi): abort OTA update when a flash write fails
- fix(hoymiles): bounds-check alarm log entry reads
- Merge branch 'pr3254' into dev
- Merge branch 'pr3257' into dev
- Merge branch 'pr3258' into dev
- Merge branch 'pr3261' into dev
- Merge branch 'pr3272' into dev
- Merge branch 'pr3262' into dev
- Merge branch 'pr3265' into dev
- Merge branch 'pr3267' into dev
- Merge branch 'pr3269' into dev
- Merge branch 'pr3268' into dev
- Merge branch 'pr3270' into dev
- Merge branch 'pr3271' into dev
- Merge branch 'pr3264' into dev
- Merge branch 'pr3266' into dev
- Replace the string %06X by $id$ in the hostname template
- Implement NRF channel cycle using hardware timers