Install or Update Firmware 2025.10.0-dev.310000
On this page, you'll find all available methods to install or update the Doorman firmware. Whether you're flashing the firmware for the first time or applying the latest update, the instructions here will guide you step-by-step — including direct installation via Web Serial, updates through the firmware web interface, and integration with Home Assistant's update system.
IMPORTANT
Be aware that some updates may introduce breaking changes — always review the changelogs carefully to ensure your system functions reliably in critical situations.
Web Serial Latest release build, no customization
Connect your Doorman-S3 via USB-C and use the configuration assistant below to install the latest firmware directly via Web Serial — perfect for first-time setup.
This guided process ensures seamless integration with the Home Assistant API and makes future community-driven updates easy to apply.
BROWSER INCOMPATIBLE
Since your browser doesn't support Web Serial, the configuration assistant isn't available. Please use a Chromium-based browser instead.
Integrated OTA Updates Latest release build, no customization
The firmware supports OTA updates right out of the box, so you can install the latest version with a single click — quick, easy, and hassle-free.
When integrated with Home Assistant, Doorman updates will even show up directly in your Updates list, making it even more convenient to stay up to date.
To update, simply click the Install Update button in the firmware's web interface or use the Update list in Home Assistant.
ESPHome CLI / Dashboard Full customization
If you want full customization and the ability to add your own sensors, automations, or features, this is your way to go — ideal for power users who prefer complete control over their setup.
ESPHome Dashboard
You can adopt Doorman to your ESPHome Dashboard and flash a customized firmware variant.
The adopted configuration could look like this:
# Doorman S3 Firmware
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# Import Doorman Stock Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_passwordESPHome CLI
If you choose this option, you likely know what you're doing — just run the following telegram with your YAML configuration file.
If you prefer using the MQTT-only firmware, simply apply the provided MQTT example YAML tailored for your board below.
esphome run <yamlfile.yaml>Board Configuration Files
Default GPIO configuration
| Component | ESP32-S3 | ESP32 |
|---|---|---|
| TC:BUS RX | GPIO 9 | GPIO 22 |
| TC:BUS TX | GPIO 8 | GPIO 23 |
| Status LED | GPIO 1 | GPIO 2 |
| RGB Status LED | GPIO 2 | GPIO 4 |
| Relay | GPIO 42 | GPIO 21 |
| External Button | GPIO 41 | GPIO 20 |
| ADC Input | GPIO 10 | GPIO 36 |
Stock Firmware
ESP32-S3 (Octal PSRAM) / Doorman-S3 (1.5)
# Doorman Stock Firmware (Home Assistant)
# Base Board ESP32-S3
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Stock Firmware (MQTT)
# Base Board ESP32-S3
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.mqtt.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Stock Firmware (HomeKit)
# Base Board ESP32-S3
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.homekit.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Stock Firmware (Custom)
# Base Board ESP32-S3
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.custom.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_passwordESP32-S3 (Quad PSRAM) / Doorman-S3 (1.4)
# Doorman Stock Firmware (Home Assistant)
# Base Board ESP32-S3-QUAD
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3-quad.ha.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Stock Firmware (MQTT)
# Base Board ESP32-S3-QUAD
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3-quad.mqtt.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Stock Firmware (HomeKit)
# Base Board ESP32-S3-QUAD
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3-quad.homekit.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Stock Firmware (Custom)
# Base Board ESP32-S3-QUAD
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3-quad.custom.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_passwordGeneric ESP32
# Doorman Stock Firmware (Home Assistant)
# Base Board ESP32
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32.ha.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Stock Firmware (MQTT)
# Base Board ESP32
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32.mqtt.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Stock Firmware (HomeKit)
# Base Board ESP32
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32.homekit.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Stock Firmware (Custom)
# Base Board ESP32
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32.custom.stock.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_passwordNuki Bridge Firmware
ESP32-S3 (Octal PSRAM) / Doorman-S3 (1.5)
# Doorman Nuki Bridge Firmware (Home Assistant)
# Base Board ESP32-S3
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman-Nuki-Bridge: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.nuki-bridge.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Nuki Bridge Firmware (Custom)
# Base Board ESP32-S3
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman-Nuki-Bridge: github://azoninc/doorman/firmware/configurations/esp32-s3.custom.nuki-bridge.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_passwordESP32-S3 (Quad PSRAM) / Doorman-S3 (1.4)
# Doorman Nuki Bridge Firmware (Home Assistant)
# Base Board ESP32-S3-QUAD
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman-Nuki-Bridge: github://azoninc/doorman/firmware/configurations/esp32-s3-quad.ha.nuki-bridge.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Nuki Bridge Firmware (Custom)
# Base Board ESP32-S3-QUAD
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman-Nuki-Bridge: github://azoninc/doorman/firmware/configurations/esp32-s3-quad.custom.nuki-bridge.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_passwordGeneric ESP32
# Doorman Nuki Bridge Firmware (Home Assistant)
# Base Board ESP32
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman-Nuki-Bridge: github://azoninc/doorman/firmware/configurations/esp32.ha.nuki-bridge.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password# Doorman Nuki Bridge Firmware (Custom)
# Base Board ESP32
# You can change a few options here.
substitutions:
name: "doorman-s3"
friendly_name: "Doorman S3"
# log_level: "ERROR"
# led_pin: "GPIO1"
# rgb_led_pin: "GPIO2"
# relay_pin: "GPIO42"
# external_button_pin: "GPIO41"
# adc_input_pin: "GPIO10"
# Import Doorman Firmware Config
packages:
AzonInc.Doorman-Nuki-Bridge: github://azoninc/doorman/firmware/configurations/esp32.custom.nuki-bridge.dev.yaml@dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_passwordFirmware Alternatives
Doorman Arduino Framework
If you're looking for a firmware that's more customizable through code, there's a great alternative developed by @peteh. Check it out on GitHub.
TIP
This version is ideal for developers or advanced users who want full control over the logic and behavior of their Doorman setup.