Hướng dẫn này cung cấp các bước test cho ESP32-C6 Smart Fan sau khi chuyển đổi sang Matter over Thread.
cd /home/vokupt/Downloads/esp32_smart_fan/esp32_c6_matter_fan
# Clean previous build
idf.py fullclean
# Configure for ESP32-C6
idf.py set-target esp32c6
# Build firmware
idf.py buildExpected result:
- Build thành công, không có lỗi
- File firmware tại
build/esp32_c6_matter_fan.bin
# Flash firmware vào ESP32-C6
idf.py -p /dev/ttyUSB0 flash
# Hoặc sử dụng esptool trực tiếp
esptool.py -p /dev/ttyUSB0 write_flash 0x0 build/esp32_c6_matter_fan.binExpected result:
- Flash thành công
- ESP32-C6 tự động restart
# Xem serial monitor
idf.py -p /dev/ttyUSB0 monitorExpected output:
I (xxx) MAIN: Initializing NVS...
I (xxx) MAIN: NVS initialized successfully
I (xxx) MAIN: Initializing network...
I (xxx) MAIN: Initializing IEEE 802.15.4 radio...
I (xxx) MAIN: IEEE 802.15.4 radio initialized
I (xxx) MAIN: GPIO ISR service installed
I (xxx) MAIN: Initializing System Manager...
I (xxx) SYSTEM: Initializing system...
I (xxx) SYSTEM: System initialized successfully
I (xxx) MAIN: Initializing Matter over Thread...
I (xxx) APP_MATTER: Initializing Matter over Thread...
I (xxx) APP_MATTER: Matter node created successfully
I (xxx) APP_MATTER: Thread Network Interface endpoint created
I (xxx) APP_MATTER: Thread Network Diagnostics endpoint created
I (xxx) APP_MATTER: Fan endpoint created: <endpoint_id>
I (xxx) APP_MATTER: Fan clusters added: On/Off, Fan Control, Level Control
I (xxx) APP_MATTER: Matter over Thread initialized successfully!
I (xxx) MAIN: ESP32-C6 Smart Fan with Matter over Thread is ready!
Trong serial monitor, kiểm tra:
- ✅ IEEE 802.15.4 radio đã được initialize
- ✅ MAC address được hiển thị
- ✅ Không có lỗi Thread initialization
- Mở Matter controller (Home Assistant, Apple HomeKit, Google Home)
- Chọn "Add Device" hoặc "Commission Device"
- Quét QR Code từ serial console
- Lấy 11-digit pairing code từ serial console
- Nhập vào Matter controller
Expected result:
- Device được commission thành công
- SLZB-06M hiển thị device trong Thread network
- Từ Matter controller, bật/tắt fan
- Kiểm tra serial output:
I (xxx) APP_MATTER: Matter Cmd: OnOff = 1
I (xxx) FAN_CONTROLLER: Fan turned ON
- Từ Matter controller, điều chỉnh tốc độ
- Kiểm tra serial output:
I (xxx) APP_MATTER: Matter Cmd: Fan Speed Setting = 50%
I (xxx) FAN_CONTROLLER: Speed set to 50% (250 Hz)
- Xoay rotary encoder để thay đổi tốc độ
- Kiểm tra serial output:
I (xxx) SYSTEM: Encoder moved to step 16 (48.5%)
I (xxx) FAN_CONTROLLER: Speed set to 48% (248 Hz)
I (xxx) APP_MATTER: Reported speed: 48%
- Nhấn button để bật/tắt fan
- Kiểm tra serial output:
I (xxx) SYSTEM: Button pressed!
I (xxx) FAN_CONTROLLER: Fan turned OFF
I (xxx) APP_MATTER: Reported OnOff: 0
Sử dụng Matter console để kiểm tra Thread diagnostics:
# Kết nối Matter console
idf.py -p /dev/ttyUSB0 monitor
# Trong Matter console:
diagnostics threadExpected output:
- Thread version
- Network uptime
- Node count
- Message statistics
Triệu chứng:
CMake Error: ...
Giải pháp:
idf.py fullclean
rm -rf build
idf.py set-target esp32c6
idf.py buildTriệu chứng:
Serial port /dev/ttyUSB0 not found
Giải pháp:
# Kiểm tra device
ls -la /dev/ttyUSB*
# Thêm user vào dialout group
sudo usermod -a -G dialout $USER
# Logout và login lạiTriệu chứng:
I (xxx) APP_MATTER: Matter start failed: -1
Giải pháp:
- Kiểm tra SLZB-06M đã enable Thread Border Router
- Kiểm tra firmware SLZB-06M là mới nhất
- Kiểm tra IEEE 802.15.4 radio đã được initialize
Triệu chứng:
- Device không xuất hiện khi scan QR code
Giải pháp:
- Đảm bảo SLZB-06M và ESP32-C6 cùng mạng
- Kiểm tra Thread network key đúng
- Restart Matter controller
- Xóa device và commission lại
| Test Case | Expected Result | Status |
|---|---|---|
| Build firmware | Build thành công | ☐ |
| Flash firmware | Flash thành công | ☐ |
| NVS init | NVS initialized | ☐ |
| IEEE 802.15.4 | Radio initialized | ☐ |
| GPIO ISR | ISR service installed | ☐ |
| System Manager | System initialized | ☐ |
| Matter node | Node created | ☐ |
| Fan endpoint | Endpoint created | ☐ |
| Thread commissioning | Commission thành công | ☐ |
| Matter On/Off | Bật/tắt hoạt động | ☐ |
| Matter Speed | Điều khiển tốc độ | ☐ |
| Rotary Encoder | Thay đổi tốc độ | ☐ |
| Button | Bật/tắt fan | ☐ |
| Thread Diagnostics | Thông tin hiển thị | ☐ |
Theo dõi các metrics sau:
- Thread Connection Time: Thời gian để join Thread network
- Matter Response Time: Thời gian phản hồi từ Matter controller
- Local Control Latency: Độ trễ khi điều khiển local
- Power Consumption: Tiêu thụ điện năng (nếu có thể đo)
Nếu device bị lỗi, có thể recovery:
- Factory Reset: Nhấn button 10 lần
- Re-commission: Commission lại từ Matter controller
- Re-flash: Nạp lại firmware mới