Hot fix for 2026.10.3, targeting main directly.
Since 2026.10.3, the OTA password was only compiled when ota_password was set (#542). With the default ota_password: "", the resolved configuration no longer had a password key, so the uploader passed no password and stopped with "ESP requests password, but no password given!" whenever the panel asked for one. In 2026.10.2 the key was always present (blank or not), so the uploader always sent it.
Changes
esphome/nspanel_esphome_base.yaml: restorepassword: ${ota_password}inota_stdand remove the conditionalota_passwordpackage, so the uploader behaves exactly as in 2026.10.2. Existing configurations withota_password: ""keep working without changes.docs/customization.md: OTA encryption now removes the password withpassword: !removein the same!extendblock, instead of blankingota_password. Reworded the note about a blank password with theon_bootset_auth_passwordcode, as that combination compiles again but the next OTA update is rejected. Added a note for configurations that enabled the OTA encryption with a blankota_password, which now needpassword: !remove.
Validation
esphome config (ESPHome 2026.9.1) with the local packages:
ota_password: "":passwordpresent and blank (as in 2026.10.2).ota_password: !secret ...:passwordpresent.password: !removewithencryption:and API encryption: validates, nopassword, encryption enabled.
Notes
Panels without a password compile the auth path again (no flash/RAM saving), which matches 2026.10.2.
Closes #555
Related to #542 and #536
What's Changed
Other Changes
- fix: Keep the blank OTA password so updates from 2026.10.2 work again by @panel-easy-assistant[bot] in #556
Full Changelog: v2026.10.3...v2026.10.4