Forum: Mikrocontroller und Digitale Elektronik ESP32C6: Zigbee Netzwerk join


von Robert M. (robert_m949)


Lesenswert?

Moin,
mein eigentliches Ziel: Einen Stromzähler per SML auslesen und dann per 
Zigbee an Home Assistant senden.
Entgegen meiner Annahme war der SML Teil ein Kinderspiel und 
funktioniert problemlos, aber Zigbee treibt mich in den Wahnsinn - ich 
bekomme meinen ESP32C6 nicht in mein Zigbee2Mqtt Netzwerk.

Konkret nutze ich das Xiao Seeed ESP32C6 Board. Schon bei meinen ersten 
Versuchen war das Joinen umständlich und hat viele Anläufe benötigt, 
irgendwann hat es aber irgendwie funktioniert. Ich hatte dann irgendwann 
einen funktionierenden Sensor. Bei der Weiterentwicklung (Akku 
überwachen...) habe ich es aber geschafft, meine Partition mit den 
Zigbee Daten versehentlich zu überschreiben (fragt nicht...), ich musste 
also neu pairen - und daran verzweifle ich jetzt.

Nun habe ich ein Beispielprojekt aus dem esp-zigbee-sdk kopiert, weil 
ich natürlich den Fehler in meinem Code vermute, und es damit versucht. 
Aber auch hier: Ein join ist mir nicht möglich.

Projekt: 
https://github.com/espressif/esp-zigbee-sdk/tree/main/examples/esp_zigbee_HA_sample/HA_temperature_sensor

Natürlich ist im Zigbee2Mqtt das Joinen aktiviert. Natürlich ist der 
Abstand zwischen ESP und Zigbee Stick gering (max. 1m, direkte Sicht). 
Und falls es irgendwie hilfreich ist: Z2M nutzt den Kanal 11.

Ich habe den ESP mehrfach mit
idf.py erase-flash flash monitor nach bestem Wissen neu aufgesetzt. Und 
im Monitor passieren dann komische Dinge:
1
I (23) boot: ESP-IDF v5.5.2-dirty 2nd stage bootloader
2
I (23) boot: compile time Mar  6 2026 14:55:48
3
I (24) boot: chip revision: v0.2
4
I (24) boot: efuse block revision: v0.3
5
I (27) boot.esp32c6: SPI Speed      : 80MHz
6
I (31) boot.esp32c6: SPI Mode       : DIO
7
I (35) boot.esp32c6: SPI Flash Size : 2MB
8
I (38) boot: Enabling RNG early entropy source...
9
I (43) boot: Partition Table:
10
I (45) boot: ## Label            Usage          Type ST Offset   Length
11
I (52) boot:  0 nvs              WiFi data        01 02 00009000 00006000
12
I (58) boot:  1 phy_init         RF data          01 01 0000f000 00001000
13
I (65) boot:  2 factory          factory app      00 00 00010000 000e1000
14
I (71) boot:  3 zb_storage       Unknown data     01 81 000f1000 00004000
15
I (78) boot:  4 zb_fct           Unknown data     01 81 000f5000 00000400
16
I (84) boot: End of partition table
17
I (88) esp_image: segment 0: paddr=00010020 vaddr=42058020 size=0e72ch ( 59180) map
18
I (106) esp_image: segment 1: paddr=0001e754 vaddr=40800000 size=018c4h (  6340) load
19
I (109) esp_image: segment 2: paddr=00020020 vaddr=42000020 size=53074h (340084) map
20
I (174) esp_image: segment 3: paddr=0007309c vaddr=408018c4 size=0e474h ( 58484) load
21
I (187) esp_image: segment 4: paddr=00081518 vaddr=4080fd40 size=0233ch (  9020) load
22
I (194) boot: Loaded app from partition at offset 0x10000
23
I (194) boot: Disabling RNG early entropy source...
24
I (205) cpu_start: Unicore app
25
I (213) cpu_start: GPIO 17 and 16 are used as console UART I/O pins
26
I (214) cpu_start: Pro cpu start user code
27
I (214) cpu_start: cpu freq: 160000000 Hz
28
I (216) app_init: Application information:
29
I (220) app_init: Project name:     powermeter
30
I (224) app_init: App version:      277ad0a
31
I (228) app_init: Compile time:     Mar  6 2026 21:44:18
32
I (233) app_init: ELF file SHA256:  9a5966530...
33
I (237) app_init: ESP-IDF:          v5.5.2-dirty
34
I (241) efuse_init: Min chip rev:     v0.0
35
I (245) efuse_init: Max chip rev:     v0.99 
36
I (249) efuse_init: Chip rev:         v0.2
37
I (253) heap_init: Initializing. RAM available for dynamic allocation:
38
I (259) heap_init: At 40816320 len 000662F0 (408 KiB): RAM
39
I (264) heap_init: At 4087C610 len 00002F54 (11 KiB): RAM
40
I (270) heap_init: At 50000000 len 00003FE8 (15 KiB): RTCRAM
41
I (276) spi_flash: detected chip: generic
42
I (279) spi_flash: flash io: dio
43
W (282) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
44
I (294) sleep_gpio: Configure to isolate all GPIO pins in sleep state
45
I (300) sleep_gpio: Enable automatic switching of GPIO sleep configuration
46
I (315) main_task: Started on CPU0
47
I (315) main_task: Calling app_main()
48
I (325) phy_init: phy_version 343,b513b46,Nov 14 2025,16:34:12
49
W (325) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration
50
I (405) phy_init: Saving new calibration data due to checksum failure or outdated calibration data, mode(2)
51
I (405) phy: libbtbb version: c493933, Nov 14 2025, 16:34:25
52
I (425) main_task: Returned from app_main()
53
I (435) ESP_ZB_TEMP_SENSOR: ZDO signal: ZDO Config Ready (0x17), status: ESP_FAIL
54
I (435) ESP_ZB_TEMP_SENSOR: Initialize Zigbee stack
55
I (435) temperature_sensor: Range [-10°C ~ 80°C], error < 1°C
56
I (435) ESP_ZB_TEMP_SENSOR: Deferred driver initialization successful
57
I (445) ESP_ZB_TEMP_SENSOR: Device started up in factory-reset mode
58
I (455) ESP_ZB_TEMP_SENSOR: Start network steering
59
I (15255) ESP_ZB_TEMP_SENSOR: ZDO signal: ZDO Device Unavailable (0x3c), status: ESP_OK
60
I (15265) ESP_ZB_TEMP_SENSOR: ZDO signal: ZDO Leave (0x3), status: ESP_OK
61
I (15265) ESP_ZB_TEMP_SENSOR: Network steering was not successful (status: ESP_FAIL)
62
I (18525) ESP_ZB_TEMP_SENSOR: Network steering was not successful (status: ESP_FAIL)
63
I (34335) ESP_ZB_TEMP_SENSOR: ZDO signal: ZDO Device Unavailable (0x3c), status: ESP_OK
64
I (34345) ESP_ZB_TEMP_SENSOR: ZDO signal: ZDO Leave (0x3), status: ESP_OK
65
I (34345) ESP_ZB_TEMP_SENSOR: Network steering was not successful (status: ESP_FAIL)
66
I (37595) ESP_ZB_TEMP_SENSOR: Network steering was not successful (status: ESP_FAIL)
67
I (53405) ESP_ZB_TEMP_SENSOR: ZDO signal: ZDO Device Unavailable (0x3c), status: ESP_OK
68
I (53415) ESP_ZB_TEMP_SENSOR: ZDO signal: ZDO Leave (0x3), status: ESP_OK
69
I (53415) ESP_ZB_TEMP_SENSOR: Network steering was not successful (status: ESP_FAIL)
70
I (56665) ESP_ZB_TEMP_SENSOR: Network steering was not successful (status: ESP_FAIL)
71
I (59915) ESP_ZB_TEMP_SENSOR: Network steering was not successful (status: ESP_FAIL)

Ich verstehe auch nicht, was da passiert: Wird mein ESP da beim Joinen 
direkt wieder raus geworfen? Warum sollte Z2M das tun?

Im Z2M Log ist NICHTS zu sehen. Zumindest nicht von diesem ESP - andere 
Geräte senden fröhlich Daten und lassen sich auch problemlos neu ins 
Netzwerk einbinden. Es muss also ein Problem mit meinem Code oder dem 
ESP sein. Und da ich dem Code doch eigentlich vertraue - liegt es 
vielleicht doch an meiner Hardware?
Was mich da aber irritiert: Nachdem ich das Gerät irgendwann joinen 
konnte, gab es keine Probleme mehr, die eigentliche Datenübertragung war 
komplett fehlerfrei. Ich habe also einen Hardware Defekt der nur beim 
Netzwerk Join auftritt? Kann ich mir auch nicht vorstellen.

Irgendwelche schlauen Ideen, was ich noch probieren kann? Ich bin kurz 
davor, mir einen zweiten ESP zu bestellen um zu gucken, ob es mit einem 
anderen Gerät besser klappt - aber eigentlich ergibt das doch immer noch 
keinen Sinn?

Danke im Voraus
Robert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.