Atom Echo works for a while after restart, but then stops responding

My experiment with Voice Assistant has come to an impass. After a restart, it works great for a command or two, recognising my custom wake word (“Hey, Casper”) and doing what I ask (e.g., running my sentence-triggered automations), but stops after awhile (an hour or so). No amount of yelling gets it to turn blue until I restart again. The kids and spouse are starting to make fun of me and my attempts to get that @£$%@ white box to turn blue…

What do you all suggest I try to narrow down the issue, so I can regain my dignity and stop yelling cartoon characters at the living room wall?

Background: I use a container-based install. The relevant section of my docker-compose.yml looks like the following, and it’s composed with Home Assistant and Node Red. I just recently added --debug, which does not appear to do much.

  openwakeword:
    container_name: openwakeword
    image: rhasspy/wyoming-openwakeword
    network_mode: host
    volumes:
      - /media/homeassistant/home_assistant/openwakeword/custom:/custom
      - /media/homeassistant/home_assistant/openwakeword/config:/config
      - /media/homeassistant/home_assistant/openwakeword/data:/data
    environment:
      TZ: "Europe/London"
    depends_on:
      - homeassistant
    ports:
      - 10400:10400
      - 10400:10400/udp
    command: --debug --preload-model 'ok_nabu' --custom-model-dir /custom
    restart: unless-stopped
1 Like

I have this issue intermittently as well, is there a way to automate waking it up periodically?

Same here, overall the little Atom Echos are doing a great job, sometimes recognising the wake word across large rooms.
However, they seem to always hang up after some time and a reset is necessary to make them work again.
What would we have to include in the config file to restart them periodically?

I tried including a switch or button in the config, to restart via an automation in Home Assistant but that led to an error.

Thanks

Merc

Just build a Wyoming satellite. They work. Youll be up and running in less than an hour.

Thanks for the suggestion.
Since the Atom Echos are not doing a bad job, in general, I would still be interested in a solution to the issue of them “crashing” frequently. I am sure there must be a way to stop/circumvene or mitigate this.

I have now found a way that seems to improve the stability of the Atom Echos in my setup.

Every 15 minutes I am switching the “detect wake work” off and back on 2 seconds later. Through this it seems, that the Echos do not freeze.
Ideally, I would like to trigger a restart but I cannot figure out how to make a switch or button work that would trigger the restart through an automation.

I still have to run this for a longer time to see for how long it works but so far it looks promising and is relatively easy to realize.

You can set up an automation to turn off wake word detection if there is noone in the room. Thats what I did when I had ESP32 voice assistants.
Assuming you have room presence sensors anyway…

Hi Rich,
Not enterily sure how or if this solves the problem but then I do not have room presence detection.
The approach I mentioned above seems to work.
Combined with a sound response to wake word detection this has improved my voice assistant setup a lot.

Cheers

Merc

You can add:

button:
  - platform: restart
    name: "${friendly_name} Restart"

to the YAML of the echo to create a restart button, I use this to force restarts evewry 30 minutes which helps with the voice recognition.

Ah, thanks @yalexau,
will give that a try.
The toggling of a switch has already improved things a lot.

But this was my main goal.

Cheers

Merc

EDIT:

Hm…ok I still keep getting the error I got before when I tried to implement the start button:

HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40407.0 (4.4.7) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Reading CMake configuration...
Dependency Graph
|-- noise-c @ 0.1.4
|-- ESPMicroSpeechFeatures @ 1.0.0
Linking .pioenvs/m5stack-atom-echo/firmware.elf
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: missing --end-group; added as last command line option
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/m5stack-atom-echo/src/main.o:(.literal._Z5setupv+0xa0): undefined reference to `vtable for esphome::restart::RestartButton'
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/m5stack-atom-echo/src/main.o:(.literal._Z5setupv+0xa4): undefined reference to `vtable for esphome::restart::RestartButton'
collect2: error: ld returned 1 exit status
*** [.pioenvs/m5stack-atom-echo/firmware.elf] Error 1
========================= [FAILED] Took 28.53 seconds =========================

Any idea what I need to change to get rid of this?

EDIT:

Finally I found the answer to the issue in this thread.
I was not aware of the “clean build” option but that did the job.