Home Assistant Satellite Set Up - Last Step - Help!

Noob here.

Trying to follow Don Burch’s HA Satellite set up for my Jabra speaker (Raspberry Pi as a HA Voice Assist satellite - #2 by donburch888) based off Synesthesiam’s github instructions (GitHub - synesthesiam/homeassistant-satellite: Streaming audio satellite for Home Assistant).

Everything has worked well up to the very last step. Now I am stuck.

My command from the ‘homeassistant-satellite/wyoming-openwakeword’ directory (host and token modified) is:

script/run --host 192.168.1.xxx --token ey…zA
–mic-device plughw:CARD=J710,DEV=0
–snd-device plughw:CARD=J710,DEV=0
–awake-sound sounds/awake.wav --done-sound sounds/done.wav
–auto-gain 5 --vad webrtcvad --wake-word wyoming

But this fails with:

usage: main.py [-h] [–uri URI] [–models-dir MODELS_DIR]
[–custom-model-dir CUSTOM_MODEL_DIR] [–preload-model PRELOAD_MODEL]
[–threshold THRESHOLD] [–trigger-level TRIGGER_LEVEL]
[–output-dir OUTPUT_DIR] [–debug] [–debug-probability]
[–model MODEL]
main.py: error: unrecognized arguments: --host 192.168.1.xxx --token ey…zA --mic-device plughw:CARD=J710,DEV=0 --snd-device plughw:CARD=J710,DEV=0 --awake-sound sounds/awake.wav --done-sound sounds/done.wav --auto-gain 5 --vad webrtcvad --wake-word wyoming
Traceback (most recent call last):
File “/home/rp/homeassistant-satellite/wyoming-openwakeword/script/run”, line 12, in
subprocess.check_call([context.env_exe, “-m”, “wyoming_openwakeword”] + sys.argv[1:])
File “/usr/lib/python3.11/subprocess.py”, line 413, in check_call*
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ‘[’/home/rp/homeassistant-satellite/wyoming-openwakeword/.venv/bin/python3’, ‘-m’, ‘wyoming_openwakeword’, ‘–host’, ‘192.168.1.xxx’, ‘–token’, ‘ey…zA’, ‘–mic-device’, ‘plughw:CARD=J710,DEV=0’, ‘–snd-device’, ‘plughw:CARD=J710,DEV=0’, ‘–awake-sound’, ‘sounds/awake.wav’, ‘–done-sound’, ‘sounds/done.wav’, ‘–auto-gain’, ‘5’, ‘–vad’, ‘webrtcvad’, ‘–wake-word’, ‘wyoming’]’ returned non-zero exit status 2.

I’m sure this is simple, but can anyone help me figure out what I am doing wrong?

On my system i installed both parts separately, and have directories for both programs in my home directory

pi@HA-voice-sat1:~ $ ls -l
total 168
drwxr-xr-x 10 pi pi   4096 Oct 28 21:51 homeassistant-satellite
-rw-r--r--  1 pi pi 160000 Oct 28 17:42 out.raw
drwxr-xr-x  6 pi pi   4096 Oct 29 08:13 wyoming-openwakeword
pi@HA-voice-sat1:~ $ 

I think you might have continued with part 2 immediately after part 1. Looking back at my instructions I didn’t say to “cd ~” to return to the home directory before starting part 2; and so I guess you just continued installed wyoming-openwakeword in the homeassistant-satellite directory. My bad :frowning:

Its confusing that they both contain a script/run - but they have different arguments (as shown in the usage that it fails with).

In your situation I assume that a ls will show wyoming-openwakeword is in your homeassistant-satellite directory. NOT A PROBLEM - you can just change to the wyoming-openwakeword subdirectory and then run your script/run again.

cd wyoming-openwakeword
script/run --host 192.168.1.xxx --token ey…zA –mic-device plughw:CARD=J710,DEV=0 –snd-device plughw:CARD=J710,DEV=0 –awake-sound sounds/awake.wav --done-sound sounds/done.wav –auto-gain 5 --vad webrtcvad --wake-word wyoming

Note that if you setup a service to run openwakeword you will need to use “homeassistant-satellite/wyoming-openwakeword/” as the location for the script/run.

1 Like

Thanks Mr Burch.
You rock!

I recreated from scratch, carefully following your instructions, but am still getting an error (from inside the wyoming-openwakeword directory), telling me that the parameters don’t match what was expected.

My command:
script/run --host 192.168.1.150 --token ey_redacted_3Ss
–mic-device plughw:CARD=J710,DEV=0
–snd-device plughw:CARD=J710,DEV=0
–awake-sound sounds/awake.wav --done-sound sounds/done.wav
–auto-gain 5 --vad webrtcvad --wake-word wyoming

The error:

script/run --wake-word wyoming usage: main.py [-h] [–uri URI] [–models-dir MODELS_DIR] [–custom-model-dir CUSTOM_MODEL_DIR] [–preload-model PRELOAD_MODEL]
[–threshold THRESHOLD] [–trigger-level TRIGGER_LEVEL] [–output-dir OUTPUT_DIR] [–debug] [–debug-probability] [–model MODEL]
main.py: error: unrecognized arguments: --wake-word wyoming
Traceback (most recent call last):
File “/home/rp/wyoming-openwakeword/script/run”, line 12, in
subprocess.check_call([context.env_exe, “-m”, “wyoming_openwakeword”] + sys.argv[1:])
File “/usr/lib/python3.11/subprocess.py”, line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ‘[’/home/rp/wyoming-openwakeword/.venv/bin/python3’, ‘-m’, ‘wyoming_openwakeword’, ‘–wake-word’, ‘wyoming’]’ returned non-zero exit status 2.

I assume the host will be the satellite (I read that you said it could be elsewhere).
Not sure what to do at this point.

The reason the parameters don’t match is that you are executing the homeassistant-satellite command in the wyoming-openwakeword directory.

In the wyoming-openwakeword directory you should already have executed the command

script/run --uri 'tcp://0.0.0.0:10400' --preload-model 'ok_nabu'

Now that we have wyoming-openwakeword running, we need to tell homeassistant-satellite to use it … but we don’t want to stop wyoming-openwakeword - we want both wyoming-openwakeword and homeassistant-satellite to be running at the same time.

Now, I am running my test RasPi headless and using the Remmina program on my main linux PC to open a remote terminal session - and so my simple way around this was to open two terminal sessions at the same time. I am sure there are other/better ways to do this, but I’m no linux GOD. It also means that I can swap between the two terminal sessions to watch any output, error messages, etc., and of course it’s easy to copy and paste into a terminal session :wink:

This is also why step 2 didn’t return to home directory - because a new second SSH session automatically opens at the home directory.

I am guessing that you are using the console keyboard and screen, and not a terminal program from another PC ? And consequently you just continued step 2 in the same console session as step 1. I assume you needed to interrupt the homeassistant-satellite program in order to start the commands in step 2 ?

Are you using the GUI on your RasPi ? If so you can easily do another [CTRL-ALT-T] to open a second terminal window.

I expect you could use the docker command versions which were given for both wyoming-openwakeword and homeassistant-satellite to run them both independently - though I personally haven’t made the effort to get familiar with docker.

You’re right that I interrupted the ha-satellite program.

I’m using Putty, but opening two terminals (leaving the first one uninterrupted) still gives me an error message (run from the homeassistant-satellite folder).

I’ll look to see if I can move forward later when I’m home from work.

Genuinely, thanks for trying to help!

I guess I’ll look into docker,.