ESPHome ESP32-C6 wifi 로 인스톨후 버전이름 업데이트 안될때 구성 방법
작성자 정보
- 최고관리자 작성
- 192.♡.0.1 아이피
- 작성일
컨텐츠 정보
- 216 조회
- 목록
본문
ESPHome ESP32-C6 / ESP32-S3 OTA allow_partition_access 설정 정리
1. 목적
ESPHome에서 ESP32-C6, ESP32-S3 등의 장치를 Wi-Fi OTA로 업데이트할 때 Partition Table 및 Bootloader 영역에 대한 OTA 접근을 허용하기 위한 설정이다.
특히 다음과 같은 경우 참고한다.
ESP32-C6 사용
ESP32-S3 사용
사용자 정의
partitions.csv사용Zigbee용
partitions_zb.csv사용USB 설치는 정상인데 Wi-Fi OTA 후 이전 펌웨어로 돌아가는 경우
파티션 구조를 변경한 장치
OTA 업데이트 후 ESPHome 버전이 변경되지 않는 경우
2. 기본 설정
ota:
- platform: esphome
password: "OTA_PASSWORD"
# Partition Table / Bootloader OTA 접근 허용
allow_partition_access: true
실제 사용할 때 OTA_PASSWORD에는 해당 장치의 OTA 비밀번호를 입력한다.
3. allow_partition_access의 의미
allow_partition_access: true
설정은 ESPHome OTA에서 ESP32의 다음 영역에 대한 접근을 허용한다.
ESP32 Flash
│
├── Bootloader
│
├── Partition Table
│
├── NVS
│
├── OTA Data
│
├── APP0
│
├── APP1
│
└── 기타 사용자 파티션
일반적인 Wi-Fi OTA에서는 주로 새로운 APP 펌웨어를 OTA 파티션에 기록한다.
새 ESPHome 펌웨어
↓
Wi-Fi OTA
↓
OTA APP 파티션
↓
ESP32 재부팅
↓
새 펌웨어 실행
allow_partition_access: true는 OTA 작업에서 Partition Table 및 Bootloader 관련 영역에 접근할 수 있도록 허용하는 옵션이다.
4. 중요한 주의사항
다음 설정을 추가했다고 해서
allow_partition_access: true
일반적인 펌웨어 OTA를 할 때마다 Partition Table이나 Bootloader가 자동으로 업데이트된다는 의미는 아니다.
즉,
allow_partition_access: true
≠
일반 OTA 때 Partition Table 자동 업데이트
정확한 의미는 다음과 같다.
allow_partition_access: true
↓
OTA를 통한 Partition Table /
Bootloader 영역 접근을 허용
따라서 파티션 구조 자체를 변경한 경우에는 별도의 파티션 업데이트 절차 또는 USB 전체 설치가 필요할 수 있다.
5. ESP32-C6 사용
ESP32-C6에서도 사용할 수 있다.
특히 Zigbee/Thread 관련 사용자 정의 파티션을 사용하는 경우 유용하다.
예:
esp32:
board: esp32-c6-devkitc-1
partitions: partitions_zb.csv
framework:
type: esp-idf
ota:
- platform: esphome
password: "OTA_PASSWORD"
# Partition Table / Bootloader OTA 접근 허용
allow_partition_access: true
예를 들어 현재 장치가 다음과 같이 구성되어 있다면
esp32:
board: esp32-c6-devkitc-1
partitions: partitions_zb.csv
ESPHome에서 컴파일하는 partitions_zb.csv와 ESP32-C6 Flash에 실제 기록되어 있는 Partition Table이 서로 같은지 확인하는 것이 중요하다.
6. ESP32-C6에서 발생할 수 있는 증상
대표적인 증상:
ESPHome 최신 버전으로 컴파일
↓
Wi-Fi OTA 전송
↓
OTA 성공
↓
ESP32-C6 재부팅
↓
새 펌웨어 부팅 문제
↓
OTA Rollback
↓
이전 펌웨어 실행
사용자 입장에서는 다음과 같이 보일 수 있다.
Wi-Fi OTA
→ ESPHome 버전 업데이트 안 됨
USB Install
→ ESPHome 최신 버전 정상 적용
이 경우 단순 Wi-Fi 통신 문제뿐만 아니라 다음 항목을 확인한다.
Partition Table
OTA APP 크기
APP0 / APP1 파티션 크기
Bootloader
OTA rollback
사용자 정의
partitions_zb.csv
7. ESP32-S3에서도 사용 가능
allow_partition_access는 ESP32-C6 전용 설정이 아니다.
ESP32-S3에서도 사용할 수 있다.
예:
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
ota:
- platform: esphome
password: "OTA_PASSWORD"
# Partition Table / Bootloader OTA 접근 허용
allow_partition_access: true
따라서 ESP32-S3 장치에서도 동일한 OTA 설정을 사용할 수 있다.
8. ESP32-S3 + 사용자 정의 Partition
ESP32-S3에서 사용자 정의 Partition Table을 사용하는 경우에는 더욱 확인할 필요가 있다.
예:
esp32:
board: esp32-s3-devkitc-1
partitions: partitions.csv
framework:
type: esp-idf
ota:
- platform: esphome
password: "OTA_PASSWORD"
allow_partition_access: true
구조는 다음과 같다.
ESP32-S3
│
├── Bootloader
│
├── partitions.csv
│
├── OTA Data
│
├── APP0
│
├── APP1
│
└── NVS
ESP32-S3에서 기본 Partition Table만 사용하고 Wi-Fi OTA가 정상적으로 동작한다면 allow_partition_access: true는 반드시 필요한 설정은 아니다.
하지만 사용자 정의 파티션을 사용하거나 OTA 관련 문제가 발생하는 장치에서는 사용할 수 있다.
9. C6 / S3 적용 기준
| 장치 및 구성 | 설정 권장 |
|---|---|
ESP32-C6 + partitions_zb.csv | 권장 |
| ESP32-C6 + 사용자 정의 Partition | 권장 |
| ESP32-C6 + OTA 문제 발생 | 권장 |
| ESP32-S3 + 사용자 정의 Partition | 권장 |
| ESP32-S3 + OTA 문제 발생 | 권장 |
| ESP32-S3 + 기본 Partition + 정상 OTA | 선택 |
| 일반 ESP32 + 기본 Partition + 정상 OTA | 선택 |
10. 권장 공통 OTA 설정
ESP32-C6와 ESP32-S3에서 공통으로 다음 형태로 사용할 수 있다.
api:
reboot_timeout: 3min
ota:
- platform: esphome
password: "OTA_PASSWORD"
# ESP32 Partition Table / Bootloader OTA 접근 허용
allow_partition_access: true
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
power_save_mode: none
reboot_timeout: 3min
11. 사용자 정의 Partition을 변경한 경우
partitions.csv 또는 partitions_zb.csv 내용을 변경했다면 처음 한 번은 USB 설치를 사용하는 것이 가장 확실하다.
권장 순서:
YAML 수정
↓
partitions.csv
또는
partitions_zb.csv 수정
↓
Clean Build
↓
USB 전체 설치
↓
정상 부팅 확인
↓
Wi-Fi 연결 확인
↓
이후 Wi-Fi OTA 사용
USB 설치를 통해 실제 ESP32 Flash의 Partition Table과 현재 ESPHome 프로젝트에서 사용하는 Partition Table을 일치시켜 놓는 방법이다.
12. OTA 이후 버전 확인
OTA가 실제 적용됐는지 확인하려면 ESPHome Version 센서를 추가해 두면 편리하다.
text_sensor:
- platform: version
name: "ESPHome Firmware Version"
id: esphome_firmware_version
entity_category: diagnostic
hide_timestamp: false
hide_hash: false
이를 통해 Home Assistant에서 실제 장치가 실행하고 있는 ESPHome 펌웨어 버전을 확인할 수 있다.
예:
ESPHome Firmware Version
2026.8.x
OTA 후에도 이전 버전이 계속 표시된다면 OTA 전송 성공 여부뿐 아니라 재부팅 이후 rollback 여부도 확인한다.
13. 최종 권장 구성
ESP32-C6
esp32:
board: esp32-c6-devkitc-1
partitions: partitions_zb.csv
framework:
type: esp-idf
ota:
- platform: esphome
password: "OTA_PASSWORD"
# Partition Table / Bootloader OTA 접근 허용
allow_partition_access: true
ESP32-S3
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
ota:
- platform: esphome
password: "OTA_PASSWORD"
# Partition Table / Bootloader OTA 접근 허용
allow_partition_access: true
ESP32-S3에서 사용자 정의 파티션을 사용한다면:
esp32:
board: esp32-s3-devkitc-1
partitions: partitions.csv
framework:
type: esp-idf
ota:
- platform: esphome
password: "OTA_PASSWORD"
allow_partition_access: true
14. 핵심 요약
ESP32-C6 / ESP32-S3
│
├── 기본 Partition
│ ↓
│ 정상 OTA라면 선택 사항
│
└── 사용자 정의 Partition
↓
partitions.csv
partitions_zb.csv
↓
allow_partition_access: true
↓
OTA Partition 접근 허용
최종 정리
allow_partition_access: true는 ESP32-C6뿐 아니라 ESP32-S3에서도 사용할 수 있다.
특히 partitions.csv, partitions_zb.csv 같은 사용자 정의 Partition Table을 사용하는 장치에서는 OTA 관리 목적으로 권장할 수 있다.
단,
allow_partition_access: true= Partition Table 자동 업데이트
는 아니다.
파티션 구조를 실제로 변경했다면 USB로 한 번 전체 설치한 후 Wi-Fi OTA를 사용하는 방법이 가장 확실하다.
관련자료
-
이전
-
다음