I'm probably giving up on ESPHome

Interesting that you’re using UDM. I am too. I’m currently at war with Ubiquiti over their mDNS support. I run multiple VLANs / SSIDs for different purposes - including IoT devices such as ESP.

Example issues:

  1. Unable to “see” mDNS “.local” devices on different networks. This include HomeAssistant, at times, and have to login locally via IP Address
  2. ESPHome devices sometimes showing offline (even though they’re working fine)
  3. Various devices such as HDHomeRun, etc

I know that I’m configured correctly (years of networking experience) and have verified this with their front line (pretty horrible) tech support. It’s been escalated internally for a few weeks now.

Like you, I’ve read all the threads, everywhere, and have the packet captures to back up their mishandling of mDNS responses from devices/servers.

Anyway, this may or may not be your issue but I’d definitely lean on your UDM being at least part of your problem.

Best of luck.

I can certainly understand your frustration. I only use ESPHome for the voice assistant and my Bluetooth & Zigbee Proxies. I will never update the later, those are critical to me. For the voice stuff, I have had nothing but trouble updating that through Home Assistant. The last time, the update was recalled. This time, there have been 3 updates in a row and none of them work for the M5Stack Atom Echo although it works for other models. I’m waiting or these to be recalled and go back to the old 2024 version that actually worked. Such is the state of ESPHome… completely unreliable on updates. Also, reconnecting can be a real pain in the butt, I know how but it still a Pain. If it was not for the voice assistant interface, I would not be using ESPHome at all.

Then you will miss out on important optimisations made to Bluetooth proxies. There have been significant stability and speed improvements recently.

I’m not a networking expert (I do have reasonable working kmowledge), but my understanding is that mDNS is designed to operate within a subnet. Do you use mDNS proxies or gateways to route between subnets?

You’re right. As it leverages multicast, it’s designed to stay within the vlan. Unifi has functionality to repeat these messages for networks you allow.

There are other repeater / reflector tools out there as well. I’m considering going this route if Ubiquiti ends up dropping the ball.

I went around this issue by assigning a real (local) domain name for the LAN to replace “.local”.

If using the esphome addon, have you enabled status_use_ping which you find with the addon configuration behind “Show unused optional configuration options”?

You probably know this but, for others, mDNS != DNS. While your workaround could work for many devices, it doesn’t for others. Examples are devices that have iOS apps where you can’t configure a custom name or address (HDHomeRun as one example. I also have a few Amateur Radio devices that act similarily.). It’s “hardcoded” to go look for its devices with .local.

I have used this workaround for some services, however.

I honestly can’t remember if I tried status_use_ping or not. I know I’ve read about it as a possible workaround to mDNS issues. A few of my issues ended up being poor wifi performance from ESP devices. I should have known, but they’re not all created equally and I finally found genuine boards to work better. (Or used ethernet where necessary)

“Expensive” is relative. When my client count went past 60, my network became very flaky. ESP devices would randomly drop offline and new logins took a few tries before connecting. I first exchanged the ISP router (Verizon FIOS) and things worked well for a few days. I started looking at replacing my “4-in-1” ISP provided router with something more robust. The specifications were more fluff than facts and clearly not aimed at the power user. None would say how many simultaneous clients they could accommodate.

I finally wound up re-engineering my entire network. I bought TP-Link Omada router, switches and POE access points. Again, when my network reached 75 clients, the problems returned. Tech support at Omada educated me on the limitations of routers with insufficient memory. I upgraded my router and today I have 108 well-connected clients.

So, as I said, “expensive” is relative. All total; I’ve spent about $400 rebuilding my network. What is more expensive, $400 or an unreliable network?

2 Likes

As “expensive” i more or less meant not having one of those el-cheapo routers for 20-50€… or even providers “all-in-one” combo’s. Yes, specs for those are great, sadly only on paper, while in real world they are usable only for people with one pc, two phones and tablet…

1 Like

And you forgot to write one essential thing. For this setup to work you need lan cables connected through your house. I know that this is not a big deal in usa as houses are poorly made compared to the europe. But here where houses are made out of reinforcement cement, bricks and mortar is not that easy nor cheap to retrofit lan cables.

Fellow European with cement, bricks & mortar here. I’ll grant you the “not that easy part” due to the dust and mess, but it is cheap if you know how to diy it properly.

I’m just some random guy with barely any professional knowledge, but I still managed to pull 4x ethernet cables in each room in my house. Also managed to wire up 2 intercoms across 2 floors in my in-laws’ house built in the 70s with some swearing.

Easy? No. Cheap? Yes, if you plan accordingly and if you’re prepared to see it through.

2 Likes

I have no intention on doing that. I know that this is mess and that i could do it by my self. But too much mess. Mesh wifi can easily solve the problem. Averagin 120 mbit around the house is more than enough for everyday net usage.

I’d certainly want to “miss out” rather than not work at all. The fix for the M5Stack Atom Echo update is still not out and it has basically corrupted my unit… have to reset it after each command and this complaint has been well documented by many others.

On my last blog, I forgot to mention the issues is with the recent Voice Assistant firmware on the M5Stack Atom Echo that hasn’t been working for months.

1 Like

You keep posting without yaml or logs.

I don’t see a way to attach any files in this blog. The logs from the Yaml are identical to the ones from the other M5Stack Atom Echo with firmware 2024.11.1 which does work properly. I have an ESPHome log while executing a command as follows:

[02:41:32][D][binary_sensor:036]: ‘Button’: Sending state ON
[D][binary_sensor:036]: ‘Button’: Sending state OFF
[D][voice_assistant:506]: State changed from IDLE to START_MICROPHONE
[D][voice_assistant:512]: Desired state set to START_PIPELINE
[D][voice_assistant:223]: Starting Microphone
[D][voice_assistant:506]: State changed from START_MICROPHONE to STARTING_MICROPHONE
[D][esp-idf:000]: I (1193484) I2S: DMA Malloc info, datalen=blocksize=1024, dma_buf_count=4

[D][voice_assistant:506]: State changed from STARTING_MICROPHONE to START_PIPELINE
[D][voice_assistant:277]: Requesting start…
[D][voice_assistant:506]: State changed from START_PIPELINE to STARTING_PIPELINE
[D][voice_assistant:527]: Client started, streaming microphone
[D][voice_assistant:506]: State changed from STARTING_PIPELINE to STREAMING_MICROPHONE
[D][voice_assistant:512]: Desired state set to STREAMING_MICROPHONE
[D][voice_assistant:642]: Event Type: 1
[D][voice_assistant:645]: Assist Pipeline running
[D][voice_assistant:642]: Event Type: 9
[D][voice_assistant:642]: Event Type: 10
[D][voice_assistant:651]: Wake word detected
[D][voice_assistant:642]: Event Type: 3
[D][voice_assistant:656]: STT started
[D][light:036]: ‘M5Stack Atom Echo 23ec98’ Setting:
[D][light:059]: Red: 0%, Green: 0%, Blue: 100%
[D][light:109]: Effect: ‘Slow Pulse’
[D][voice_assistant:642]: Event Type: 11
[D][voice_assistant:805]: Starting STT by VAD
[D][voice_assistant:642]: Event Type: 12
[D][voice_assistant:809]: STT by VAD end
[D][voice_assistant:506]: State changed from STREAMING_MICROPHONE to STOP_MICROPHONE
[D][voice_assistant:512]: Desired state set to AWAITING_RESPONSE
[D][voice_assistant:506]: State changed from STOP_MICROPHONE to STOPPING_MICROPHONE
[D][light:036]: ‘M5Stack Atom Echo 23ec98’ Setting:
[D][light:059]: Red: 0%, Green: 0%, Blue: 100%
[D][light:109]: Effect: ‘Fast Pulse’
[D][esp-idf:000]: I (1205081) I2S: DMA queue destroyed

[D][voice_assistant:506]: State changed from STOPPING_MICROPHONE to AWAITING_RESPONSE
[D][voice_assistant:642]: Event Type: 4
[D][voice_assistant:670]: Speech recognised as: " turn off the kitchen light"
[D][voice_assistant:642]: Event Type: 5
[D][voice_assistant:675]: Intent started
[D][voice_assistant:642]: Event Type: 6
[D][voice_assistant:642]: Event Type: 7
[D][voice_assistant:698]: Response: “Turned off the light”
[D][light:036]: ‘M5Stack Atom Echo 23ec98’ Setting:
[D][light:051]: Brightness: 100%
[D][light:059]: Red: 0%, Green: 0%, Blue: 100%
[D][light:109]: Effect: ‘None’
[D][voice_assistant:642]: Event Type: 8
[D][voice_assistant:720]: Response URL: “http://192.168.0.151:8123/api/tts_proxy/kis1Gr8qS0BW1j05w0otPg.wav
[D][voice_assistant:506]: State changed from AWAITING_RESPONSE to STREAMING_RESPONSE
[D][voice_assistant:512]: Desired state set to STREAMING_RESPONSE
[D][media_player:073]: ‘M5Stack Atom Echo 23ec98’ - Setting
[D][media_player:080]: Media URL: http://192.168.0.151:8123/api/tts_proxy/kis1Gr8qS0BW1j05w0otPg.wav
[D][media_player:086]: Announcement: yes
[D][light:036]: ‘M5Stack Atom Echo 23ec98’ Setting:
[D][light:051]: Brightness: 100%
[D][light:059]: Red: 0%, Green: 0%, Blue: 100%
[D][esp-idf:000][ann_read]: I (1207438) HTTP_CLIENT: Body received in fetch header state, 0x3ffe2d8e, 1894

[D][speaker_media_player:420]: State changed to ANNOUNCING
[D][voice_assistant:642]: Event Type: 2
[D][voice_assistant:736]: Assist Pipeline ended
[D][speaker_media_player.pipeline:114]: Reading WAV file type
[D][api:103]: Accepted 192.168.0.151
[W][micro_wake_word:183]: Wake word is already stopped
[D][voice_assistant:506]: State changed from STREAMING_RESPONSE to IDLE
[D][voice_assistant:512]: Desired state set to IDLE
[D][api.connection:1446]: Home Assistant 2025.4.1 (192.168.0.151): Connected successfully
[D][ring_buffer:034][speaker_task]: Created ring buffer with size 1920
[D][esp-idf:000][speaker_task]: I (1207499) I2S: queue free spaces: 5

[D][esp-idf:000][speaker_task]: I (1207500) I2S: DMA Malloc info, datalen=blocksize=960, dma_buf_count=4

[D][i2s_audio.speaker:116]: Started Speaker
[D][voice_assistant:506]: State changed from IDLE to IDLEGuru Meditation Error: Core 1 panic’ed (LoadProhibited). Exception was unhandled.
[02:41:32]
[02:41:32]Core 1 register dump:
[02:41:32]PC : 0x401b36b7 PS : 0x00060730 A0 : 0x800eb550 A1 : 0x3ffbfc20
[02:41:32]A2 : 0x00000000 A3 : 0x3ffbfc40 A4 : 0x00000000 A5 : 0x00060523
[02:41:32]A6 : 0x00060520 A7 : 0x00000001 A8 : 0x00000014 A9 : 0x00000004
[02:41:32]A10 : 0x3ffbfdac A11 : 0x80000001 A12 : 0x800901e8 A13 : 0x3ffbfb20
[02:41:32]A14 : 0x00000003 A15 : 0x00060023 SAR : 0x00000018 EXCCAUSE: 0x0000001c
[02:41:32]EXCVADDR: 0x00000000 LBEG : 0x4008a384 LEND : 0x4008a3a0 LCOUNT : 0xffffffff
[02:41:32]
[02:41:32]
[02:41:32]Backtrace: 0x401b36b4:0x3ffbfc20 0x400eb54d:0x3ffbfc40 0x400f3696:0x3ffbfc80 0x400f0c81:0x3ffbfcd0 0x400f4992:0x3ffbfd00 0x400dbb4a:0x3ffbfd20
[02:41:32]
[02:41:32]
[02:41:32]
[02:41:32]
[02:41:32]ELF file SHA256: 05d7e199ca7540d4
[02:41:32]
[02:41:32]Rebooting…
[02:41:32]ets Jun 8 2016 00:22:57
[02:41:32]
[02:41:32]rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[02:41:32]configsip: 188777542, SPIWP:0xee
[02:41:32]clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[02:41:32]mode:DIO, clock div:2
[02:41:32]load:0x3fff0030,len:6652
[02:41:32]ho 0 tail 12 room 4
[02:41:32]load:0x40078000,len:15052
[02:41:32]load:0x40080400,len:3836
[02:41:32]entry 0x4008069c
[02:41:32]I (29) boot: ESP-IDF 4.4.8 2nd stage bootloader
[02:41:32]I (29) boot: compile time 03:22:54
[02:41:32]I (29) boot: Multicore bootloader
[02:41:32]I (33) boot: chip revision: v1.1
[02:41:32]I (37) boot.esp32: SPI Speed : 40MHz
[02:41:32]I (41) boot.esp32: SPI Mode : DIO
[02:41:32]I (46) boot.esp32: SPI Flash Size : 4MB
[02:41:32]I (50) boot: Enabling RNG early entropy source…
[02:41:32]I (56) boot: Partition Table:
[02:41:32]I (59) boot: ## Label Usage Type ST Offset Length
[02:41:32]I (67) boot: 0 otadata OTA data 01 00 00009000 00002000
[02:41:32]I (74) boot: 1 phy_init RF data 01 01 0000b000 00001000
[02:41:32]I (81) boot: 2 app0 OTA app 00 10 00010000 001c0000
[02:41:32]I (89) boot: 3 app1 OTA app 00 11 001d0000 001c0000
[02:41:32]I (96) boot: 4 nvs WiFi data 01 02 00390000 0006d000
[02:41:32]I (104) boot: End of partition table
[02:41:32]I (108) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=5bcfch (376060) map
[02:41:33]I (253) esp_image: segment 1: paddr=0006bd24 vaddr=3ffb0000 size=033cch ( 13260) load
[02:41:33]I (258) esp_image: segment 2: paddr=0006f0f8 vaddr=40080000 size=00f20h ( 3872) load
[02:41:33]I (260) esp_image: segment 3: paddr=00070020 vaddr=400d0020 size=ecdcch (970188) map
[02:41:33]I (618) esp_image: segment 4: paddr=0015cdf4 vaddr=40080f20 size=17bdch ( 97244) load
[02:41:33]I (670) boot: Loaded app from partition at offset 0x10000
[02:41:33]I (670) boot: Disabling RNG early entropy source…
[02:41:33]I (682) cpu_start: Multicore app
[02:41:33]I (682) psram: This chip is ESP32-PICO
[02:41:33]E (682) psram: PSRAM ID read error: 0xffffffff
[02:41:33]E (684) spiram: SPI RAM enabled but initialization failed. Bailing out.
[02:41:33]I (691) cpu_start: Failed to init external RAM; continuing without it.
[02:41:33]I (698) cpu_start: Pro cpu up.
[02:41:33]I (702) cpu_start: Starting app cpu, entry point is 0x400828c0
[02:41:33]I (694) cpu_start: App cpu up.
[02:41:33]I (724) cpu_start: Pro cpu start user code
[02:41:33]I (724) cpu_start: cpu freq: 160000000
[02:41:33]I (724) cpu_start: Application information:
[02:41:33]I (729) cpu_start: Project name: m5stack-atom-echo
[02:41:33]I (735) cpu_start: App version: 2025.2.0
[02:41:33]I (740) cpu_start: Compile time: Feb 20 2025 03:18:41
[02:41:33]I (746) cpu_start: ELF file SHA256: 05d7e199ca7540d4…
[02:41:33]I (752) cpu_start: ESP-IDF: 4.4.8
[02:41:33]I (756) cpu_start: Min chip rev: v0.0
[02:41:33]I (761) cpu_start: Max chip rev: v3.99
[02:41:33]I (766) cpu_start: Chip rev: v1.1
[02:41:33]I (771) heap_init: Initializing. RAM available for dynamic allocation:
[02:41:33]I (778) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
[02:41:33]I (784) heap_init: At 3FFB7DD8 len 00028228 (160 KiB): DRAM
[02:41:33]I (790) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
[02:41:33]I (797) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
[02:41:33]I (803) heap_init: At 40098AFC len 00007504 (29 KiB): IRAM
[02:41:33]I (811) spi_flash: detected chip: gd
[02:41:33]I (813) spi_flash: flash io: dio
[02:41:33]I (819) cpu_start: Starting scheduler on PRO CPU.
[02:41:33]I (0) cpu_start: Starting scheduler on APP CPU.
[02:41:42][I][logger:171]: Log initialized
[C][safe_mode:079]: There have been 0 suspected unsuccessful boot attempts
[D][esp32.preferences:114]: Saving 1 preferences to flash…
[D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[I][app:029]: Running through setup()…
[C][esp32_rmt_led_strip:025]: Setting up ESP32 LED Strip…
[D][template.select:014]: Setting up Template Select
[D][template.select:029]: State from restore: In Home Assistant
[D][select:015]: ‘Wake word engine location’: Sending state In Home Assistant (index 0)
[W][micro_wake_word:183]: Wake word is already stopped
[D][esp-idf:000]: I (278) gpio: GPIO[39]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0

[D][binary_sensor:034]: ‘Button’: Sending initial state OFF
[C][light:021]: Setting up light ‘M5Stack Atom Echo 23ec98’…
[D][light:036]: ‘M5Stack Atom Echo 23ec98’ Setting:
[D][light:041]: Color mode: RGB
[D][template.switch:046]: Restored state ON
[D][switch:012]: ‘Use listen light’ Turning ON.
[D][switch:055]: ‘Use listen light’: Sending state ON
[D][light:036]: ‘M5Stack Atom Echo 23ec98’ Setting:
[D][light:047]: State: ON
[D][light:051]: Brightness: 60%
[D][light:059]: Red: 0%, Green: 100%, Blue: 100%
[D][template.switch:046]: Restored state OFF
[D][switch:016]: ‘timer_ringing’ Turning OFF.
[D][switch:055]: ‘timer_ringing’: Sending state OFF
[D][media_player:073]: ‘M5Stack Atom Echo 23ec98’ - Setting
[D][media_player:077]: Command: REPEAT_OFF
[D][media_player:086]: Announcement: yes
[D][media_player:073]: ‘M5Stack Atom Echo 23ec98’ - Setting
[D][media_player:077]: Command: STOP
[D][media_player:086]: Announcement: yes
[C][i2s_audio:028]: Setting up I2S Audio…
[C][i2s_audio.microphone:018]: Setting up I2S Audio Microphone…
[C][i2s_audio.speaker:096]: Setting up I2S Audio Speaker…
[I][speaker_media_player:121]: Set up speaker media player
[C][wifi:048]: Setting up WiFi…
[D][esp-idf:000]: I (425) wifi:
[D][esp-idf:000]: wifi driver task: 3ffc8c60, prio:23, stack:6656, core=0
[D][esp-idf:000]:

[D][esp-idf:000][wifi]: I (1704) system_api: Base MAC address is not set

[D][esp-idf:000][wifi]: I (1706) system_api: read default base MAC address from EFUSE

[D][esp-idf:000][wifi]: I (1717) wifi:
[D][esp-idf:000][wifi]: wifi firmware version: ff661c3
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1735) wifi:
[D][esp-idf:000][wifi]: wifi certification version: v7.0
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1745) wifi:
[D][esp-idf:000][wifi]: config NVS flash: enabled
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1765) wifi:
[D][esp-idf:000][wifi]: config nano formating: disabled
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1786) wifi:
[D][esp-idf:000][wifi]: Init data frame dynamic rx buffer num: 32
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1797) wifi:
[D][esp-idf:000][wifi]: Init static rx mgmt buffer num: 5
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1817) wifi:
[D][esp-idf:000][wifi]: Init management short buffer num: 32
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1837) wifi:
[D][esp-idf:000][wifi]: Init dynamic tx buffer num: 32
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1858) wifi:
[D][esp-idf:000][wifi]: Init tx cache buffer num: 32
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1868) wifi:
[D][esp-idf:000][wifi]: Init static rx buffer size: 1600
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1889) wifi:
[D][esp-idf:000][wifi]: Init static rx buffer num: 10
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (1899) wifi:
[D][esp-idf:000][wifi]: Init dynamic rx buffer num: 32
[D][esp-idf:000][wifi]:

[D][esp-idf:000]: I (1920) wifi_init: rx ba win: 6

[D][esp-idf:000]: I (1929) wifi_init: tcpip mbox: 32

[D][esp-idf:000]: I (1940) wifi_init: udp mbox: 6

[D][esp-idf:000]: I (1940) wifi_init: tcp mbox: 6

[D][esp-idf:000]: I (1950) wifi_init: tcp tx win: 5760

[D][esp-idf:000]: I (1950) wifi_init: tcp rx win: 5760

[D][esp-idf:000]: I (1960) wifi_init: tcp mss: 1440

[D][esp-idf:000]: I (1970) wifi_init: WiFi IRAM OP enabled

[D][esp-idf:000]: I (1971) wifi_init: WiFi RX IRAM OP enabled

[C][wifi:061]: Starting WiFi…
[C][wifi:062]: Local MAC: E8:6B:EA:23:EC:98
[D][wifi:074]: Loaded saved wifi settings: WANWireless2G
[D][esp-idf:000][wifi]: I (1995) phy_init: phy_version 4791,2c4672b,Dec 20 2023,16:06:06

[D][esp-idf:000][wifi]: I (2078) wifi:
[D][esp-idf:000][wifi]: mode : sta (e8:6b:ea:23:ec:98)
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (2080) wifi:
[D][esp-idf:000][wifi]: enable tsf
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (2084) wifi:
[D][esp-idf:000][wifi]: Set ps type: 1

[D][esp-idf:000][wifi]:

[D][wifi:482]: Starting scan…
[D][esp32.preferences:114]: Saving 2 preferences to flash…
[D][esp32.preferences:143]: Saving 2 preferences to flash: 2 cached, 0 written, 0 failed
[E][voice_assistant:569]: No API client connected
[D][voice_assistant:506]: State changed from IDLE to IDLE
[D][voice_assistant:512]: Desired state set to IDLE
[D][esp-idf:000][wifi]: I (2136) wifi:
[D][esp-idf:000][wifi]: Set ps type: 1

[D][esp-idf:000][wifi]:

[W][component:157]: Component wifi set Warning flag: scanning for networks
[D][wifi:497]: Found networks:
[I][wifi:541]: - ‘WANWireless2G’ (18:D6:C7:D8:7F:B3) [redacted]▂▄▆█
[D][wifi:542]: Channel: 6
[D][wifi:543]: RSSI: -30 dB
[D][wifi:546]: - ‘Savvy A’[redacted] (74:9B:E8:CB:6A:58) [redacted]▂▄▆█
[D][wifi:546]: - ‘’[redacted] (8A:9B:E8:CB:6A:58) [redacted]▂▄▆█
[D][wifi:546]: - ‘VIRGIN227’[redacted] (B8:EE:0E:BB:74:02) [redacted]▂▄▆█
[D][wifi:546]: - ‘DIRECT-33-HP ENVY 4520 series’[redacted] (40:B0:34:8C:91:34) [redacted]▂▄▆█
[D][wifi:546]: - ‘20726196’[redacted] (06:BB:EF:07:F5:28) [redacted]▂▄▆█
[D][wifi:546]: - ‘BELL232’[redacted] (0C:AC:8A:DF:7B:3D) [redacted]▂▄▆█
[I][wifi:313]: WiFi Connecting to ‘WANWireless2G’…
[D][esp-idf:000][wifi]: I (4965) wifi:
[D][esp-idf:000][wifi]: new:<6,2>, old:<1,0>, ap:<255,255>, sta:<6,2>, prof:1
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (5218) wifi:
[D][esp-idf:000][wifi]: state: init → auth (b0)
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (5222) wifi:
[D][esp-idf:000][wifi]: state: auth → assoc (0)
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (5228) wifi:
[D][esp-idf:000][wifi]: state: assoc → run (10)
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (5250) wifi:
[D][esp-idf:000][wifi]: idx:0 (ifx:0, 18:d6:c7:d8:7f:b3), tid:0, ssn:0, winSize:64
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (5267) wifi:
[D][esp-idf:000][wifi]: connected with WANWireless2G, aid = 44, channel 6, 40D, bssid = 18:d6:c7:d8:7f:b3
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (5284) wifi:
[D][esp-idf:000][wifi]: security: WPA2-PSK, phy: bgn, rssi: -34
[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (5305) wifi:
[D][esp-idf:000][wifi]: pm start, type: 1

[D][esp-idf:000][wifi]:

[D][esp-idf:000][wifi]: I (5363) wifi:
[D][esp-idf:000][wifi]: AP’s beacon interval = 102400 us, DTIM period = 1
[D][esp-idf:000][wifi]:

[I][wifi:617]: WiFi Connected!
[C][wifi:428]: Local MAC: E8:6B:EA:23:EC:98
[C][wifi:433]: SSID: ‘WANWireless2G’[redacted]
[C][wifi:436]: IP Address: 192.168.0.94
[C][wifi:440]: BSSID: 18:D6:C7:D8:7F:B3[redacted]
[C][wifi:441]: Hostname: ‘m5stack-atom-echo-23ec98’
[C][wifi:443]: Signal strength: -32 dB ▂▄▆█
[C][wifi:447]: Channel: 6
[C][wifi:448]: Subnet: 255.255.255.0
[C][wifi:449]: Gateway: 192.168.0.3
[C][wifi:450]: DNS1: 192.168.0.3
[C][wifi:451]: DNS2: 0.0.0.0
[D][wifi:626]: Disabling AP…
[C][api:026]: Setting up Home Assistant API server…
[C][micro_wake_word:062]: Setting up microWakeWord…
[C][micro_wake_word:069]: Micro Wake Word initialized
[I][app:062]: setup() finished successfully!
[W][component:170]: Component wifi cleared Warning flag
[W][component:157]: Component api set Warning flag: unspecified
[I][app:100]: ESPHome version 2025.2.0 compiled on Feb 20 2025, 03:18:41
[I][app:102]: Project m5stack.atom-echo-wake-word-voice-assistant version 25.2.1
[C][wifi:600]: WiFi:
[C][wifi:428]: Local MAC: E8:6B:EA:23:EC:98
[C][wifi:433]: SSID: ‘WANWireless2G’[redacted]
[C][wifi:436]: IP Address: 192.168.0.94
[C][wifi:440]: BSSID: 18:D6:C7:D8:7F:B3[redacted]
[C][wifi:441]: Hostname: ‘m5stack-atom-echo-23ec98’
[C][wifi:443]: Signal strength: -29 dB ▂▄▆█
[C][wifi:447]: Channel: 6
[C][wifi:448]: Subnet: 255.255.255.0
[C][wifi:449]: Gateway: 192.168.0.3
[C][wifi:450]: DNS1: 192.168.0.3
[C][wifi:451]: DNS2: 0.0.0.0
[C][logger:177]: Logger:
[C][logger:178]: Max Level: DEBUG
[C][logger:179]: Initial Level: DEBUG
[C][logger:181]: Log Baud Rate: 115200
[C][logger:182]: Hardware UART: UART0
[C][esp32_rmt_led_strip:250]: ESP32 RMT LED Strip:
[C][esp32_rmt_led_strip:251]: Pin: 27
[C][esp32_rmt_led_strip:255]: Channel: 0
[C][esp32_rmt_led_strip:281]: RGB Order: GRB
[C][esp32_rmt_led_strip:282]: Max refresh rate: 0
[C][esp32_rmt_led_strip:283]: Number of LEDs: 1
[C][template.select:065]: Template Select ‘Wake word engine location’
[C][template.select:066]: Update Interval: 60.0s
[C][template.select:069]: Optimistic: YES
[C][template.select:070]: Initial Option: On device
[C][template.select:071]: Restore Value: YES
[C][gpio.binary_sensor:015]: GPIO Binary Sensor ‘Button’
[C][gpio.binary_sensor:016]: Pin: GPIO39
[C][light:092]: Light ‘M5Stack Atom Echo 23ec98’
[C][light:094]: Default Transition Length: 0.0s
[C][light:095]: Gamma Correct: 2.80
[C][template.switch:068]: Template Switch ‘Use listen light’
[C][template.switch:091]: Restore Mode: restore defaults to ON
[C][template.switch:057]: Optimistic: YES
[C][template.switch:068]: Template Switch ‘timer_ringing’
[C][template.switch:091]: Restore Mode: always OFF
[C][template.switch:057]: Optimistic: YES
[C][factory_reset.button:011]: Factory Reset Button ‘Factory reset’
[C][factory_reset.button:011]: Icon: ‘mdi:restart-alert’
[C][psram:020]: PSRAM:
[C][psram:021]: Available: NO
[C][captive_portal:089]: Captive Portal:
[C][mdns:116]: mDNS:
[C][mdns:117]: Hostname: m5stack-atom-echo-23ec98
[C][esphome.ota:073]: Over-The-Air updates:
[C][esphome.ota:074]: Address: m5stack-atom-echo.local:3232
[C][esphome.ota:075]: Version: 2
[C][safe_mode:018]: Safe Mode:
[C][safe_mode:020]: Boot considered successful after 60 seconds
[C][safe_mode:021]: Invoke after 10 boot attempts
[C][safe_mode:023]: Remain in safe mode for 300 seconds
[C][http_request.ota:026]: Over-The-Air updates via HTTP request
[C][api:140]: API Server:
[C][api:141]: Address: m5stack-atom-echo.local:6053
[C][api:145]: Using noise encryption: NO
[C][http_request:013]: HTTP Request:
[C][http_request:014]: Timeout: 4500ms
[C][http_request:015]: User-Agent: ESPHome/2025.2.0 (https://esphome.io)
[C][http_request:016]: Follow redirects: YES
[C][http_request:017]: Redirect limit: 3
[C][http_request.idf:024]: Buffer Size RX: 512
[C][http_request.idf:025]: Buffer Size TX: 512
[C][improv_serial:032]: Improv Serial:
[C][micro_wake_word:051]: microWakeWord:
[C][micro_wake_word:052]: models:
[C][micro_wake_word:015]: - Wake Word: Okay Nabu
[C][micro_wake_word:016]: Probability cutoff: 0.970
[C][micro_wake_word:017]: Sliding window size: 5
[C][micro_wake_word:021]: - VAD Model
[C][micro_wake_word:022]: Probability cutoff: 0.500
[C][micro_wake_word:023]: Sliding window size: 5
[D][esp-idf:000][update_task]: I (8334) esp-x509-crt-bundle: Certificate validated

[D][esp-idf:000][update_task]: I (10083) HTTP_CLIENT: Body received in fetch header state, 0x3ffdf072, 110

[D][update:011][update_task]: ‘Firmware’ - Publishing:
[D][update:012][update_task]: Current Version: 25.2.1
[D][update:015][update_task]: Latest Version: 25.2.1
[D][update:018][update_task]: Firmware URL: https://firmware.esphome.io/wake-word-voice-assistant/m5stack-atom-echo/25.2.1/m5stack-atom-echo-esp32.ota.bin
[D][update:021][update_task]: Title: m5stack.atom-echo-wake-word-voice-assistant
[D][update:023][update_task]: Summary: ## What’s Changed
[02:41:42]* Bump esphome/workflows from 2024.11.1 to 2024.11.3 by @dependabot in Bump esphome/workflows from 2024.11.1 to 2024.11.3 by dependabot[bot] · Pull Request #37 · esphome/wake-word-voice-assistants · GitHub
[02:41:42]* Bump esphome/workflows from 2024.11.3 to 2024.12.0 by @dependabot in Bump esphome/workflows from 2024.11.3 to 2024.12.0 by dependabot[bot] · Pull Request #40 · esphome/wake-word-voice-assistants · GitHub
[02:41:42]* Bump esphome/workflows from 2024.12.0 to 2025.1.0 by @dependabot in Bump esphome/workflows from 2024.12.0 to 2025.1.0 by dependabot[bot] · Pull Request #55 · esphome/wake-word-voice-assistants · GitHub

It’s not a blog but a community forum based on discourse. You find plenty of information on how to use it in the world wide web.
It does not only allow you to attach files but also use special formation for your logs/yaml so they can be easily read by the people trying to help you with your problems.

For a starter this should be a very good read for you :point_down: